Quellcode durchsuchen

[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 vor 13 Jahren
Ursprung
Commit
f732fa28c8
2 geänderte Dateien mit 7 neuen und 8 gelöschten Zeilen
  1. 6
    8
      src/core/settings.c
  2. 1
    0
      src/include/ipxe/settings.h

+ 6
- 8
src/core/settings.c Datei anzeigen

@@ -288,22 +288,20 @@ static struct settings * autovivify_child_settings ( struct settings *parent,
288 288
 }
289 289
 
290 290
 /**
291
- * Return settings block name (for debug only)
291
+ * Return settings block name
292 292
  *
293 293
  * @v settings		Settings block
294 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 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 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 Datei anzeigen

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

Laden…
Abbrechen
Speichern