mirror of https://github.com/ipxe/ipxe.git
[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>pull/1/head
parent
aebba8f6eb
commit
f732fa28c8
|
@ -288,22 +288,20 @@ static struct settings * autovivify_child_settings ( struct settings *parent,
|
|||
}
|
||||
|
||||
/**
|
||||
* Return settings block name (for debug only)
|
||||
* Return settings block name
|
||||
*
|
||||
* @v settings Settings block
|
||||
* @ret name Settings block name
|
||||
*/
|
||||
static const char * settings_name ( struct settings *settings ) {
|
||||
static char buf[64];
|
||||
const char * settings_name ( struct settings *settings ) {
|
||||
static char buf[16];
|
||||
char tmp[ sizeof ( buf ) ];
|
||||
int count;
|
||||
|
||||
for ( count = 0 ; settings ; settings = settings->parent ) {
|
||||
for ( buf[2] = buf[0] = 0 ; settings ; settings = settings->parent ) {
|
||||
memcpy ( tmp, buf, sizeof ( tmp ) );
|
||||
snprintf ( buf, sizeof ( buf ), "%s%c%s", settings->name,
|
||||
( count++ ? '.' : '\0' ), tmp );
|
||||
snprintf ( buf, sizeof ( buf ), ".%s%s", settings->name, tmp );
|
||||
}
|
||||
return ( buf + 1 );
|
||||
return ( buf + 2 );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -245,6 +245,7 @@ extern int fetch_uuid_setting ( struct settings *settings,
|
|||
extern void clear_settings ( struct settings *settings );
|
||||
extern int setting_cmp ( struct setting *a, struct setting *b );
|
||||
|
||||
extern const char * settings_name ( struct settings *settings );
|
||||
extern struct settings * find_settings ( const char *name );
|
||||
extern struct setting * find_setting ( const char *name );
|
||||
|
||||
|
|
Loading…
Reference in New Issue