mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2024-12-22 13:02:44 +01:00
util: add scan_freq_set_clone
This creates a new scan_freq_set from an input set which only contains frequencies from bands included in the mask.
This commit is contained in:
parent
8c01edf74b
commit
0bc44a038b
21
src/util.c
21
src/util.c
@ -554,3 +554,24 @@ uint32_t *scan_freq_set_to_fixed_array(const struct scan_freq_set *set,
|
||||
|
||||
return freqs;
|
||||
}
|
||||
|
||||
struct scan_freq_set *scan_freq_set_clone(const struct scan_freq_set *set,
|
||||
uint32_t band_mask)
|
||||
{
|
||||
struct scan_freq_set *new = l_new(struct scan_freq_set, 1);
|
||||
|
||||
if (band_mask & BAND_FREQ_2_4_GHZ)
|
||||
new->channels_2ghz = set->channels_2ghz;
|
||||
|
||||
if (band_mask & BAND_FREQ_5_GHZ)
|
||||
new->channels_5ghz = l_uintset_clone(set->channels_5ghz);
|
||||
else
|
||||
new->channels_5ghz = l_uintset_new_from_range(1, 200);
|
||||
|
||||
if (band_mask & BAND_FREQ_6_GHZ)
|
||||
new->channels_6ghz = l_uintset_clone(set->channels_6ghz);
|
||||
else
|
||||
new->channels_6ghz = l_uintset_new_from_range(1, 233);
|
||||
|
||||
return new;
|
||||
}
|
||||
|
@ -124,6 +124,8 @@ void scan_freq_set_subtract(struct scan_freq_set *set,
|
||||
bool scan_freq_set_isempty(const struct scan_freq_set *set);
|
||||
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);
|
||||
|
||||
DEFINE_CLEANUP_FUNC(scan_freq_set_free);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user