[PATCH v5 1/8] util: add scan_freq_set_size function
Alexander Ganslandt <[email protected]> Fri, 28 Nov 2025 12:54:22 +0100
| Newsgroups | dev.linux.lists.iwd |
|---|---|
| Message-ID | <[email protected]> |
Return the number of freqs in a scan_freq_set, useful for knowing how
big the set is.
---
src/util.c | 11 +++++++++++
src/util.h | 1 +
2 files changed, 12 insertions(+)
diff --git a/src/util.c b/src/util.c
index 65b97c8e..1e1dfc15 100644
--- a/src/util.c
+++ b/src/util.c
@@ -637,6 +637,17 @@ struct scan_freq_set *scan_freq_set_clone(const struct scan_freq_set *set,
return new;
}
+uint32_t scan_freq_set_size(struct scan_freq_set *freqs)
+{
+ uint32_t size = 0;
+
+ size += __builtin_popcount(freqs->channels_2ghz);
+ size += l_uintset_size(freqs->channels_5ghz);
+ size += l_uintset_size(freqs->channels_6ghz);
+
+ return size;
+}
+
/* First 64 entries calculated by 1 / pow(n, 0.3) for n >= 1 */
static const double rankmod_table[] = {
1.0000000000, 0.8122523964, 0.7192230933, 0.6597539554,
diff --git a/src/util.h b/src/util.h
index 8aef2985..7c024c79 100644
--- a/src/util.h
+++ b/src/util.h
@@ -138,6 +138,7 @@ uint32_t *scan_freq_set_to_fixed_array(const struct scan_freq_set *set,
size_t *len_out);
struct scan_freq_set *scan_freq_set_clone(const struct scan_freq_set *set,
uint32_t band_mask);
+uint32_t scan_freq_set_size(struct scan_freq_set *freqs);
DEFINE_CLEANUP_FUNC(scan_freq_set_free);
--
2.39.5