mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-25 18:50:07 +01:00
libnm-base: add internal _NMDeviceWifiCapabilities type
This commit is contained in:
parent
096ee5ed6e
commit
367be3585f
2 changed files with 72 additions and 0 deletions
|
|
@ -190,6 +190,24 @@ typedef enum {
|
|||
_NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT | _NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE,
|
||||
} _NMSettingWirelessWakeOnWLan;
|
||||
|
||||
typedef enum {
|
||||
/* Mirrors libnm's NMDeviceWifiCapabilities */
|
||||
_NM_WIFI_DEVICE_CAP_NONE = 0x00000000,
|
||||
_NM_WIFI_DEVICE_CAP_CIPHER_WEP40 = 0x00000001,
|
||||
_NM_WIFI_DEVICE_CAP_CIPHER_WEP104 = 0x00000002,
|
||||
_NM_WIFI_DEVICE_CAP_CIPHER_TKIP = 0x00000004,
|
||||
_NM_WIFI_DEVICE_CAP_CIPHER_CCMP = 0x00000008,
|
||||
_NM_WIFI_DEVICE_CAP_WPA = 0x00000010,
|
||||
_NM_WIFI_DEVICE_CAP_RSN = 0x00000020,
|
||||
_NM_WIFI_DEVICE_CAP_AP = 0x00000040,
|
||||
_NM_WIFI_DEVICE_CAP_ADHOC = 0x00000080,
|
||||
_NM_WIFI_DEVICE_CAP_FREQ_VALID = 0x00000100,
|
||||
_NM_WIFI_DEVICE_CAP_FREQ_2GHZ = 0x00000200,
|
||||
_NM_WIFI_DEVICE_CAP_FREQ_5GHZ = 0x00000400,
|
||||
_NM_WIFI_DEVICE_CAP_MESH = 0x00001000,
|
||||
_NM_WIFI_DEVICE_CAP_IBSS_RSN = 0x00002000,
|
||||
} _NMDeviceWifiCapabilities;
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
typedef enum {
|
||||
|
|
|
|||
|
|
@ -210,6 +210,59 @@ test_wireless_wake_on_wlan_enum(void)
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void
|
||||
test_device_wifi_capabilities(void)
|
||||
{
|
||||
nm_auto_unref_gtypeclass GFlagsClass *flags_class = NULL;
|
||||
gs_unref_hashtable GHashTable *vals = g_hash_table_new(nm_direct_hash, NULL);
|
||||
guint i;
|
||||
|
||||
G_STATIC_ASSERT_EXPR(sizeof(NMDeviceWifiCapabilities) == sizeof(_NMDeviceWifiCapabilities));
|
||||
G_STATIC_ASSERT_EXPR(sizeof(NMDeviceWifiCapabilities) < sizeof(gint64));
|
||||
|
||||
G_STATIC_ASSERT_EXPR(sizeof(NMDeviceWifiCapabilities) < sizeof(gint64));
|
||||
g_assert((((gint64)((NMDeviceWifiCapabilities) -1)) < 0)
|
||||
== (((gint64)((_NMDeviceWifiCapabilities) -1)) < 0));
|
||||
|
||||
#define _E(n) \
|
||||
G_STMT_START \
|
||||
{ \
|
||||
G_STATIC_ASSERT_EXPR(n == (gint64) _##n); \
|
||||
G_STATIC_ASSERT_EXPR(_##n == (gint64) n); \
|
||||
if (!g_hash_table_add(vals, GUINT_TO_POINTER(n))) \
|
||||
g_assert_not_reached(); \
|
||||
} \
|
||||
G_STMT_END
|
||||
_E(NM_WIFI_DEVICE_CAP_NONE);
|
||||
_E(NM_WIFI_DEVICE_CAP_CIPHER_WEP40);
|
||||
_E(NM_WIFI_DEVICE_CAP_CIPHER_WEP104);
|
||||
_E(NM_WIFI_DEVICE_CAP_CIPHER_TKIP);
|
||||
_E(NM_WIFI_DEVICE_CAP_CIPHER_CCMP);
|
||||
_E(NM_WIFI_DEVICE_CAP_WPA);
|
||||
_E(NM_WIFI_DEVICE_CAP_RSN);
|
||||
_E(NM_WIFI_DEVICE_CAP_AP);
|
||||
_E(NM_WIFI_DEVICE_CAP_ADHOC);
|
||||
_E(NM_WIFI_DEVICE_CAP_FREQ_VALID);
|
||||
_E(NM_WIFI_DEVICE_CAP_FREQ_2GHZ);
|
||||
_E(NM_WIFI_DEVICE_CAP_FREQ_5GHZ);
|
||||
_E(NM_WIFI_DEVICE_CAP_MESH);
|
||||
_E(NM_WIFI_DEVICE_CAP_IBSS_RSN);
|
||||
#undef _E
|
||||
|
||||
flags_class = G_FLAGS_CLASS(g_type_class_ref(NM_TYPE_DEVICE_WIFI_CAPABILITIES));
|
||||
for (i = 0; i < flags_class->n_values; i++) {
|
||||
const GFlagsValue *value = &flags_class->values[i];
|
||||
|
||||
if (!g_hash_table_contains(vals, GUINT_TO_POINTER(value->value))) {
|
||||
g_error("The enum value %s from NMDeviceWifiCapabilities is not checked for "
|
||||
"_NMDeviceWifiCapabilities",
|
||||
value->value_name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
typedef struct _nm_packed {
|
||||
int v0;
|
||||
char v1;
|
||||
|
|
@ -10382,6 +10435,7 @@ main(int argc, char **argv)
|
|||
g_test_add_func("/core/general/test_wired_wake_on_lan_enum", test_wired_wake_on_lan_enum);
|
||||
g_test_add_func("/core/general/test_wireless_wake_on_wlan_enum",
|
||||
test_wireless_wake_on_wlan_enum);
|
||||
g_test_add_func("/core/general/test_device_wifi_capabilities", test_device_wifi_capabilities);
|
||||
g_test_add_func("/core/general/test_nm_hash", test_nm_hash);
|
||||
g_test_add_func("/core/general/test_nm_g_slice_free_fcn", test_nm_g_slice_free_fcn);
|
||||
g_test_add_func("/core/general/test_c_list_sort", test_c_list_sort);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue