mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-01-07 06:40:18 +01:00
libnm: avoid constructor function for registering NMSetting types
constructor functions are ugly, because code is running before main() starts. Instead, as the registration code for NMSetting types is insid the GType constructor, we just need to ensure at the right place, that the GType was created. The right place here is _register_settings_ensure_inited(), because that is called before we need the registration information.
This commit is contained in:
parent
ecd53944b3
commit
fa9fe466db
43 changed files with 84 additions and 59 deletions
|
|
@ -53,7 +53,6 @@ struct _NMSetting6LowpanClass {
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSetting6Lowpan, nm_setting_6lowpan, NM_TYPE_SETTING,
|
||||
_nm_register_setting (6LOWPAN, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_6LOWPAN)
|
||||
|
||||
#define NM_SETTING_6LOWPAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_6LOWPAN, NMSetting6LowpanPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSetting8021x, nm_setting_802_1x, NM_TYPE_SETTING,
|
||||
_nm_register_setting (802_1X, NM_SETTING_PRIORITY_HW_AUX))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_802_1X)
|
||||
|
||||
#define NM_SETTING_802_1X_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_802_1X, NMSetting8021xPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingAdsl, nm_setting_adsl, NM_TYPE_SETTING,
|
||||
_nm_register_setting (ADSL, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_ADSL)
|
||||
|
||||
#define NM_SETTING_ADSL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_ADSL, NMSettingAdslPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingBluetooth, nm_setting_bluetooth, NM_TYPE_SETTING,
|
||||
_nm_register_setting (BLUETOOTH, NM_SETTING_PRIORITY_HW_NON_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_BLUETOOTH)
|
||||
|
||||
#define NM_SETTING_BLUETOOTH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BLUETOOTH, NMSettingBluetoothPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -59,7 +59,6 @@ typedef struct {
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingBond, nm_setting_bond, NM_TYPE_SETTING,
|
||||
_nm_register_setting (BOND, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_BOND)
|
||||
|
||||
#define NM_SETTING_BOND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BOND, NMSettingBondPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingBridgePort, nm_setting_bridge_port, NM_TYPE_SETTING,
|
||||
_nm_register_setting (BRIDGE_PORT, NM_SETTING_PRIORITY_AUX))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_BRIDGE_PORT)
|
||||
|
||||
#define NM_SETTING_BRIDGE_PORT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BRIDGE_PORT, NMSettingBridgePortPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingBridge, nm_setting_bridge, NM_TYPE_SETTING,
|
||||
_nm_register_setting (BRIDGE, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_BRIDGE)
|
||||
|
||||
#define NM_SETTING_BRIDGE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_BRIDGE, NMSettingBridgePrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingCdma, nm_setting_cdma, NM_TYPE_SETTING,
|
||||
_nm_register_setting (CDMA, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_CDMA)
|
||||
|
||||
#define NM_SETTING_CDMA_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_CDMA, NMSettingCdmaPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingConnection, nm_setting_connection, NM_TYPE_SETTING,
|
||||
_nm_register_setting (CONNECTION, NM_SETTING_PRIORITY_CONNECTION))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_CONNECTION)
|
||||
|
||||
#define NM_SETTING_CONNECTION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_CONNECTION, NMSettingConnectionPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingDcb, nm_setting_dcb, NM_TYPE_SETTING,
|
||||
_nm_register_setting (DCB, NM_SETTING_PRIORITY_HW_AUX))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_DCB)
|
||||
|
||||
#define NM_SETTING_DCB_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_DCB, NMSettingDcbPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingDummy, nm_setting_dummy, NM_TYPE_SETTING,
|
||||
_nm_register_setting (DUMMY, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_DUMMY)
|
||||
|
||||
/**
|
||||
* nm_setting_dummy_new:
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingGeneric, nm_setting_generic, NM_TYPE_SETTING,
|
||||
_nm_register_setting (GENERIC, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_GENERIC)
|
||||
|
||||
#define NM_SETTING_GENERIC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_GENERIC, NMSettingGenericPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingGsm, nm_setting_gsm, NM_TYPE_SETTING,
|
||||
_nm_register_setting (GSM, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_GSM)
|
||||
|
||||
#define NM_SETTING_GSM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_GSM, NMSettingGsmPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingInfiniband, nm_setting_infiniband, NM_TYPE_SETTING,
|
||||
_nm_register_setting (INFINIBAND, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_INFINIBAND)
|
||||
|
||||
#define NM_SETTING_INFINIBAND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_INFINIBAND, NMSettingInfinibandPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingIPTunnel, nm_setting_ip_tunnel, NM_TYPE_SETTING,
|
||||
_nm_register_setting (IP_TUNNEL, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_IP_TUNNEL)
|
||||
|
||||
#define NM_SETTING_IP_TUNNEL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_IP_TUNNEL, NMSettingIPTunnelPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingIP4Config, nm_setting_ip4_config, NM_TYPE_SETTING_IP_CONFIG,
|
||||
_nm_register_setting (IP4_CONFIG, NM_SETTING_PRIORITY_IP))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_IP4_CONFIG)
|
||||
|
||||
#define NM_SETTING_IP4_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_IP4_CONFIG, NMSettingIP4ConfigPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -54,7 +54,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingIP6Config, nm_setting_ip6_config, NM_TYPE_SETTING_IP_CONFIG,
|
||||
_nm_register_setting (IP6_CONFIG, NM_SETTING_PRIORITY_IP))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_IP6_CONFIG)
|
||||
|
||||
#define NM_SETTING_IP6_CONFIG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_IP6_CONFIG, NMSettingIP6ConfigPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingMacsec, nm_setting_macsec, NM_TYPE_SETTING,
|
||||
_nm_register_setting (MACSEC, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_MACSEC)
|
||||
|
||||
#define NM_SETTING_MACSEC_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_MACSEC, NMSettingMacsecPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingMacvlan, nm_setting_macvlan, NM_TYPE_SETTING,
|
||||
_nm_register_setting (MACVLAN, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_MACVLAN)
|
||||
|
||||
#define NM_SETTING_MACVLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_MACVLAN, NMSettingMacvlanPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@ static void nm_setting_olpc_mesh_init (NMSettingOlpcMesh *setting);
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingOlpcMesh, nm_setting_olpc_mesh, NM_TYPE_SETTING,
|
||||
_nm_register_setting (OLPC_MESH, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_OLPC_MESH)
|
||||
|
||||
#define NM_SETTING_OLPC_MESH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_OLPC_MESH, NMSettingOlpcMeshPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -63,7 +63,6 @@ struct _NMSettingOvsBridgeClass {
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingOvsBridge, nm_setting_ovs_bridge, NM_TYPE_SETTING,
|
||||
_nm_register_setting (OVS_BRIDGE, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_OVS_BRIDGE)
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -56,7 +56,6 @@ struct _NMSettingOvsInterfaceClass {
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingOvsInterface, nm_setting_ovs_interface, NM_TYPE_SETTING,
|
||||
_nm_register_setting (OVS_INTERFACE, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_OVS_INTERFACE)
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ struct _NMSettingOvsPatchClass {
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingOvsPatch, nm_setting_ovs_patch, NM_TYPE_SETTING,
|
||||
_nm_register_setting (OVS_PATCH, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_OVS_PATCH)
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ struct _NMSettingOvsPortClass {
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingOvsPort, nm_setting_ovs_port, NM_TYPE_SETTING,
|
||||
_nm_register_setting (OVS_PORT, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_OVS_PORT)
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingPpp, nm_setting_ppp, NM_TYPE_SETTING,
|
||||
_nm_register_setting (PPP, NM_SETTING_PRIORITY_AUX))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_PPP)
|
||||
|
||||
#define NM_SETTING_PPP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_PPP, NMSettingPppPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingPppoe, nm_setting_pppoe, NM_TYPE_SETTING,
|
||||
_nm_register_setting (PPPOE, NM_SETTING_PRIORITY_AUX))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_PPPOE)
|
||||
|
||||
#define NM_SETTING_PPPOE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_PPPOE, NMSettingPppoePrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -85,11 +85,6 @@ gboolean _nm_setting_clear_secrets_with_flags (NMSetting *setting,
|
|||
*/
|
||||
#define NM_SETTING_PARAM_REAPPLY_IMMEDIATELY (1 << (6 + G_PARAM_USER_SHIFT))
|
||||
|
||||
/* Ensure the setting's GType is registered at library load time */
|
||||
#define NM_SETTING_REGISTER_TYPE(x) \
|
||||
static void __attribute__((constructor)) register_setting (void) \
|
||||
{ g_type_ensure (x); }
|
||||
|
||||
GVariant *_nm_setting_get_deprecated_virtual_interface_name (NMSetting *setting,
|
||||
NMConnection *connection,
|
||||
const char *property);
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingProxy, nm_setting_proxy, NM_TYPE_SETTING,
|
||||
_nm_register_setting (PROXY, NM_SETTING_PRIORITY_IP))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_PROXY)
|
||||
|
||||
#define NM_SETTING_PROXY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_PROXY, NMSettingProxyPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingSerial, nm_setting_serial, NM_TYPE_SETTING,
|
||||
_nm_register_setting (SERIAL, NM_SETTING_PRIORITY_HW_AUX))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_SERIAL)
|
||||
|
||||
#define NM_SETTING_SERIAL_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_SERIAL, NMSettingSerialPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -836,7 +836,6 @@ struct _NMSettingTCConfigClass {
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingTCConfig, nm_setting_tc_config, NM_TYPE_SETTING,
|
||||
_nm_register_setting (TC_CONFIG, NM_SETTING_PRIORITY_IP))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_TC_CONFIG)
|
||||
|
||||
/**
|
||||
* nm_setting_tc_config_new:
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingTeamPort, nm_setting_team_port, NM_TYPE_SETTING,
|
||||
_nm_register_setting (TEAM_PORT, NM_SETTING_PRIORITY_AUX))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_TEAM_PORT)
|
||||
|
||||
#define NM_SETTING_TEAM_PORT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_TEAM_PORT, NMSettingTeamPortPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -559,7 +559,6 @@ nm_team_link_watcher_get_flags (NMTeamLinkWatcher *watcher)
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingTeam, nm_setting_team, NM_TYPE_SETTING,
|
||||
_nm_register_setting (TEAM, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_TEAM)
|
||||
|
||||
#define NM_SETTING_TEAM_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_TEAM, NMSettingTeamPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingTun, nm_setting_tun, NM_TYPE_SETTING,
|
||||
_nm_register_setting (TUN, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_TUN)
|
||||
|
||||
#define NM_SETTING_TUN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_TUN, NMSettingTunPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -65,7 +65,6 @@ struct _NMSettingUserClass {
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingUser, nm_setting_user, NM_TYPE_SETTING,
|
||||
_nm_register_setting (USER, NM_SETTING_PRIORITY_USER))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_USER)
|
||||
|
||||
#define NM_SETTING_USER_GET_PRIVATE(self) _NM_GET_PRIVATE(self, NMSettingUser, NM_IS_SETTING_USER)
|
||||
|
||||
|
|
|
|||
|
|
@ -43,7 +43,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingVlan, nm_setting_vlan, NM_TYPE_SETTING,
|
||||
_nm_register_setting (VLAN, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_VLAN)
|
||||
|
||||
#define NM_SETTING_VLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_VLAN, NMSettingVlanPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingVpn, nm_setting_vpn, NM_TYPE_SETTING,
|
||||
_nm_register_setting (VPN, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_VPN)
|
||||
|
||||
#define NM_SETTING_VPN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_VPN, NMSettingVpnPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -38,7 +38,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingVxlan, nm_setting_vxlan, NM_TYPE_SETTING,
|
||||
_nm_register_setting (VXLAN, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_VXLAN)
|
||||
|
||||
#define NM_SETTING_VXLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_VXLAN, NMSettingVxlanPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -44,7 +44,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingWimax, nm_setting_wimax, NM_TYPE_SETTING,
|
||||
_nm_register_setting (WIMAX, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIMAX)
|
||||
|
||||
#define NM_SETTING_WIMAX_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIMAX, NMSettingWimaxPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingWired, nm_setting_wired, NM_TYPE_SETTING,
|
||||
_nm_register_setting (WIRED, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIRED)
|
||||
|
||||
#define NM_SETTING_WIRED_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIRED, NMSettingWiredPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingWirelessSecurity, nm_setting_wireless_security, NM_TYPE_SETTING,
|
||||
_nm_register_setting (WIRELESS_SECURITY, NM_SETTING_PRIORITY_HW_AUX))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIRELESS_SECURITY)
|
||||
|
||||
#define NM_SETTING_WIRELESS_SECURITY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIRELESS_SECURITY, NMSettingWirelessSecurityPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingWireless, nm_setting_wireless, NM_TYPE_SETTING,
|
||||
_nm_register_setting (WIRELESS, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WIRELESS)
|
||||
|
||||
#define NM_SETTING_WIRELESS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WIRELESS, NMSettingWirelessPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,6 @@ struct _NMSettingWpanClass {
|
|||
|
||||
G_DEFINE_TYPE_WITH_CODE (NMSettingWpan, nm_setting_wpan, NM_TYPE_SETTING,
|
||||
_nm_register_setting (WPAN, NM_SETTING_PRIORITY_HW_BASE))
|
||||
NM_SETTING_REGISTER_TYPE (NM_TYPE_SETTING_WPAN)
|
||||
|
||||
#define NM_SETTING_WPAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_WPAN, NMSettingWpanPrivate))
|
||||
|
||||
|
|
|
|||
|
|
@ -72,9 +72,7 @@ typedef struct {
|
|||
const SettingInfo *info;
|
||||
} NMSettingPrivate;
|
||||
|
||||
static void _register_settings_init (void);
|
||||
|
||||
G_DEFINE_ABSTRACT_TYPE_WITH_CODE (NMSetting, nm_setting, G_TYPE_OBJECT, _register_settings_init () )
|
||||
G_DEFINE_ABSTRACT_TYPE (NMSetting, nm_setting, G_TYPE_OBJECT)
|
||||
|
||||
#define NM_SETTING_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING, NMSettingPrivate))
|
||||
|
||||
|
|
@ -94,14 +92,77 @@ _nm_gtype_hash (gconstpointer v)
|
|||
return *((const GType *) v);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static void
|
||||
_register_settings_init (void)
|
||||
_register_settings_ensure_types (void)
|
||||
{
|
||||
registered_settings = g_hash_table_new (nm_str_hash, g_str_equal);
|
||||
registered_settings_by_type = g_hash_table_new (_nm_gtype_hash, _nm_gtype_equal);
|
||||
#define ENSURE_TYPE(get_type) \
|
||||
G_STMT_START { \
|
||||
GType get_type (void); \
|
||||
\
|
||||
get_type (); \
|
||||
} G_STMT_END
|
||||
|
||||
ENSURE_TYPE (nm_setting_6lowpan_get_type);
|
||||
ENSURE_TYPE (nm_setting_802_1x_get_type);
|
||||
ENSURE_TYPE (nm_setting_adsl_get_type);
|
||||
ENSURE_TYPE (nm_setting_bluetooth_get_type);
|
||||
ENSURE_TYPE (nm_setting_bond_get_type);
|
||||
ENSURE_TYPE (nm_setting_bridge_get_type);
|
||||
ENSURE_TYPE (nm_setting_bridge_port_get_type);
|
||||
ENSURE_TYPE (nm_setting_cdma_get_type);
|
||||
ENSURE_TYPE (nm_setting_connection_get_type);
|
||||
ENSURE_TYPE (nm_setting_dcb_get_type);
|
||||
ENSURE_TYPE (nm_setting_dummy_get_type);
|
||||
ENSURE_TYPE (nm_setting_generic_get_type);
|
||||
ENSURE_TYPE (nm_setting_gsm_get_type);
|
||||
ENSURE_TYPE (nm_setting_infiniband_get_type);
|
||||
ENSURE_TYPE (nm_setting_ip4_config_get_type);
|
||||
ENSURE_TYPE (nm_setting_ip6_config_get_type);
|
||||
ENSURE_TYPE (nm_setting_ip_tunnel_get_type);
|
||||
ENSURE_TYPE (nm_setting_macsec_get_type);
|
||||
ENSURE_TYPE (nm_setting_macvlan_get_type);
|
||||
ENSURE_TYPE (nm_setting_olpc_mesh_get_type);
|
||||
ENSURE_TYPE (nm_setting_ovs_bridge_get_type);
|
||||
ENSURE_TYPE (nm_setting_ovs_interface_get_type);
|
||||
ENSURE_TYPE (nm_setting_ovs_patch_get_type);
|
||||
ENSURE_TYPE (nm_setting_ovs_port_get_type);
|
||||
ENSURE_TYPE (nm_setting_ppp_get_type);
|
||||
ENSURE_TYPE (nm_setting_pppoe_get_type);
|
||||
ENSURE_TYPE (nm_setting_proxy_get_type);
|
||||
ENSURE_TYPE (nm_setting_serial_get_type);
|
||||
ENSURE_TYPE (nm_setting_tc_config_get_type);
|
||||
ENSURE_TYPE (nm_setting_team_get_type);
|
||||
ENSURE_TYPE (nm_setting_team_port_get_type);
|
||||
ENSURE_TYPE (nm_setting_tun_get_type);
|
||||
ENSURE_TYPE (nm_setting_user_get_type);
|
||||
ENSURE_TYPE (nm_setting_vlan_get_type);
|
||||
ENSURE_TYPE (nm_setting_vpn_get_type);
|
||||
ENSURE_TYPE (nm_setting_vxlan_get_type);
|
||||
ENSURE_TYPE (nm_setting_wimax_get_type);
|
||||
ENSURE_TYPE (nm_setting_wired_get_type);
|
||||
ENSURE_TYPE (nm_setting_wireless_get_type);
|
||||
ENSURE_TYPE (nm_setting_wireless_security_get_type);
|
||||
ENSURE_TYPE (nm_setting_wpan_get_type);
|
||||
}
|
||||
|
||||
#define _register_settings_ensure_inited() (nm_setting_get_type ())
|
||||
/*****************************************************************************/
|
||||
|
||||
static int volatile _register_settings_ensure_inited_val = 0;
|
||||
|
||||
#define _register_settings_ensure_inited() \
|
||||
G_STMT_START { \
|
||||
if (G_UNLIKELY (_register_settings_ensure_inited_val == 0)) \
|
||||
_register_settings_ensure_inited_impl (); \
|
||||
} G_STMT_END
|
||||
|
||||
static void
|
||||
_register_settings_ensure_inited_impl (void)
|
||||
{
|
||||
_register_settings_ensure_types ();
|
||||
g_atomic_int_set (&_register_settings_ensure_inited_val, 1);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
|
|
@ -139,8 +200,6 @@ _nm_register_setting_impl (const char *name,
|
|||
nm_assert (!NM_IN_SET (type, G_TYPE_INVALID, G_TYPE_NONE));
|
||||
nm_assert (priority != NM_SETTING_PRIORITY_INVALID);
|
||||
|
||||
_register_settings_ensure_inited ();
|
||||
|
||||
nm_assert ( priority != NM_SETTING_PRIORITY_CONNECTION
|
||||
|| nm_streq (name, NM_SETTING_CONNECTION_SETTING_NAME));
|
||||
|
||||
|
|
@ -150,14 +209,26 @@ _nm_register_setting_impl (const char *name,
|
|||
info->name = name;
|
||||
|
||||
g_mutex_lock (&mutex);
|
||||
nm_assert (registered_settings);
|
||||
nm_assert (registered_settings_by_type);
|
||||
nm_assert (!g_hash_table_contains (registered_settings, name));
|
||||
nm_assert (!g_hash_table_contains (registered_settings_by_type, &type));
|
||||
|
||||
if (!registered_settings) {
|
||||
nm_assert (!registered_settings_by_type);
|
||||
registered_settings = g_hash_table_new (nm_str_hash, g_str_equal);
|
||||
registered_settings_by_type = g_hash_table_new (_nm_gtype_hash, _nm_gtype_equal);
|
||||
} else {
|
||||
nm_assert (!g_hash_table_contains (registered_settings, name));
|
||||
nm_assert (!g_hash_table_contains (registered_settings_by_type, &type));
|
||||
}
|
||||
|
||||
g_hash_table_insert (registered_settings, (void *) info->name, info);
|
||||
g_hash_table_insert (registered_settings_by_type, &info->type, info);
|
||||
|
||||
g_mutex_unlock (&mutex);
|
||||
|
||||
/* we cannot register types, after _register_settings_ensure_inited() is done.
|
||||
*
|
||||
* This means, you need to register the type in _register_settings_ensure_types()
|
||||
* above. */
|
||||
nm_assert (g_atomic_int_get (&_register_settings_ensure_inited_val) == 0);
|
||||
}
|
||||
|
||||
static const SettingInfo *
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue