1*e91610daSEugeniu Rosca /* SPDX-License-Identifier: GPL-2.0 */ 20a9064fbSMasahiro Yamada #include <stdarg.h> 30a9064fbSMasahiro Yamada 40a9064fbSMasahiro Yamada /* confdata.c */ 59b5f0b1dSMasahiro Yamada void conf_parse(const char *name); 69b5f0b1dSMasahiro Yamada int conf_read(const char *name); 79b5f0b1dSMasahiro Yamada int conf_read_simple(const char *name, int); 89b5f0b1dSMasahiro Yamada int conf_write_defconfig(const char *name); 99b5f0b1dSMasahiro Yamada int conf_write(const char *name); 109b5f0b1dSMasahiro Yamada int conf_write_autoconf(void); 119b5f0b1dSMasahiro Yamada bool conf_get_changed(void); 129b5f0b1dSMasahiro Yamada void conf_set_changed_callback(void (*fn)(void)); 139b5f0b1dSMasahiro Yamada void conf_set_message_callback(void (*fn)(const char *fmt, va_list ap)); 140a9064fbSMasahiro Yamada 150a9064fbSMasahiro Yamada /* menu.c */ 169b5f0b1dSMasahiro Yamada extern struct menu rootmenu; 170a9064fbSMasahiro Yamada 189b5f0b1dSMasahiro Yamada bool menu_is_empty(struct menu *menu); 199b5f0b1dSMasahiro Yamada bool menu_is_visible(struct menu *menu); 209b5f0b1dSMasahiro Yamada bool menu_has_prompt(struct menu *menu); 219b5f0b1dSMasahiro Yamada const char * menu_get_prompt(struct menu *menu); 229b5f0b1dSMasahiro Yamada struct menu * menu_get_root_menu(struct menu *menu); 239b5f0b1dSMasahiro Yamada struct menu * menu_get_parent_menu(struct menu *menu); 249b5f0b1dSMasahiro Yamada bool menu_has_help(struct menu *menu); 259b5f0b1dSMasahiro Yamada const char * menu_get_help(struct menu *menu); 269b5f0b1dSMasahiro Yamada struct gstr get_relations_str(struct symbol **sym_arr, struct list_head *head); 279b5f0b1dSMasahiro Yamada void menu_get_ext_help(struct menu *menu, struct gstr *help); 280a9064fbSMasahiro Yamada 290a9064fbSMasahiro Yamada /* symbol.c */ 309b5f0b1dSMasahiro Yamada extern struct symbol * symbol_hash[SYMBOL_HASHSIZE]; 310a9064fbSMasahiro Yamada 329b5f0b1dSMasahiro Yamada struct symbol * sym_lookup(const char *name, int flags); 339b5f0b1dSMasahiro Yamada struct symbol * sym_find(const char *name); 34*e91610daSEugeniu Rosca char *sym_expand_string_value(const char *in); 359b5f0b1dSMasahiro Yamada const char * sym_escape_string_value(const char *in); 369b5f0b1dSMasahiro Yamada struct symbol ** sym_re_search(const char *pattern); 379b5f0b1dSMasahiro Yamada const char * sym_type_name(enum symbol_type type); 389b5f0b1dSMasahiro Yamada void sym_calc_value(struct symbol *sym); 399b5f0b1dSMasahiro Yamada enum symbol_type sym_get_type(struct symbol *sym); 409b5f0b1dSMasahiro Yamada bool sym_tristate_within_range(struct symbol *sym,tristate tri); 419b5f0b1dSMasahiro Yamada bool sym_set_tristate_value(struct symbol *sym,tristate tri); 429b5f0b1dSMasahiro Yamada tristate sym_toggle_tristate_value(struct symbol *sym); 439b5f0b1dSMasahiro Yamada bool sym_string_valid(struct symbol *sym, const char *newval); 449b5f0b1dSMasahiro Yamada bool sym_string_within_range(struct symbol *sym, const char *str); 459b5f0b1dSMasahiro Yamada bool sym_set_string_value(struct symbol *sym, const char *newval); 469b5f0b1dSMasahiro Yamada bool sym_is_changable(struct symbol *sym); 479b5f0b1dSMasahiro Yamada struct property * sym_get_choice_prop(struct symbol *sym); 489b5f0b1dSMasahiro Yamada const char * sym_get_string_value(struct symbol *sym); 490a9064fbSMasahiro Yamada 509b5f0b1dSMasahiro Yamada const char * prop_get_type_name(enum prop_type type); 510a9064fbSMasahiro Yamada 520a9064fbSMasahiro Yamada /* expr.c */ 539b5f0b1dSMasahiro Yamada void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, int prevtoken); 54