diff options
Diffstat (limited to 'clients/common/nm-meta-setting-desc.h')
| -rw-r--r-- | clients/common/nm-meta-setting-desc.h | 541 |
1 files changed, 0 insertions, 541 deletions
diff --git a/clients/common/nm-meta-setting-desc.h b/clients/common/nm-meta-setting-desc.h deleted file mode 100644 index 2f520b21..00000000 --- a/clients/common/nm-meta-setting-desc.h +++ /dev/null @@ -1,541 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * Copyright (C) 2010 - 2018 Red Hat, Inc. - */ - -#ifndef __NM_META_SETTING_DESC_H__ -#define __NM_META_SETTING_DESC_H__ - -#include "nm-glib-aux/nm-obj.h" -#include "nm-meta-setting-base.h" -#include "nm-base/nm-ethtool-base.h" - -struct _NMDevice; - -#define NM_META_TEXT_HIDDEN N_("<hidden>") - -#define NM_META_TEXT_PROMPT_ADSL_PROTO N_("Protocol") -#define NM_META_TEXT_PROMPT_ADSL_PROTO_CHOICES \ - "(" NM_SETTING_ADSL_PROTOCOL_PPPOA "/" NM_SETTING_ADSL_PROTOCOL_PPPOE \ - "/" NM_SETTING_ADSL_PROTOCOL_IPOATM ")" - -#define NM_META_TEXT_PROMPT_ADSL_ENCAP N_("ADSL encapsulation") -#define NM_META_TEXT_PROMPT_ADSL_ENCAP_CHOICES \ - "(" NM_SETTING_ADSL_ENCAPSULATION_VCMUX "/" NM_SETTING_ADSL_ENCAPSULATION_LLC ") [none]" - -#define NM_META_TEXT_PROMPT_CON_TYPE N_("Connection type") -#define NM_META_TEXT_PROMPT_IFNAME N_("Interface name [*]") -#define NM_META_TEXT_PROMPT_VPN_TYPE N_("VPN type") -#define NM_META_TEXT_PROMPT_MASTER N_("Master") - -#define NM_META_TEXT_PROMPT_IB_MODE N_("Transport mode") -#define NM_META_TEXT_WORD_DATAGRAM "datagram" -#define NM_META_TEXT_WORD_CONNECTED "connected" -#define NM_META_TEXT_PROMPT_IB_MODE_CHOICES \ - "(" NM_META_TEXT_WORD_DATAGRAM "/" NM_META_TEXT_WORD_CONNECTED \ - ") [" NM_META_TEXT_WORD_DATAGRAM "]" - -#define NM_META_TEXT_PROMPT_BT_TYPE N_("Bluetooth type") -#define NM_META_TEXT_WORD_PANU "panu" -#define NM_META_TEXT_WORD_NAP "nap" -#define NM_META_TEXT_WORD_DUN_GSM "dun-gsm" -#define NM_META_TEXT_WORD_DUN_CDMA "dun-cdma" -#define NM_META_TEXT_PROMPT_BT_TYPE_CHOICES \ - "(" NM_META_TEXT_WORD_PANU "/" NM_META_TEXT_WORD_NAP "/" NM_META_TEXT_WORD_DUN_GSM \ - "/" NM_META_TEXT_WORD_DUN_CDMA ") [" NM_META_TEXT_WORD_PANU "]" - -#define NM_META_TEXT_PROMPT_BOND_MODE N_("Bonding mode") - -#define NM_META_TEXT_PROMPT_BOND_MON_MODE N_("Bonding monitoring mode") -#define NM_META_TEXT_WORD_MIIMON "miimon" -#define NM_META_TEXT_WORD_ARP "arp" -#define NM_META_TEXT_PROMPT_BOND_MON_MODE_CHOICES \ - "(" NM_META_TEXT_WORD_MIIMON "/" NM_META_TEXT_WORD_ARP ") [" NM_META_TEXT_WORD_MIIMON "]" - -#define NM_META_TEXT_PROMPT_WIFI_MODE N_("Wi-Fi mode") -#define NM_META_TEXT_WORD_INFRA "infrastructure" -#define NM_META_TEXT_WORD_AP "ap" -#define NM_META_TEXT_WORD_ADHOC "adhoc" -#define NM_META_TEXT_WORD_MESH "mesh" -#define NM_META_TEXT_PROMPT_WIFI_MODE_CHOICES \ - "(" NM_META_TEXT_WORD_INFRA "/" NM_META_TEXT_WORD_AP "/" NM_META_TEXT_WORD_ADHOC \ - "/" NM_META_TEXT_WORD_MESH ") [" NM_META_TEXT_WORD_INFRA "]" - -#define NM_META_TEXT_PROMPT_TUN_MODE N_("Tun mode") -#define NM_META_TEXT_WORD_TUN "tun" -#define NM_META_TEXT_WORD_TAP "tap" -#define NM_META_TEXT_PROMPT_TUN_MODE_CHOICES \ - "(" NM_META_TEXT_WORD_TUN "/" NM_META_TEXT_WORD_TAP ") [" NM_META_TEXT_WORD_TUN "]" - -#define NM_META_TEXT_PROMPT_IP_TUNNEL_MODE N_("IP Tunnel mode") - -#define NM_META_TEXT_PROMPT_MACVLAN_MODE N_("MACVLAN mode") - -#define NM_META_TEXT_PROMPT_MACSEC_MODE N_("MACsec mode") -#define NM_META_TEXT_WORD_PSK "psk" -#define NM_META_TEXT_WORD_EAP "eap" -#define NM_META_TEXT_PROMPT_MACSEC_MODE_CHOICES \ - "(" NM_META_TEXT_WORD_PSK "/" NM_META_TEXT_WORD_EAP ")" - -#define NM_META_TEXT_PROMPT_PROXY_METHOD N_("Proxy method") -#define NM_META_TEXT_WORD_NONE "none" -#define NM_META_TEXT_WORD_AUTO "auto" -#define NM_META_TEXT_PROMPT_PROXY_METHOD_CHOICES \ - "(" NM_META_TEXT_WORD_NONE "/" NM_META_TEXT_WORD_AUTO ") [" NM_META_TEXT_WORD_NONE "]" - -typedef enum { - NM_META_COLOR_NONE = 0, - NM_META_COLOR_CONNECTION_ACTIVATED, - NM_META_COLOR_CONNECTION_ACTIVATING, - NM_META_COLOR_CONNECTION_DISCONNECTING, - NM_META_COLOR_CONNECTION_INVISIBLE, - NM_META_COLOR_CONNECTION_EXTERNAL, - NM_META_COLOR_CONNECTION_UNKNOWN, - NM_META_COLOR_CONNECTIVITY_FULL, - NM_META_COLOR_CONNECTIVITY_LIMITED, - NM_META_COLOR_CONNECTIVITY_NONE, - NM_META_COLOR_CONNECTIVITY_PORTAL, - NM_META_COLOR_CONNECTIVITY_UNKNOWN, - NM_META_COLOR_DEVICE_ACTIVATED, - NM_META_COLOR_DEVICE_ACTIVATING, - NM_META_COLOR_DEVICE_DISCONNECTED, - NM_META_COLOR_DEVICE_FIRMWARE_MISSING, - NM_META_COLOR_DEVICE_PLUGIN_MISSING, - NM_META_COLOR_DEVICE_UNAVAILABLE, - NM_META_COLOR_DEVICE_DISABLED, - NM_META_COLOR_DEVICE_EXTERNAL, - NM_META_COLOR_DEVICE_UNKNOWN, - NM_META_COLOR_MANAGER_RUNNING, - NM_META_COLOR_MANAGER_STARTING, - NM_META_COLOR_MANAGER_STOPPED, - NM_META_COLOR_PERMISSION_AUTH, - NM_META_COLOR_PERMISSION_NO, - NM_META_COLOR_PERMISSION_UNKNOWN, - NM_META_COLOR_PERMISSION_YES, - NM_META_COLOR_PROMPT, - NM_META_COLOR_STATE_ASLEEP, - NM_META_COLOR_STATE_CONNECTED_GLOBAL, - NM_META_COLOR_STATE_CONNECTED_LOCAL, - NM_META_COLOR_STATE_CONNECTED_SITE, - NM_META_COLOR_STATE_CONNECTING, - NM_META_COLOR_STATE_DISCONNECTED, - NM_META_COLOR_STATE_DISCONNECTING, - NM_META_COLOR_STATE_UNKNOWN, - NM_META_COLOR_WIFI_SIGNAL_EXCELLENT, - NM_META_COLOR_WIFI_SIGNAL_FAIR, - NM_META_COLOR_WIFI_SIGNAL_GOOD, - NM_META_COLOR_WIFI_SIGNAL_POOR, - NM_META_COLOR_WIFI_SIGNAL_UNKNOWN, - NM_META_COLOR_DISABLED, - NM_META_COLOR_ENABLED, - _NM_META_COLOR_NUM -} NMMetaColor; - -typedef enum { - NM_META_ACCESSOR_MODIFIER_SET, - NM_META_ACCESSOR_MODIFIER_ADD, - NM_META_ACCESSOR_MODIFIER_DEL, -} NMMetaAccessorModifier; - -typedef enum { - NM_META_ACCESSOR_GET_TYPE_PRETTY, - NM_META_ACCESSOR_GET_TYPE_PARSABLE, - NM_META_ACCESSOR_GET_TYPE_COLOR, -} NMMetaAccessorGetType; - -typedef enum { - NM_META_ACCESSOR_SETTING_INIT_TYPE_DEFAULT, - NM_META_ACCESSOR_SETTING_INIT_TYPE_CLI, -} NMMetaAccessorSettingInitType; - -typedef enum { - NM_META_ACCESSOR_GET_FLAGS_NONE = 0, - NM_META_ACCESSOR_GET_FLAGS_ACCEPT_STRV = (1LL << 0), - NM_META_ACCESSOR_GET_FLAGS_SHOW_SECRETS = (1LL << 1), -} NMMetaAccessorGetFlags; - -typedef enum { - NM_META_ACCESSOR_GET_OUT_FLAGS_NONE = 0, - NM_META_ACCESSOR_GET_OUT_FLAGS_STRV = (1LL << 0), - - /* the property allows to be hidden, if and only if, it's value is set to the - * default. This should only be set by new properties, to preserve behavior - * of old properties, which were always printed. */ - NM_META_ACCESSOR_GET_OUT_FLAGS_HIDE = (1LL << 1), -} NMMetaAccessorGetOutFlags; - -typedef enum { - NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_NUMERIC = (1LL << 0), - NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_NUMERIC_HEX = (1LL << 1), - NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT = (1LL << 2), - NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PRETTY_TEXT_L10N = (1LL << 3), - NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_NUMERIC = (1LL << 4), - NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_NUMERIC_HEX = (1LL << 5), - NM_META_PROPERTY_TYP_FLAG_ENUM_GET_PARSABLE_TEXT = (1LL << 6), -} NMMetaPropertyTypFlags; - -typedef enum { - NM_META_PROPERTY_TYPE_MAC_MODE_DEFAULT, - NM_META_PROPERTY_TYPE_MAC_MODE_CLONED, - NM_META_PROPERTY_TYPE_MAC_MODE_INFINIBAND, - NM_META_PROPERTY_TYPE_MAC_MODE_WPAN, -} NMMetaPropertyTypeMacMode; - -typedef struct _NMMetaEnvironment NMMetaEnvironment; -typedef struct _NMMetaType NMMetaType; -typedef struct _NMMetaAbstractInfo NMMetaAbstractInfo; -typedef struct _NMMetaSettingInfoEditor NMMetaSettingInfoEditor; -typedef struct _NMMetaPropertyInfo NMMetaPropertyInfo; -typedef struct _NMMetaPropertyType NMMetaPropertyType; -typedef struct _NMMetaPropertyTypData NMMetaPropertyTypData; -typedef struct _NMMetaOperationContext NMMetaOperationContext; -typedef struct _NMMetaNestedPropertyInfo NMMetaNestedPropertyInfo; -typedef struct _NMMetaPropertyTypDataNested NMMetaPropertyTypDataNested; - -/* this gives some context information for virtual functions. - * This command actually violates layering, and should be considered - * a hack. In the future, try to replace its use. */ -struct _NMMetaOperationContext { - NMConnection *connection; -}; - -struct _NMMetaPropertyType { - /* should return a translated string */ - const char *(*describe_fcn)(const NMMetaPropertyInfo *property_info, char **out_to_free); - - gconstpointer (*get_fcn)(const NMMetaPropertyInfo * property_info, - const NMMetaEnvironment * environment, - gpointer environment_user_data, - NMSetting * setting, - NMMetaAccessorGetType get_type, - NMMetaAccessorGetFlags get_flags, - NMMetaAccessorGetOutFlags *out_flags, - gboolean * out_is_default, - gpointer * out_to_free); - gboolean (*set_fcn)(const NMMetaPropertyInfo *property_info, - const NMMetaEnvironment * environment, - gpointer environment_user_data, - NMSetting * setting, - NMMetaAccessorModifier modifier, - const char * value, - GError ** error); - - const char *const *(*values_fcn)(const NMMetaPropertyInfo *property_info, char ***out_to_free); - - const char *const *(*complete_fcn)(const NMMetaPropertyInfo * property_info, - const NMMetaEnvironment * environment, - gpointer environment_user_data, - const NMMetaOperationContext *operation_context, - const char * text, - gboolean * out_complete_filename, - char *** out_to_free); - - /* Whether set_fcn() supports the '-' modifier. That is, whether the property - * is a list type. */ - bool set_supports_remove : 1; -}; - -struct _NMUtilsEnumValueInfo; - -typedef union { - gint64 i64; - guint64 u64; -} NMMetaSignUnsignInt64; - -typedef struct { - const char * nick; - NMMetaSignUnsignInt64 value; -} NMMetaUtilsIntValueInfo; - -struct _NMMetaPropertyTypData { - union { - struct { - GType (*get_gtype)(void); - int min; - int max; - const struct _NMUtilsEnumValueInfo *value_infos_get; /* nicks for get function */ - const struct _NMUtilsEnumValueInfo *value_infos; /* nicks for set function */ - void (*pre_set_notify)(const NMMetaPropertyInfo *property_info, - const NMMetaEnvironment * environment, - gpointer environment_user_data, - NMSetting * setting, - int value); - } gobject_enum; - struct { - NMMetaSignUnsignInt64 min; - NMMetaSignUnsignInt64 max; - guint base; - const NMMetaUtilsIntValueInfo *value_infos; - } gobject_int; - struct { - const char *(*validate_fcn)(const char *value, char **out_to_free, GError **error); - bool handle_emptyunset : 1; - } gobject_string; - struct { - bool legacy_format : 1; - } gobject_bytes; - struct { - guint32 (*get_num_fcn_u32)(NMSetting *setting); - guint (*get_num_fcn_u)(NMSetting *setting); - void (*clear_all_fcn)(NMSetting *setting); - - /* some multilist properties distinguish between an empty list and - * and unset. If this function pointer is set, certain behaviors come - * into action to handle that. */ - void (*clear_emptyunset_fcn)(NMSetting *setting, - gboolean is_set /* or else set default */); - - gboolean (*add_fcn)(NMSetting *setting, const char *item); - void (*add2_fcn)(NMSetting *setting, const char *item); - const char *(*validate_fcn)(const char *item, GError **error); - const char *(*validate2_fcn)(NMSetting *setting, const char *item, GError **error); - void (*remove_by_idx_fcn_u32)(NMSetting *setting, guint32 idx); - void (*remove_by_idx_fcn_u)(NMSetting *setting, guint idx); - void (*remove_by_idx_fcn_s)(NMSetting *setting, int idx); - gboolean (*remove_by_value_fcn)(NMSetting *setting, const char *item); - bool strsplit_plain : 1; - bool strsplit_with_spaces : 1; - } multilist; - struct { - guint (*get_num_fcn)(NMSetting *setting); - void (*obj_to_str_fcn)(NMMetaAccessorGetType get_type, - NMSetting * setting, - guint idx, - GString * str); - gboolean (*set_fcn)(NMSetting * setting, - gboolean do_add /* or else remove. */, - const char *value, - GError ** error); - void (*clear_all_fcn)(NMSetting *setting); - void (*remove_by_idx_fcn_u)(NMSetting *setting, guint idx); - void (*remove_by_idx_fcn_s)(NMSetting *setting, int idx); - bool delimit_pretty_with_semicolon : 1; - bool strsplit_plain : 1; - } objlist; - struct { - gboolean (*set_fcn)(NMSetting * setting, - const char *option, - const char *value, - GError ** error); - bool no_empty_value : 1; - } optionlist; - struct { - guint32 (*get_fcn)(NMSetting *setting); - } mtu; - struct { - NMSetting8021xSchemeType scheme_type; - } cert_8021x; - struct { - NMMetaPropertyTypeMacMode mode; - } mac; - struct { - guint (*get_fcn)(NMSettingDcb *setting, guint user_priority); - void (*set_fcn)(NMSettingDcb *setting, guint id, guint value); - guint max; - guint other; - bool is_percent : 1; - } dcb; - struct { - gboolean (*get_fcn)(NMSettingDcb *s_dcb, guint priority); - void (*set_fcn)(NMSettingDcb *setting, guint user_priority, gboolean enabled); - bool with_flow_control_flags : 1; - } dcb_bool; - struct { - NMEthtoolID ethtool_id; - } ethtool; - } subtype; - gboolean (*is_default_fcn)(NMSetting *setting); - const char *const * values_static; - const NMMetaPropertyTypDataNested *nested; - NMMetaPropertyTypFlags typ_flags; -}; - -typedef enum { - NM_META_PROPERTY_INF_FLAG_NONE = 0x00, - NM_META_PROPERTY_INF_FLAG_REQD = 0x01, /* Don't ask to ask. */ - NM_META_PROPERTY_INF_FLAG_DONT_ASK = 0x02, /* Don't ask interactively by default */ - NM_META_PROPERTY_INF_FLAG_MULTI = 0x04, /* Ask multiple times, do an append instead of set. */ -} NMMetaPropertyInfFlags; - -enum { - _NM_META_PROPERTY_TYPE_VPN_SERVICE_TYPE = 0, - _NM_META_PROPERTY_TYPE_CONNECTION_TYPE = 3, -}; - -#define nm_meta_property_info_connection_type \ - (nm_meta_setting_infos_editor[NM_META_SETTING_TYPE_CONNECTION] \ - .properties[_NM_META_PROPERTY_TYPE_CONNECTION_TYPE]) -#define nm_meta_property_info_vpn_service_type \ - (nm_meta_setting_infos_editor[NM_META_SETTING_TYPE_VPN] \ - .properties[_NM_META_PROPERTY_TYPE_VPN_SERVICE_TYPE]) - -struct _NMMetaPropertyInfo { - union { - NMObjBaseInst parent; - const NMMetaType *meta_type; - }; - - const NMMetaSettingInfoEditor *setting_info; - - const char *property_name; - - const char *property_alias; - - NMMetaPropertyInfFlags inf_flags; - bool is_secret : 1; - - bool is_cli_option : 1; - bool hide_if_default : 1; - - const char *prompt; - - const char *def_hint; - - const char *describe_doc; - - /* a non-translated but translatable static description (marked with N_()). */ - const char *describe_message; - - const NMMetaPropertyType * property_type; - const NMMetaPropertyTypData *property_typ_data; -}; - -typedef struct _NMMetaSettingValidPartItem { - const NMMetaSettingInfoEditor *setting_info; - bool mandatory; -} NMMetaSettingValidPartItem; - -struct _NMMetaSettingInfoEditor { - union { - NMObjBaseInst parent; - const NMMetaType *meta_type; - }; - const NMMetaSettingInfo * general; - const char * alias; - const char * pretty_name; - const NMMetaPropertyInfo *const *properties; - guint properties_num; - - /* a NMConnection has a main type (connection.type), which is a - * main NMSetting instance. Depending on the type, a connection - * may have a list of other allowed settings. - * - * For example, a connection of type "vlan" may have settings - * of type "connection", "vlan", and "wired". - * - * Some setting types a not a main type (NMSettingProxy). They - * don't have valid_settings but are usually referenced by other - * settings to be valid for them. */ - const NMMetaSettingValidPartItem *const *valid_parts; - - void (*setting_init_fcn)(const NMMetaSettingInfoEditor *setting_info, - NMSetting * setting, - NMMetaAccessorSettingInitType init_type); -}; - -struct _NMMetaType { - NMObjBaseClass parent; - const char * type_name; - const char *(*get_name)(const NMMetaAbstractInfo *abstract_info, gboolean for_header); - const NMMetaAbstractInfo *const *(*get_nested)(const NMMetaAbstractInfo *abstract_info, - guint * out_len, - gpointer * out_to_free); - gconstpointer (*get_fcn)(const NMMetaAbstractInfo * info, - const NMMetaEnvironment * environment, - gpointer environment_user_data, - gpointer target, - gpointer target_data, - NMMetaAccessorGetType get_type, - NMMetaAccessorGetFlags get_flags, - NMMetaAccessorGetOutFlags *out_flags, - gboolean * out_is_default, - gpointer * out_to_free); - const char *const *(*complete_fcn)(const NMMetaAbstractInfo * info, - const NMMetaEnvironment * environment, - gpointer environment_user_data, - const NMMetaOperationContext *operation_context, - const char * text, - gboolean * out_complete_filename, - char *** out_to_free); -}; - -struct _NMMetaAbstractInfo { - union { - NMObjBaseInst parent; - const NMMetaType *meta_type; - }; -}; - -extern const NMMetaType nm_meta_type_setting_info_editor; -extern const NMMetaType nm_meta_type_property_info; - -extern const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[_NM_META_SETTING_TYPE_NUM]; - -extern const NMMetaSettingValidPartItem *const nm_meta_setting_info_valid_parts_default[]; - -const NMMetaSettingValidPartItem *const * -nm_meta_setting_info_valid_parts_for_slave_type(const char * slave_type, - const char **out_slave_name); - -/*****************************************************************************/ - -typedef enum { - NM_META_ENV_WARN_LEVEL_INFO, - NM_META_ENV_WARN_LEVEL_WARN, -} NMMetaEnvWarnLevel; - -/* the settings-meta data is supposed to be independent of an actual client - * implementation. Hence, there is a need for hooks to the meta-data. - * The meta-data handlers may call back to the environment with certain - * actions. */ -struct _NMMetaEnvironment { - void (*warn_fcn)( - const NMMetaEnvironment *environment, - gpointer environment_user_data, - NMMetaEnvWarnLevel warn_level, - const char * - fmt_l10n, /* the untranslated format string, but it is marked for translation using N_(). */ - va_list ap); - - struct _NMDevice *const *(*get_nm_devices)(const NMMetaEnvironment *environment, - gpointer environment_user_data, - guint * out_len); - - struct _NMRemoteConnection *const *(*get_nm_connections)(const NMMetaEnvironment *environment, - gpointer environment_user_data, - guint * out_len); -}; - -/*****************************************************************************/ - -/* NMSettingBond is special in that it has nested properties. - * We will add API to proper handle such types (Bond, VPN, User), - * but for now just expose the type info directly. */ - -extern const NMMetaType nm_meta_type_nested_property_info; - -struct _NMMetaNestedPropertyInfo { - union { - const NMMetaType * meta_type; - NMMetaPropertyInfo base; - }; - const NMMetaPropertyInfo *parent_info; -}; - -struct _NMMetaPropertyTypDataNested { - const NMMetaNestedPropertyInfo *nested; - guint nested_len; -}; - -extern const NMMetaPropertyTypDataNested nm_meta_property_typ_data_bond; - -/*****************************************************************************/ - -gboolean _nm_meta_setting_bond_add_option(NMSetting * setting, - const char *name, - const char *value, - GError ** error); - -/*****************************************************************************/ - -#endif /* __NM_META_SETTING_DESC_H__ */ |