Browse Source

[settings] Expose settings_name()

Expose settings_name(), shrink the unnecessarily large static buffer,
properly name root settings block, and simplify.

Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Glenn Brown 13 years ago
parent
commit
f732fa28c8
2 changed files with 7 additions and 8 deletions
  1. 6
    8
      src/core/settings.c
  2. 1
    0
      src/include/ipxe/settings.h

+ 6
- 8
src/core/settings.c View File

288
 }
288
 }
289
 
289
 
290
 /**
290
 /**
291
- * Return settings block name (for debug only)
291
+ * Return settings block name
292
  *
292
  *
293
  * @v settings		Settings block
293
  * @v settings		Settings block
294
  * @ret name		Settings block name
294
  * @ret name		Settings block name
295
  */
295
  */
296
-static const char * settings_name ( struct settings *settings ) {
297
-	static char buf[64];
296
+const char * settings_name ( struct settings *settings ) {
297
+	static char buf[16];
298
 	char tmp[ sizeof ( buf ) ];
298
 	char tmp[ sizeof ( buf ) ];
299
-	int count;
300
 
299
 
301
-	for ( count = 0 ; settings ; settings = settings->parent ) {
300
+	for ( buf[2] = buf[0] = 0 ; settings ; settings = settings->parent ) {
302
 		memcpy ( tmp, buf, sizeof ( tmp ) );
301
 		memcpy ( tmp, buf, sizeof ( tmp ) );
303
-		snprintf ( buf, sizeof ( buf ), "%s%c%s", settings->name,
304
-			   ( count++ ? '.' : '\0' ), tmp );
302
+		snprintf ( buf, sizeof ( buf ), ".%s%s", settings->name, tmp );
305
 	}
303
 	}
306
-	return ( buf + 1 );
304
+	return ( buf + 2 );
307
 }
305
 }
308
 
306
 
309
 /**
307
 /**

+ 1
- 0
src/include/ipxe/settings.h View File

245
 extern void clear_settings ( struct settings *settings );
245
 extern void clear_settings ( struct settings *settings );
246
 extern int setting_cmp ( struct setting *a, struct setting *b );
246
 extern int setting_cmp ( struct setting *a, struct setting *b );
247
 
247
 
248
+extern const char * settings_name ( struct settings *settings );
248
 extern struct settings * find_settings ( const char *name );
249
 extern struct settings * find_settings ( const char *name );
249
 extern struct setting * find_setting ( const char *name );
250
 extern struct setting * find_setting ( const char *name );
250
 
251
 

Loading…
Cancel
Save