1#ifndef _IPXE_SETTINGS_H
2#define _IPXE_SETTINGS_H
54#define SETTINGS __table ( struct setting, "settings" )
57#define __setting( setting_order, name ) \
58 __table_entry ( SETTINGS, setting_order.name )
64#define SETTING_NETDEV 01
65#define SETTING_NETDEV_EXTRA 02
67#define SETTING_IP4_EXTRA 04
69#define SETTING_IP6_EXTRA 06
71#define SETTING_IP_EXTRA 08
72#define SETTING_BOOT 09
73#define SETTING_BOOT_EXTRA 10
74#define SETTING_SANBOOT 11
75#define SETTING_SANBOOT_EXTRA 12
76#define SETTING_HOST 13
77#define SETTING_HOST_EXTRA 14
78#define SETTING_AUTH 15
79#define SETTING_AUTH_EXTRA 16
80#define SETTING_CRYPTO 17
81#define SETTING_MISC 18
111 const void *
data,
size_t len );
207 void *buf,
size_t len );
229 void *buf,
size_t len );
243#define SETTING_TYPES __table ( struct setting_type, "setting_types" )
246#define __setting_type __table_entry ( SETTING_TYPES, 01 )
261#define SETTINGS_APPLICATORS \
262 __table ( struct settings_applicator, "settings_applicators" )
265#define __settings_applicator __table_entry ( SETTINGS_APPLICATORS, 01 )
281#define BUILTIN_SETTINGS __table ( struct builtin_setting, "builtin_settings" )
284#define __builtin_setting __table_entry ( BUILTIN_SETTINGS, 01 )
312 const void *
data,
size_t len );
327 const void *
data,
size_t len );
364 unsigned long *
value );
387 char *buf,
size_t len );
391 void *buf,
size_t len );
395 unsigned long value,
void *buf,
size_t len );
399 char *buf,
size_t len );
409 unsigned long *
value );
412 unsigned long value );
#define NULL
NULL pointer (VOID *)
pseudo_bit_t value[0x00020]
unsigned long long uint64_t
static unsigned short vendor
static struct dns_server dns6
IPv6 DNS server list.
uint32_t next
Next descriptor address.
uint64_t serial
Serial number.
const struct setting gateway6_setting
const struct setting ip_setting
const struct setting len6_setting
const struct setting ip6_setting
const struct setting dns_setting
const struct setting dns6_setting
const struct setting netmask_setting
const struct setting gateway_setting
uint32_t type
Operating system type.
uint8_t data[48]
Additional event data.
uint8_t mac[ETH_ALEN]
MAC address.
static unsigned int count
Number of entries.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
#define SETTING_IP4_EXTRA
IPv4 additional settings.
#define SETTING_IP4
IPv4 settings.
#define SETTING_HOST_EXTRA
Host identity additional settings.
#define SETTING_SANBOOT
SAN boot settings.
#define SETTING_BOOT
Generic boot settings.
#define SETTING_NETDEV
Network device settings.
#define SETTING_IP6
IPv6 settings.
#define SETTING_IP_EXTRA
IPv4 additional settings.
#define SETTING_HOST
Host identity settings.
#define SETTING_IP6_EXTRA
IPv6 additional settings.
#define SETTING_AUTH
Authentication settings.
#define SETTING_MISC
Miscellaneous settings.
#define __setting(setting_order, name)
Declare a configuration setting.
int setting_numerate(const struct setting_type *type, const void *raw, size_t raw_len, unsigned long *value)
Convert setting value to number.
int setting_format(const struct setting_type *type, const void *raw, size_t raw_len, char *buf, size_t len)
Format setting value as a string.
int register_settings(struct settings *settings, struct settings *parent, const char *name)
Register settings block.
char * expand_settings(const char *string)
Expand variables within string.
struct settings * autovivify_child_settings(struct settings *parent, const char *name)
Find or create child settings block.
int setting_name(struct settings *settings, const struct setting *setting, char *buf, size_t len)
Return full setting name.
int fetch_raw_setting_copy(struct settings *settings, const struct setting *setting, void **data)
Fetch value of setting.
static int delete_setting(struct settings *settings, const struct setting *setting)
Delete setting.
int fetch_ipv6_array_setting(struct settings *settings, const struct setting *setting, struct in6_addr *inp, unsigned int count)
Fetch value of IPv6 address setting.
struct settings *(* get_child_settings_t)(struct settings *settings, const char *name)
A child settings block locator function.
int fetch_raw_setting(struct settings *settings, const struct setting *setting, void *data, size_t len)
Fetch value of setting.
int fetch_setting(struct settings *settings, const struct setting *setting, struct settings **origin, struct setting *fetched, void *data, size_t len)
Fetch setting.
static void settings_init(struct settings *settings, struct settings_operations *op, struct refcnt *refcnt, const struct settings_scope *default_scope)
Initialise a settings block.
struct settings * settings_target(struct settings *settings)
Redirect to target settings block.
int fetchn_setting(struct settings *settings, const struct setting *setting, struct settings **origin, struct setting *fetched, unsigned long *value)
Fetch numeric value of setting.
unsigned long fetch_uintz_setting(struct settings *settings, const struct setting *setting)
Fetch value of unsigned integer setting, or zero.
int setting_parse(const struct setting_type *type, const char *value, void *buf, size_t len)
Parse formatted string to setting value.
static int setting_exists(struct settings *settings, const struct setting *setting)
Check existence of predefined setting.
int fetch_int_setting(struct settings *settings, const struct setting *setting, long *value)
Fetch value of signed integer setting.
int fetch_setting_copy(struct settings *settings, const struct setting *setting, struct settings **origin, struct setting *fetched, void **data)
Fetch copy of setting.
int fetch_ipv4_array_setting(struct settings *settings, const struct setting *setting, struct in_addr *inp, unsigned int count)
Fetch value of IPv4 address setting.
int fetch_string_setting(struct settings *settings, const struct setting *setting, char *data, size_t len)
Fetch value of string setting.
static void generic_settings_init(struct generic_settings *generics, struct refcnt *refcnt)
Initialise a settings block.
int parse_setting_name(char *name, get_child_settings_t get_child, struct settings **settings, struct setting *setting)
Parse setting name.
struct setting * find_setting(const char *name)
Find predefined setting.
int setting_applies(struct settings *settings, const struct setting *setting)
Check applicability of setting.
void clear_settings(struct settings *settings)
Clear settings block.
int fetch_ipv6_setting(struct settings *settings, const struct setting *setting, struct in6_addr *inp)
Fetch value of IPv6 address setting.
int fetch_string_setting_copy(struct settings *settings, const struct setting *setting, char **data)
Fetch value of string setting.
void unregister_settings(struct settings *settings)
Unregister settings block.
int setting_cmp(const struct setting *a, const struct setting *b)
Compare two settings.
int generic_settings_fetch(struct settings *settings, struct setting *setting, void *data, size_t len)
Fetch value of generic setting.
int fetch_ipv4_setting(struct settings *settings, const struct setting *setting, struct in_addr *inp)
Fetch value of IPv4 address setting.
struct settings * find_settings(const char *name)
Find settings block.
int fetch_uint_setting(struct settings *settings, const struct setting *setting, unsigned long *value)
Fetch value of unsigned integer setting.
int fetchf_setting(struct settings *settings, const struct setting *setting, struct settings **origin, struct setting *fetched, char *buf, size_t len)
Fetch formatted value of setting.
void generic_settings_clear(struct settings *settings)
Clear generic settings block.
struct settings * find_child_settings(struct settings *parent, const char *name)
Find child settings block.
int fetchf_setting_copy(struct settings *settings, const struct setting *setting, struct settings **origin, struct setting *fetched, char **value)
Fetch copy of formatted value of setting.
int generic_settings_store(struct settings *settings, const struct setting *setting, const void *data, size_t len)
Store value of generic setting.
int storef_setting(struct settings *settings, const struct setting *setting, const char *value)
Store formatted value of setting.
long fetch_intz_setting(struct settings *settings, const struct setting *setting)
Fetch value of signed integer setting, or zero.
int fetch_uuid_setting(struct settings *settings, const struct setting *setting, union uuid *uuid)
Fetch value of UUID setting.
int store_setting(struct settings *settings, const struct setting *setting, const void *data, size_t len)
Store value of setting.
#define __setting_type
Declare a configuration setting type.
int storen_setting(struct settings *settings, const struct setting *setting, unsigned long value)
Store numeric value of setting.
const char * settings_name(struct settings *settings)
Return settings block name.
int setting_denumerate(const struct setting_type *type, unsigned long value, void *buf, size_t len)
Convert number to setting value.
uint8_t product
Product string.
uint8_t manufacturer
Manufacturer string.
const struct settings_scope ipv6_settings_scope
IPv6 settings scope.
#define INIT_LIST_HEAD(list)
Initialise a list head.
static struct dynamic_item username
static struct dynamic_item password
static uint16_t struct vmbus_xfer_pages_operations * op
IP4_t ip
Destination IP address.
const struct settings_scope dhcpv6_scope
IPv6 settings scope.
int fetch_setting(struct settings *settings, const struct setting *setting, struct settings **origin, struct setting *fetched, void *data, size_t len)
Fetch setting.
const struct settings_scope builtin_scope
Built-in setting scope.
struct settings_operations generic_settings_operations
Generic settings operations.
uint16_t priority
Priotity.
struct stp_switch root
Root switch.
const struct setting * setting
Setting.
int(* fetch)(void *data, size_t len)
Fetch setting value.
A generic settings block.
struct list_head list
List of generic settings.
struct settings settings
Settings block.
A doubly-linked list entry (or list head)
int(* format)(const struct setting_type *type, const void *raw, size_t raw_len, char *buf, size_t len)
Format setting value as a string.
int(* numerate)(const struct setting_type *type, const void *raw, size_t raw_len, unsigned long *value)
Convert setting value to number.
int(* denumerate)(const struct setting_type *type, unsigned long value, void *buf, size_t len)
Convert number to setting value.
int(* parse)(const struct setting_type *type, const char *value, void *buf, size_t len)
Parse formatted string to setting value.
const char * description
Description.
const struct setting_type * type
Setting type.
uint64_t tag
Setting tag, if applicable.
int(* apply)(void)
Apply updated settings.
Settings block operations.
int(* applies)(struct settings *settings, const struct setting *setting)
Check applicability of setting.
int(* fetch)(struct settings *settings, struct setting *setting, void *data, size_t len)
Fetch value of setting.
int(* store)(struct settings *settings, const struct setting *setting, const void *data, size_t len)
Store value of setting.
void(* clear)(struct settings *settings)
Clear settings block.
uint8_t dummy
Dummy field.
struct settings_operations * op
Settings block operations.
const struct settings_scope * default_scope
Default scope for numerical settings constructed for this block.
struct list_head children
Child settings blocks.
int order
Sibling ordering.
struct settings * parent
Parent settings block.
struct list_head siblings
Sibling settings blocks.
struct refcnt * refcnt
Reference counter.