libnm: add nm_setting_option_get_uint32(), nm_setting_option_set_uint32()
More general purpose API for generic options of settings.
This commit is contained in:
@@ -331,14 +331,6 @@ gboolean _nm_setting_option_clear (NMSetting *setting,
|
|||||||
gboolean _nm_setting_option_clear_all (NMSetting *setting,
|
gboolean _nm_setting_option_clear_all (NMSetting *setting,
|
||||||
NMSettingOptionFilterFcn filter);
|
NMSettingOptionFilterFcn filter);
|
||||||
|
|
||||||
gboolean _nm_setting_option_get_uint32 (NMSetting *setting,
|
|
||||||
const char *optname,
|
|
||||||
guint32 *out_value);
|
|
||||||
|
|
||||||
void _nm_setting_option_set_uint32 (NMSetting *setting,
|
|
||||||
const char *optname,
|
|
||||||
guint32 value);
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
guint nm_setting_ethtool_init_features (NMSettingEthtool *setting,
|
guint nm_setting_ethtool_init_features (NMSettingEthtool *setting,
|
||||||
|
@@ -294,9 +294,9 @@ nm_setting_ethtool_get_coalesce (NMSettingEthtool *setting,
|
|||||||
g_return_val_if_fail (NM_IS_SETTING_ETHTOOL (setting), FALSE);
|
g_return_val_if_fail (NM_IS_SETTING_ETHTOOL (setting), FALSE);
|
||||||
g_return_val_if_fail (nm_ethtool_optname_is_coalesce (optname), FALSE);
|
g_return_val_if_fail (nm_ethtool_optname_is_coalesce (optname), FALSE);
|
||||||
|
|
||||||
return _nm_setting_option_get_uint32 (NM_SETTING (setting),
|
return nm_setting_option_get_uint32 (NM_SETTING (setting),
|
||||||
optname,
|
optname,
|
||||||
out_value);
|
out_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -330,9 +330,9 @@ nm_setting_ethtool_set_coalesce (NMSettingEthtool *setting,
|
|||||||
NM_ETHTOOL_ID_COALESCE_ADAPTIVE_TX))
|
NM_ETHTOOL_ID_COALESCE_ADAPTIVE_TX))
|
||||||
value = !!value;
|
value = !!value;
|
||||||
|
|
||||||
_nm_setting_option_set_uint32 (NM_SETTING (setting),
|
nm_setting_option_set_uint32 (NM_SETTING (setting),
|
||||||
optname,
|
optname,
|
||||||
value);
|
value);
|
||||||
_notify_attributes (setting);
|
_notify_attributes (setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -398,9 +398,9 @@ nm_setting_ethtool_get_ring (NMSettingEthtool *setting,
|
|||||||
g_return_val_if_fail (NM_IS_SETTING_ETHTOOL (setting), FALSE);
|
g_return_val_if_fail (NM_IS_SETTING_ETHTOOL (setting), FALSE);
|
||||||
g_return_val_if_fail (nm_ethtool_optname_is_ring (optname), FALSE);
|
g_return_val_if_fail (nm_ethtool_optname_is_ring (optname), FALSE);
|
||||||
|
|
||||||
return _nm_setting_option_get_uint32 (NM_SETTING (setting),
|
return nm_setting_option_get_uint32 (NM_SETTING (setting),
|
||||||
optname,
|
optname,
|
||||||
out_value);
|
out_value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -429,9 +429,9 @@ nm_setting_ethtool_set_ring (NMSettingEthtool *setting,
|
|||||||
|
|
||||||
g_return_if_fail (nm_ethtool_id_is_ring (ethtool_id));
|
g_return_if_fail (nm_ethtool_id_is_ring (ethtool_id));
|
||||||
|
|
||||||
_nm_setting_option_set_uint32 (NM_SETTING (setting),
|
nm_setting_option_set_uint32 (NM_SETTING (setting),
|
||||||
optname,
|
optname,
|
||||||
value);
|
value);
|
||||||
_notify_attributes (setting);
|
_notify_attributes (setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2511,39 +2511,6 @@ _nm_setting_option_get_all_names (NMSetting *setting,
|
|||||||
return names;
|
return names;
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
|
||||||
_nm_setting_option_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_option_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_option_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_option_hash (setting, TRUE),
|
|
||||||
g_strdup (optname),
|
|
||||||
g_variant_ref_sink (g_variant_new_uint32 (value)));
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
_nm_setting_option_clear (NMSetting *setting,
|
_nm_setting_option_clear (NMSetting *setting,
|
||||||
const char *optname)
|
const char *optname)
|
||||||
@@ -2639,6 +2606,34 @@ nm_setting_option_get_boolean (NMSetting *setting,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nm_setting_option_get_uint32:
|
||||||
|
* @setting: the #NMSetting
|
||||||
|
* @opt_name: the option to get
|
||||||
|
* @out_value: (allow-none) (out): the optional output value.
|
||||||
|
* If the option is unset, 0 will be returned.
|
||||||
|
*
|
||||||
|
* Returns: %TRUE if @opt_name is set to a uint32 variant.
|
||||||
|
*
|
||||||
|
* Since: 1.26
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
nm_setting_option_get_uint32 (NMSetting *setting,
|
||||||
|
const char *opt_name,
|
||||||
|
guint32 *out_value)
|
||||||
|
{
|
||||||
|
GVariant *v;
|
||||||
|
|
||||||
|
v = nm_setting_option_get (NM_SETTING (setting), opt_name);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* nm_setting_option_set:
|
* nm_setting_option_set:
|
||||||
* @setting: the #NMSetting
|
* @setting: the #NMSetting
|
||||||
@@ -2751,6 +2746,45 @@ nm_setting_option_set_boolean (NMSetting *setting,
|
|||||||
_nm_setting_option_notify (setting, !changed_name);
|
_nm_setting_option_notify (setting, !changed_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* nm_setting_option_set_uint32:
|
||||||
|
* @setting: the #NMSetting
|
||||||
|
* @value: the value to set.
|
||||||
|
*
|
||||||
|
* Like nm_setting_option_set() to set a uint32 GVariant.
|
||||||
|
*
|
||||||
|
* Since: 1.26
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
nm_setting_option_set_uint32 (NMSetting *setting,
|
||||||
|
const char *opt_name,
|
||||||
|
guint32 value)
|
||||||
|
{
|
||||||
|
GVariant *old_variant;
|
||||||
|
gboolean changed_name;
|
||||||
|
gboolean changed_value;
|
||||||
|
GHashTable *hash;
|
||||||
|
|
||||||
|
g_return_if_fail (NM_IS_SETTING (setting));
|
||||||
|
g_return_if_fail (opt_name);
|
||||||
|
|
||||||
|
hash = _nm_setting_option_hash (setting, TRUE);
|
||||||
|
|
||||||
|
old_variant = g_hash_table_lookup (hash, opt_name);
|
||||||
|
|
||||||
|
changed_name = (old_variant == NULL);
|
||||||
|
changed_value = changed_name
|
||||||
|
|| ( !g_variant_is_of_type (old_variant, G_VARIANT_TYPE_UINT32)
|
||||||
|
|| g_variant_get_uint32 (old_variant) != value);
|
||||||
|
|
||||||
|
g_hash_table_insert (hash,
|
||||||
|
g_strdup (opt_name),
|
||||||
|
g_variant_ref_sink (g_variant_new_uint32 (value)));
|
||||||
|
|
||||||
|
if (changed_value)
|
||||||
|
_nm_setting_option_notify (setting, !changed_name);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@@ -342,11 +342,21 @@ gboolean nm_setting_option_get_boolean (NMSetting *setting,
|
|||||||
const char *opt_name,
|
const char *opt_name,
|
||||||
gboolean *out_value);
|
gboolean *out_value);
|
||||||
|
|
||||||
|
NM_AVAILABLE_IN_1_26
|
||||||
|
gboolean nm_setting_option_get_uint32 (NMSetting *setting,
|
||||||
|
const char *opt_name,
|
||||||
|
guint32 *out_value);
|
||||||
|
|
||||||
NM_AVAILABLE_IN_1_26
|
NM_AVAILABLE_IN_1_26
|
||||||
void nm_setting_option_set (NMSetting *setting,
|
void nm_setting_option_set (NMSetting *setting,
|
||||||
const char *opt_name,
|
const char *opt_name,
|
||||||
GVariant *variant);
|
GVariant *variant);
|
||||||
|
|
||||||
|
NM_AVAILABLE_IN_1_26
|
||||||
|
void nm_setting_option_set_uint32 (NMSetting *setting,
|
||||||
|
const char *opt_name,
|
||||||
|
guint32 value);
|
||||||
|
|
||||||
NM_AVAILABLE_IN_1_26
|
NM_AVAILABLE_IN_1_26
|
||||||
void nm_setting_option_set_boolean (NMSetting *setting,
|
void nm_setting_option_set_boolean (NMSetting *setting,
|
||||||
const char *opt_name,
|
const char *opt_name,
|
||||||
|
@@ -1734,6 +1734,8 @@ global:
|
|||||||
nm_setting_match_remove_kernel_command_line_by_value;
|
nm_setting_match_remove_kernel_command_line_by_value;
|
||||||
nm_setting_option_get;
|
nm_setting_option_get;
|
||||||
nm_setting_option_get_boolean;
|
nm_setting_option_get_boolean;
|
||||||
|
nm_setting_option_get_uint32;
|
||||||
nm_setting_option_set;
|
nm_setting_option_set;
|
||||||
nm_setting_option_set_boolean;
|
nm_setting_option_set_boolean;
|
||||||
|
nm_setting_option_set_uint32;
|
||||||
} libnm_1_24_0;
|
} libnm_1_24_0;
|
||||||
|
Reference in New Issue
Block a user