7cf3d73b43
savedefconfig will save a minimal config to a file named "defconfig". The config symbols are saved in the same order as they appear in the menu structure so it should be possible to map them to the relevant menus if desired. The implementation was tested against several minimal configs for arm which was created using brute-force. There was one regression related to default numbers which had their valid range further limited by another symbol. Sample: config FOO int "foo" default 4 config BAR int "bar" range 0 FOO If FOO is set to 3 then BAR cannot take a value higher than 3. But the current implementation will set BAR equal to 4. This is seldomly used and the final configuration is OK, and the fix was non-trivial. So it was documented in the code and left as is. Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Michal Marek <mmarek@suse.cz>
51 lines
2.2 KiB
C
51 lines
2.2 KiB
C
|
|
/* confdata.c */
|
|
P(conf_parse,void,(const char *name));
|
|
P(conf_read,int,(const char *name));
|
|
P(conf_read_simple,int,(const char *name, int));
|
|
P(conf_write_defconfig,int,(const char *name));
|
|
P(conf_write,int,(const char *name));
|
|
P(conf_write_autoconf,int,(void));
|
|
P(conf_get_changed,bool,(void));
|
|
P(conf_set_changed_callback, void,(void (*fn)(void)));
|
|
|
|
/* menu.c */
|
|
P(rootmenu,struct menu,);
|
|
|
|
P(menu_is_visible, bool, (struct menu *menu));
|
|
P(menu_has_prompt, bool, (struct menu *menu));
|
|
P(menu_get_prompt,const char *,(struct menu *menu));
|
|
P(menu_get_root_menu,struct menu *,(struct menu *menu));
|
|
P(menu_get_parent_menu,struct menu *,(struct menu *menu));
|
|
P(menu_has_help,bool,(struct menu *menu));
|
|
P(menu_get_help,const char *,(struct menu *menu));
|
|
P(get_symbol_str, void, (struct gstr *r, struct symbol *sym));
|
|
P(get_relations_str, struct gstr, (struct symbol **sym_arr));
|
|
P(menu_get_ext_help,void,(struct menu *menu, struct gstr *help));
|
|
|
|
/* symbol.c */
|
|
P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);
|
|
|
|
P(sym_lookup,struct symbol *,(const char *name, int flags));
|
|
P(sym_find,struct symbol *,(const char *name));
|
|
P(sym_re_search,struct symbol **,(const char *pattern));
|
|
P(sym_type_name,const char *,(enum symbol_type type));
|
|
P(sym_calc_value,void,(struct symbol *sym));
|
|
P(sym_get_type,enum symbol_type,(struct symbol *sym));
|
|
P(sym_tristate_within_range,bool,(struct symbol *sym,tristate tri));
|
|
P(sym_set_tristate_value,bool,(struct symbol *sym,tristate tri));
|
|
P(sym_toggle_tristate_value,tristate,(struct symbol *sym));
|
|
P(sym_string_valid,bool,(struct symbol *sym, const char *newval));
|
|
P(sym_string_within_range,bool,(struct symbol *sym, const char *str));
|
|
P(sym_set_string_value,bool,(struct symbol *sym, const char *newval));
|
|
P(sym_is_changable,bool,(struct symbol *sym));
|
|
P(sym_get_choice_prop,struct property *,(struct symbol *sym));
|
|
P(sym_get_default_prop,struct property *,(struct symbol *sym));
|
|
P(sym_get_string_value,const char *,(struct symbol *sym));
|
|
|
|
P(prop_get_type_name,const char *,(enum prop_type type));
|
|
|
|
/* expr.c */
|
|
P(expr_compare_type,int,(enum expr_type t1, enum expr_type t2));
|
|
P(expr_print,void,(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, int prevtoken));
|