[settings] Allow for IPv6 setting types in non-IPv6 builds

Allow for the existence of references to IPv6 setting types without
dragging in the whole IPv6 stack, by placing the definition of
setting_type_ipv6 in core/settings.c and providing weak stub methods
for parse_ipv6_setting() and format_ipv6_setting().

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2013-12-04 22:06:10 +00:00
parent 22001cb206
commit 17451b53e2
7 changed files with 132 additions and 51 deletions

View File

@@ -255,9 +255,6 @@ static int dhcpv6_iaaddr ( struct dhcpv6_option_list *options, uint32_t iaid,
*
*/
/** DHCPv6 settings scope */
static const struct settings_scope dhcpv6_settings_scope;
/** A DHCPv6 settings block */
struct dhcpv6_settings {
/** Reference count */
@@ -278,7 +275,7 @@ struct dhcpv6_settings {
static int dhcpv6_applies ( struct settings *settings __unused,
const struct setting *setting ) {
return ( setting->scope == &dhcpv6_settings_scope );
return ( setting->scope == &ipv6_scope );
}
/**
@@ -339,7 +336,7 @@ static int dhcpv6_register ( struct dhcpv6_option_list *options,
}
ref_init ( &dhcpv6set->refcnt, NULL );
settings_init ( &dhcpv6set->settings, &dhcpv6_settings_operations,
&dhcpv6set->refcnt, &dhcpv6_settings_scope );
&dhcpv6set->refcnt, &ipv6_scope );
data = ( ( ( void * ) dhcpv6set ) + sizeof ( *dhcpv6set ) );
len = options->len;
memcpy ( data, options->data, len );