david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[settings] Impose a fixed order on settings

Improve the appearance of the "config" user interface by ensuring that
settings appear in some kind of logical order.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown 2011-03-23 11:57:29 +00:00
parent b36882be34
commit 8482451812
13 changed files with 64 additions and 46 deletions

View File

@ -1672,7 +1672,7 @@ char * expand_settings ( const char *string ) {
*/
/** Hostname setting */
struct setting hostname_setting __setting = {
struct setting hostname_setting __setting ( SETTING_HOST ) = {
.name = "hostname",
.description = "Host name",
.tag = DHCP_HOST_NAME,
@ -1680,7 +1680,7 @@ struct setting hostname_setting __setting = {
};
/** Filename setting */
struct setting filename_setting __setting = {
struct setting filename_setting __setting ( SETTING_BOOT ) = {
.name = "filename",
.description = "Boot filename",
.tag = DHCP_BOOTFILE_NAME,
@ -1688,7 +1688,7 @@ struct setting filename_setting __setting = {
};
/** Root path setting */
struct setting root_path_setting __setting = {
struct setting root_path_setting __setting ( SETTING_SANBOOT ) = {
.name = "root-path",
.description = "iSCSI root path",
.tag = DHCP_ROOT_PATH,
@ -1696,7 +1696,7 @@ struct setting root_path_setting __setting = {
};
/** Username setting */
struct setting username_setting __setting = {
struct setting username_setting __setting ( SETTING_AUTH ) = {
.name = "username",
.description = "User name",
.tag = DHCP_EB_USERNAME,
@ -1704,7 +1704,7 @@ struct setting username_setting __setting = {
};
/** Password setting */
struct setting password_setting __setting = {
struct setting password_setting __setting ( SETTING_AUTH ) = {
.name = "password",
.description = "Password",
.tag = DHCP_EB_PASSWORD,
@ -1712,7 +1712,7 @@ struct setting password_setting __setting = {
};
/** Priority setting */
struct setting priority_setting __setting = {
struct setting priority_setting __setting ( SETTING_MISC ) = {
.name = "priority",
.description = "Priority of these settings",
.tag = DHCP_EB_PRIORITY,

View File

@ -1093,7 +1093,7 @@ struct net80211_wlan
/** 802.11 encryption key setting */
extern struct setting net80211_key_setting __setting;
extern struct setting net80211_key_setting __setting ( SETTING_NETDEV_EXTRA );
/**

View File

@ -65,7 +65,27 @@ struct setting {
#define SETTINGS __table ( struct setting, "settings" )
/** Declare a configuration setting */
#define __setting __table_entry ( SETTINGS, 01 )
#define __setting( setting_order ) __table_entry ( SETTINGS, setting_order )
/** @defgroup setting_order Setting ordering
* @{
*/
#define SETTING_NETDEV 01 /**< Network device settings */
#define SETTING_NETDEV_EXTRA 02 /**< Network device additional settings */
#define SETTING_IPv4 03 /**< IPv4 settings */
#define SETTING_IPv4_EXTRA 04 /**< IPv4 additional settings */
#define SETTING_BOOT 05 /**< Generic boot settings */
#define SETTING_BOOT_EXTRA 06 /**< Generic boot additional settings */
#define SETTING_SANBOOT 07 /**< SAN boot settings */
#define SETTING_SANBOOT_EXTRA 08 /**< SAN boot additional settings */
#define SETTING_HOST 09 /**< Host identity settings */
#define SETTING_HOST_EXTRA 10 /**< Host identity additional settings */
#define SETTING_AUTH 11 /**< Authentication settings */
#define SETTING_AUTH_EXTRA 12 /**< Authentication additional settings */
#define SETTING_MISC 13 /**< Miscellaneous settings */
/** @} */
/** Settings block operations */
struct settings_operations {
@ -273,22 +293,20 @@ extern struct setting_type setting_type_uint32 __setting_type;
extern struct setting_type setting_type_hex __setting_type;
extern struct setting_type setting_type_uuid __setting_type;
extern struct setting ip_setting __setting;
extern struct setting netmask_setting __setting;
extern struct setting gateway_setting __setting;
extern struct setting dns_setting __setting;
extern struct setting domain_setting __setting;
extern struct setting hostname_setting __setting;
extern struct setting filename_setting __setting;
extern struct setting root_path_setting __setting;
extern struct setting username_setting __setting;
extern struct setting password_setting __setting;
extern struct setting priority_setting __setting;
extern struct setting uuid_setting __setting;
extern struct setting next_server_setting __setting;
extern struct setting mac_setting __setting;
extern struct setting busid_setting __setting;
extern struct setting user_class_setting __setting;
extern struct setting ip_setting __setting ( SETTING_IPv4 );
extern struct setting netmask_setting __setting ( SETTING_IPv4 );
extern struct setting gateway_setting __setting ( SETTING_IPv4 );
extern struct setting dns_setting __setting ( SETTING_IPv4_EXTRA );
extern struct setting hostname_setting __setting ( SETTING_HOST );
extern struct setting filename_setting __setting ( SETTING_BOOT );
extern struct setting root_path_setting __setting ( SETTING_SANBOOT );
extern struct setting username_setting __setting ( SETTING_AUTH );
extern struct setting password_setting __setting ( SETTING_AUTH );
extern struct setting priority_setting __setting ( SETTING_MISC );
extern struct setting uuid_setting __setting ( SETTING_HOST );
extern struct setting next_server_setting __setting ( SETTING_BOOT );
extern struct setting mac_setting __setting ( SETTING_NETDEV );
extern struct setting busid_setting __setting ( SETTING_NETDEV );
/**
* Initialise a settings block

View File

@ -165,7 +165,7 @@ struct init_fn smbios_init_fn __init_fn ( INIT_NORMAL ) = {
};
/** UUID setting obtained via SMBIOS */
struct setting uuid_setting __setting = {
struct setting uuid_setting __setting ( SETTING_HOST ) = {
.name = "uuid",
.description = "UUID",
.tag = SMBIOS_RAW_TAG ( SMBIOS_TYPE_SYSTEM_INFORMATION,
@ -174,7 +174,7 @@ struct setting uuid_setting __setting = {
};
/** Other SMBIOS named settings */
struct setting smbios_named_settings[] __setting = {
struct setting smbios_named_settings[] __setting ( SETTING_HOST_EXTRA ) = {
{
.name = "manufacturer",
.description = "Manufacturer",

View File

@ -202,7 +202,7 @@ struct settings_applicator net80211_applicator __settings_applicator = {
* If this is blank, we scan for all networks and use the one with the
* greatest signal strength.
*/
struct setting net80211_ssid_setting __setting = {
struct setting net80211_ssid_setting __setting ( SETTING_NETDEV_EXTRA ) = {
.name = "ssid",
.description = "802.11 SSID (network name)",
.type = &setting_type_string,
@ -215,7 +215,7 @@ struct setting net80211_ssid_setting __setting = {
* active scan (send probe packets). If this setting is nonzero, an
* active scan on the 2.4GHz band will be used to associate.
*/
struct setting net80211_active_setting __setting = {
struct setting net80211_active_setting __setting ( SETTING_NETDEV_EXTRA ) = {
.name = "active-scan",
.description = "Use an active scan during 802.11 association",
.type = &setting_type_int8,
@ -228,7 +228,7 @@ struct setting net80211_active_setting __setting = {
* normal iPXE method for entering hex settings; an ASCII string of
* hex characters will not behave as expected.
*/
struct setting net80211_key_setting __setting = {
struct setting net80211_key_setting __setting ( SETTING_NETDEV_EXTRA ) = {
.name = "key",
.description = "Encryption key for protected 802.11 networks",
.type = &setting_type_string,

View File

@ -554,7 +554,7 @@ struct arp_net_protocol ipv4_arp_protocol __arp_net_protocol = {
*/
/** IPv4 address setting */
struct setting ip_setting __setting = {
struct setting ip_setting __setting ( SETTING_IPv4 ) = {
.name = "ip",
.description = "IPv4 address",
.tag = DHCP_EB_YIADDR,
@ -562,7 +562,7 @@ struct setting ip_setting __setting = {
};
/** IPv4 subnet mask setting */
struct setting netmask_setting __setting = {
struct setting netmask_setting __setting ( SETTING_IPv4 ) = {
.name = "netmask",
.description = "IPv4 subnet mask",
.tag = DHCP_SUBNET_MASK,
@ -570,7 +570,7 @@ struct setting netmask_setting __setting = {
};
/** Default gateway setting */
struct setting gateway_setting __setting = {
struct setting gateway_setting __setting ( SETTING_IPv4 ) = {
.name = "gateway",
.description = "Default gateway",
.tag = DHCP_ROUTERS,

View File

@ -34,13 +34,13 @@ FILE_LICENCE ( GPL2_OR_LATER );
*/
/** Network device named settings */
struct setting mac_setting __setting = {
struct setting mac_setting __setting ( SETTING_NETDEV ) = {
.name = "mac",
.description = "MAC address",
.type = &setting_type_hex,
.tag = NETDEV_SETTING_TAG_MAC,
};
struct setting busid_setting __setting = {
struct setting busid_setting __setting ( SETTING_NETDEV ) = {
.name = "busid",
.description = "Bus ID",
.type = &setting_type_hex,

View File

@ -1820,7 +1820,7 @@ enum iscsi_root_path_component {
};
/** iSCSI initiator IQN setting */
struct setting initiator_iqn_setting __setting = {
struct setting initiator_iqn_setting __setting ( SETTING_SANBOOT_EXTRA ) = {
.name = "initiator-iqn",
.description = "iSCSI initiator name",
.tag = DHCP_ISCSI_INITIATOR_IQN,
@ -1828,7 +1828,7 @@ struct setting initiator_iqn_setting __setting = {
};
/** iSCSI reverse username setting */
struct setting reverse_username_setting __setting = {
struct setting reverse_username_setting __setting ( SETTING_AUTH_EXTRA ) = {
.name = "reverse-username",
.description = "Reverse user name",
.tag = DHCP_EB_REVERSE_USERNAME,
@ -1836,7 +1836,7 @@ struct setting reverse_username_setting __setting = {
};
/** iSCSI reverse password setting */
struct setting reverse_password_setting __setting = {
struct setting reverse_password_setting __setting ( SETTING_AUTH_EXTRA ) = {
.name = "reverse-password",
.description = "Reverse password",
.tag = DHCP_EB_REVERSE_PASSWORD,

View File

@ -93,7 +93,7 @@ static uint8_t dhcp_request_options_data[] = {
FEATURE_VERSION ( VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH );
/** DHCP server address setting */
struct setting dhcp_server_setting __setting = {
struct setting dhcp_server_setting __setting ( SETTING_MISC ) = {
.name = "dhcp-server",
.description = "DHCP server address",
.tag = DHCP_SERVER_IDENTIFIER,
@ -101,7 +101,7 @@ struct setting dhcp_server_setting __setting = {
};
/** DHCP user class setting */
struct setting user_class_setting __setting = {
struct setting user_class_setting __setting ( SETTING_HOST_EXTRA ) = {
.name = "user-class",
.description = "User class identifier",
.tag = DHCP_USER_CLASS_ID,
@ -109,7 +109,7 @@ struct setting user_class_setting __setting = {
};
/** Use cached network settings */
struct setting use_cached_setting __setting = {
struct setting use_cached_setting __setting ( SETTING_MISC ) = {
.name = "use-cached",
.description = "Use cached network settings",
.tag = DHCP_EB_USE_CACHED,

View File

@ -587,7 +587,7 @@ struct resolver dns_resolver __resolver ( RESOLV_NORMAL ) = {
*/
/** DNS server setting */
struct setting dns_setting __setting = {
struct setting dns_setting __setting ( SETTING_IPv4_EXTRA ) = {
.name = "dns",
.description = "DNS server",
.tag = DHCP_DNS_SERVERS,
@ -595,7 +595,7 @@ struct setting dns_setting __setting = {
};
/** Domain name setting */
struct setting domain_setting __setting = {
struct setting domain_setting __setting ( SETTING_IPv4_EXTRA ) = {
.name = "domain",
.description = "Local domain",
.tag = DHCP_DOMAIN_NAME,

View File

@ -146,7 +146,7 @@ struct console_driver syslog_console __console_driver = {
*/
/** Syslog server setting */
struct setting syslog_setting __setting = {
struct setting syslog_setting __setting ( SETTING_MISC ) = {
.name = "syslog",
.description = "Syslog server",
.tag = DHCP_LOG_SERVERS,

View File

@ -1215,7 +1215,7 @@ struct uri_opener mtftp_uri_opener __uri_opener = {
*/
/** TFTP server setting */
struct setting next_server_setting __setting = {
struct setting next_server_setting __setting ( SETTING_BOOT ) = {
.name = "next-server",
.description = "TFTP server",
.tag = DHCP_EB_SIADDR,

View File

@ -99,7 +99,7 @@ static struct uri * parse_next_server_and_filename ( struct in_addr next_server,
}
/** The "keep-san" setting */
struct setting keep_san_setting __setting = {
struct setting keep_san_setting __setting ( SETTING_SANBOOT_EXTRA ) = {
.name = "keep-san",
.description = "Preserve SAN connection",
.tag = DHCP_EB_KEEP_SAN,
@ -107,7 +107,7 @@ struct setting keep_san_setting __setting = {
};
/** The "skip-san-boot" setting */
struct setting skip_san_boot_setting __setting = {
struct setting skip_san_boot_setting __setting ( SETTING_SANBOOT_EXTRA ) = {
.name = "skip-san-boot",
.description = "Do not boot the SAN drive after connecting",
.tag = DHCP_EB_SKIP_SAN_BOOT,