summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Brown2016-07-19 17:44:18 +0200
committerMichael Brown2016-07-19 18:07:53 +0200
commitf5cf4f706ec27e995b8431f885b61b5cdbcef968 (patch)
tree56227cff2e147087ae8abcafa472f36b9c27fdf4 /src
parent[ipv6] Expose IPv6 link-local address settings (diff)
downloadipxe-f5cf4f706ec27e995b8431f885b61b5cdbcef968.tar.gz
ipxe-f5cf4f706ec27e995b8431f885b61b5cdbcef968.tar.xz
ipxe-f5cf4f706ec27e995b8431f885b61b5cdbcef968.zip
[settings] Allow settings blocks to specify a sibling ordering
Allow settings blocks to provide an explicit default ordering between siblings, with lower precedence than the existing ${priority} setting. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src')
-rw-r--r--src/core/settings.c2
-rw-r--r--src/include/ipxe/settings.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/src/core/settings.c b/src/core/settings.c
index 42bb5e53..c306054d 100644
--- a/src/core/settings.c
+++ b/src/core/settings.c
@@ -452,6 +452,8 @@ static void reprioritise_settings ( struct settings *settings ) {
tmp_priority = fetch_intz_setting ( tmp, &priority_setting );
if ( priority > tmp_priority )
break;
+ if ( settings->order > tmp->order )
+ break;
}
list_add_tail ( &settings->siblings, &tmp->siblings );
diff --git a/src/include/ipxe/settings.h b/src/include/ipxe/settings.h
index 07ebaa62..8cc0b6bb 100644
--- a/src/include/ipxe/settings.h
+++ b/src/include/ipxe/settings.h
@@ -144,6 +144,8 @@ struct settings {
struct settings_operations *op;
/** Default scope for numerical settings constructed for this block */
const struct settings_scope *default_scope;
+ /** Sibling ordering */
+ int order;
};
/**