MCPcopy Create free account
hub / github.com/coreboot/coreboot / conf

Function conf

util/kconfig/mconf.c:785–894  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

783}
784
785static void conf(struct menu *menu, struct menu *active_menu)
786{
787 struct menu *submenu;
788 const char *prompt = menu_get_prompt(menu);
789 struct subtitle_part stpart;
790 struct symbol *sym;
791 int res;
792 int s_scroll = 0;
793
794 if (menu != &rootmenu)
795 stpart.text = menu_get_prompt(menu);
796 else
797 stpart.text = NULL;
798 list_add_tail(&stpart.entries, &trail);
799
800 while (1) {
801 item_reset();
802 current_menu = menu;
803 build_conf(menu);
804 if (!child_count)
805 break;
806 set_subtitle();
807 dialog_clear();
808 res = dialog_menu(prompt ? prompt : "Main Menu",
809 menu_instructions,
810 active_menu, &s_scroll);
811 if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
812 break;
813 if (item_count() != 0) {
814 if (!item_activate_selected())
815 continue;
816 if (!item_tag())
817 continue;
818 }
819 submenu = item_data();
820 active_menu = item_data();
821 if (submenu)
822 sym = submenu->sym;
823 else
824 sym = NULL;
825
826 switch (res) {
827 case 0:
828 switch (item_tag()) {
829 case 'm':
830 if (single_menu_mode)
831 submenu->data = (void *) (long) !submenu->data;
832 else
833 conf(submenu, NULL);
834 break;
835 case 't':
836 if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)
837 conf_choice(submenu);
838 else if (submenu->prompt->type == P_MENU)
839 conf(submenu, NULL);
840 break;
841 case 's':
842 conf_string(submenu);

Callers 2

search_confFunction · 0.70
mainFunction · 0.70

Calls 15

menu_get_promptFunction · 0.85
list_add_tailFunction · 0.85
item_resetFunction · 0.85
set_subtitleFunction · 0.85
dialog_clearFunction · 0.85
dialog_menuFunction · 0.85
item_activate_selectedFunction · 0.85
sym_is_choiceFunction · 0.85
sym_get_tristate_valueFunction · 0.85
reset_subtitleFunction · 0.85
show_helptextFunction · 0.85
sym_set_tristate_valueFunction · 0.85

Tested by

no test coverage detected