nm-setting: add internal gendata API to get/set uint32

https://bugzilla.redhat.com/show_bug.cgi?id=1614700
This commit is contained in:
Antonio Cardace 2020-05-15 15:25:30 +02:00
parent 12063d6cb6
commit 572f82a77b
No known key found for this signature in database
GPG key ID: 6BF80ABD43E377D3
2 changed files with 41 additions and 0 deletions

View file

@ -334,6 +334,14 @@ const char *const*nm_setting_gendata_get_all_names (NMSetting *setting,
GVariant *const*nm_setting_gendata_get_all_values (NMSetting *setting);
gboolean nm_setting_gendata_get_uint32 (NMSetting *setting,
const char *optname,
guint32 *out_value);
void nm_setting_gendata_set_uint32 (NMSetting *setting,
const char *optname,
guint32 value);
/*****************************************************************************/
guint nm_setting_ethtool_init_features (NMSettingEthtool *setting,

View file

@ -2616,6 +2616,39 @@ _nm_setting_gendata_reset_from_hash (NMSetting *setting,
return TRUE;
}
gboolean
nm_setting_gendata_get_uint32 (NMSetting *setting,
const char *optname,
guint32 *out_value)
{
GVariant *v;
nm_assert (NM_IS_SETTING (setting));
nm_assert (nm_str_not_empty (optname));
v = nm_setting_gendata_get (setting, optname);
if ( v
&& g_variant_is_of_type (v, G_VARIANT_TYPE_UINT32)) {
NM_SET_OUT (out_value, g_variant_get_uint32 (v));
return TRUE;
}
NM_SET_OUT (out_value, 0);
return FALSE;
}
void
nm_setting_gendata_set_uint32 (NMSetting *setting,
const char *optname,
guint32 value)
{
nm_assert (NM_IS_SETTING (setting));
nm_assert (nm_str_not_empty (optname));
g_hash_table_insert (_nm_setting_gendata_hash (setting, TRUE),
g_strdup (optname),
g_variant_ref_sink (g_variant_new_uint32 (value)));
}
/*****************************************************************************/
static void