Author: jcrouse Date: 2008-05-07 00:00:55 +0200 (Wed, 07 May 2008) New Revision: 3284
Modified: trunk/payloads/coreinfo/coreinfo.c Log: The previous commit had more in it then I wanted - so I am reverting this and re-commiting so that the history and comments are correct.
Signed-off-by: Jordan Crouse jordan.crouse@amd.com Acked-by: Jordan Crouse jordan.crouse@amd.com
Modified: trunk/payloads/coreinfo/coreinfo.c =================================================================== --- trunk/payloads/coreinfo/coreinfo.c 2008-05-06 21:32:52 UTC (rev 3283) +++ trunk/payloads/coreinfo/coreinfo.c 2008-05-06 22:00:55 UTC (rev 3284) @@ -28,46 +28,24 @@ extern struct coreinfo_module nvram_module; extern struct coreinfo_module bootlog_module;
-struct coreinfo_module *system_modules[] = { +struct coreinfo_module *modules[] = { #ifdef CONFIG_MODULE_CPUINFO &cpuinfo_module, #endif #ifdef CONFIG_MODULE_PCI &pci_module, #endif -#ifdef CONFIG_MODULE_NVRAM - &nvram_module, -#endif -}; - -struct coreinfo_module *coreboot_modules[] = { #ifdef CONFIG_MODULE_COREBOOT &coreboot_module, #endif +#ifdef CONFIG_MODULE_NVRAM + &nvram_module, +#endif #ifdef CONFIG_MODULE_BOOTLOG &bootlog_module, #endif };
-struct coreinfo_cat { - char name[15]; - int cur; - int count; - struct coreinfo_module **modules; -} categories[] = { - { - .name = "System", - .modules = system_modules, - .count = ARRAY_SIZE(system_modules), - }, - { - .name = "Coreboot", - .modules = coreboot_modules, - .count = ARRAY_SIZE(coreboot_modules), - } -}; - - static WINDOW *modwin; static int curwin;
@@ -84,26 +62,6 @@ waddch(win, '\304'); }
-static void print_submenu(struct coreinfo_cat *cat) -{ - int i, j; - char menu[80]; - char *ptr = menu; - - wmove(stdscr, 22, 0); - - for (j = 0; j < SCREEN_X; j++) - waddch(stdscr, ' '); - - if (!cat->count) - return; - - for (i = 0; i < cat->count; i++) - ptr += sprintf(ptr, "[%c: %s] ", 'A' + i, cat->modules[i]->name); - - mvprintw(22, 0, menu); -} - static void print_menu(void) { int i, j; @@ -115,15 +73,12 @@ for (j = 0; j < SCREEN_X; j++) waddch(stdscr, ' ');
- for (i = 0; i < ARRAY_SIZE(categories); i++) { - if (categories[i].count == 0) - continue; + for (i = 0; i < ARRAY_SIZE(modules); i++) + ptr += sprintf(ptr, "F%d: %s ", i + 1, modules[i]->name);
- ptr += sprintf(ptr, "F%d: %s ", i + 1, categories[i].name); - } + if (ARRAY_SIZE(modules) != 0) + mvprintw(23, 0, menu);
- mvprintw(23, 0, menu); - #ifdef CONFIG_SHOW_DATE_TIME mvprintw(23, 59, "%02d/%02d/20%02d - %02d:%02d:%02d", bcd2dec(nvram_read(NVRAM_RTC_MONTH)), @@ -162,8 +117,6 @@
ptr += sprintf(ptr, "[ %s ]", str);
- - for (i = ((SCREEN_X - len) / 2) + len; i < SCREEN_X; i++) ptr += sprintf(ptr, "=");
@@ -171,35 +124,16 @@ } #endif
-static void redraw_module(struct coreinfo_cat *cat) +static void redraw_module(void) { - if (cat->count == 0) + if (ARRAY_SIZE(modules) == 0) return;
wclear(modwin); - cat->modules[cat->cur]->redraw(modwin); + modules[curwin]->redraw(modwin); refresh(); }
-static void handle_category_key(struct coreinfo_cat *cat, int key) -{ - if (key >= 'a' && key <= 'z') { - int index = key - 'a'; - - if (index < cat->count) { - - cat->cur = index; - redraw_module(cat); - return; - } - } - - if (cat->count && cat->modules[cat->cur]->handle) { - if (cat->modules[cat->cur]->handle(key)) - redraw_module(cat); - } -} - static void loop(void) { int key; @@ -207,8 +141,9 @@ center(0, "coreinfo v0.1");
print_menu(); - print_submenu(&categories[curwin]); - redraw_module(&categories[curwin]); + if (ARRAY_SIZE(modules) != 0) + modules[curwin]->redraw(modwin); + refresh();
while (1) { key = getch(); @@ -219,21 +154,18 @@ if (key >= KEY_F(1) && key <= KEY_F(9)) { unsigned char ch = key - KEY_F(1);
- if (ch <= ARRAY_SIZE(categories)) { - if (ch == ARRAY_SIZE(categories)) + if (ch <= ARRAY_SIZE(modules)) { + if (ch == ARRAY_SIZE(modules)) continue; - if (categories[ch].count == 0) - continue; - curwin = ch; - print_submenu(&categories[curwin]); - redraw_module(&categories[curwin]); + redraw_module(); continue; } }
- - handle_category_key(&categories[curwin], key); + if (ARRAY_SIZE(modules) != 0 && modules[curwin]->handle) + if (modules[curwin]->handle(key)) + redraw_module(); } }
@@ -250,7 +182,7 @@ init_pair(2, COLOR_BLACK, COLOR_WHITE); init_pair(3, COLOR_WHITE, COLOR_WHITE);
- modwin = newwin(22, 80, 1, 0); + modwin = newwin(23, 80, 1, 0);
wattrset(stdscr, COLOR_PAIR(1) | A_BOLD); wattrset(modwin, COLOR_PAIR(2)); @@ -264,12 +196,9 @@
refresh();
- for (i = 0; i < ARRAY_SIZE(categories); i++) { - for(j = 0; j < categories[i].count; j++) - categories[i].modules[j]->init(); + for (i = 0; i < ARRAY_SIZE(modules); i++) + modules[i]->init();
- } - loop();
return 0;