[settings] Allow store_setting() to access the root settings block
authorMichael Brown <mcb30@etherboot.org>
Tue, 17 Feb 2009 11:57:31 +0000 (11:57 +0000)
committerMichael Brown <mcb30@etherboot.org>
Tue, 17 Feb 2009 11:57:31 +0000 (11:57 +0000)
src/core/settings.c

index 29e56b3..f34eb66 100644 (file)
@@ -284,7 +284,7 @@ struct settings * find_settings ( const char *name ) {
 /**
  * Store value of setting
  *
 /**
  * Store value of setting
  *
- * @v settings         Settings block
+ * @v settings         Settings block, or NULL
  * @v setting          Setting to store
  * @v data             Setting data, or NULL to clear setting
  * @v len              Length of setting data
  * @v setting          Setting to store
  * @v data             Setting data, or NULL to clear setting
  * @v len              Length of setting data
@@ -294,9 +294,9 @@ int store_setting ( struct settings *settings, struct setting *setting,
                    const void *data, size_t len ) {
        int rc;
 
                    const void *data, size_t len ) {
        int rc;
 
-       /* Sanity check */
+       /* NULL settings implies storing into the global settings root */
        if ( ! settings )
        if ( ! settings )
-               return -ENODEV;
+               settings = &settings_root;
 
        /* Store setting */
        if ( ( rc = settings->op->store ( settings, setting,
 
        /* Store setting */
        if ( ( rc = settings->op->store ( settings, setting,