mirror of
https://github.com/ipxe/ipxe
synced 2025-12-22 21:11:03 +03:00
[Settings] Add settings hierarchy
Add the notion of the settings hierarchy, complete with register/unregister routines. Rename set->store and get->fetch to avoid naming conflicts with get/put as used in reference counting.
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
#include <gpxe/settings_ui.h>
|
||||
|
||||
static int config_exec ( int argc, char **argv ) {
|
||||
struct settings *settings;
|
||||
struct settings *settings = NULL;
|
||||
int rc;
|
||||
|
||||
if ( argc > 2 ) {
|
||||
@@ -20,8 +20,6 @@ static int config_exec ( int argc, char **argv ) {
|
||||
printf ( "No such scope \"%s\"\n", argv[1] );
|
||||
return 1;
|
||||
}
|
||||
} else {
|
||||
settings = &interactive_settings;
|
||||
}
|
||||
|
||||
if ( ( rc = settings_ui ( settings ) ) != 0 ) {
|
||||
|
||||
@@ -16,7 +16,8 @@ static int show_exec ( int argc, char **argv ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( ( rc = get_named_setting ( argv[1], buf, sizeof ( buf ) ) ) < 0 ){
|
||||
if ( ( rc = fetch_named_setting ( argv[1], buf,
|
||||
sizeof ( buf ) ) ) < 0 ){
|
||||
printf ( "Could not find \"%s\": %s\n",
|
||||
argv[1], strerror ( rc ) );
|
||||
return 1;
|
||||
@@ -34,7 +35,7 @@ static int set_exec ( int argc, char **argv ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( ( rc = set_named_setting ( argv[1], argv[2] ) ) != 0 ) {
|
||||
if ( ( rc = store_named_setting ( argv[1], argv[2] ) ) != 0 ) {
|
||||
printf ( "Could not set \"%s\"=\"%s\": %s\n",
|
||||
argv[1], argv[2], strerror ( rc ) );
|
||||
return 1;
|
||||
|
||||
@@ -114,9 +114,9 @@ static void load_setting ( struct setting_widget *widget ) {
|
||||
widget->editing = 0;
|
||||
|
||||
/* Read current setting value */
|
||||
if ( get_typed_setting ( widget->settings, widget->setting->tag,
|
||||
widget->setting->type, widget->value,
|
||||
sizeof ( widget->value ) ) < 0 ) {
|
||||
if ( fetch_typed_setting ( widget->settings, widget->setting->tag,
|
||||
widget->setting->type, widget->value,
|
||||
sizeof ( widget->value ) ) < 0 ) {
|
||||
widget->value[0] = '\0';
|
||||
}
|
||||
|
||||
@@ -133,8 +133,8 @@ static void load_setting ( struct setting_widget *widget ) {
|
||||
* @v widget Setting widget
|
||||
*/
|
||||
static int save_setting ( struct setting_widget *widget ) {
|
||||
return set_typed_setting ( widget->settings, widget->setting->tag,
|
||||
widget->setting->type, widget->value );
|
||||
return store_typed_setting ( widget->settings, widget->setting->tag,
|
||||
widget->setting->type, widget->value );
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user