X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=payloads%2Fcoreinfo%2Fcoreinfo.c;h=846cf77c1852aca008fbc69024b7b2eac8a3369a;hb=68299ee7a44f1b43cd49a2317324eadb6616e330;hp=193da3d2d4e51b275bd29d522230f000f5228458;hpb=98cc0566ca958310e76b5242f7d49c1637bf0533;p=coreboot.git diff --git a/payloads/coreinfo/coreinfo.c b/payloads/coreinfo/coreinfo.c index 193da3d2d..846cf77c1 100644 --- a/payloads/coreinfo/coreinfo.c +++ b/payloads/coreinfo/coreinfo.c @@ -22,12 +22,17 @@ #define SCREEN_Y 25 #define SCREEN_X 80 +#define KEY_ESC 27 + extern struct coreinfo_module cpuinfo_module; extern struct coreinfo_module pci_module; extern struct coreinfo_module coreboot_module; +extern struct coreinfo_module multiboot_module; extern struct coreinfo_module nvram_module; extern struct coreinfo_module bootlog_module; +extern struct coreinfo_module ramdump_module; extern struct coreinfo_module lar_module; +extern struct coreinfo_module cbfs_module; struct coreinfo_module *system_modules[] = { #ifdef CONFIG_MODULE_CPUINFO @@ -39,17 +44,26 @@ struct coreinfo_module *system_modules[] = { #ifdef CONFIG_MODULE_NVRAM &nvram_module, #endif +#ifdef CONFIG_MODULE_RAMDUMP + &ramdump_module, +#endif }; -struct coreinfo_module *coreboot_modules[] = { +struct coreinfo_module *firmware_modules[] = { #ifdef CONFIG_MODULE_COREBOOT &coreboot_module, #endif +#ifdef CONFIG_MODULE_MULTIBOOT + &multiboot_module, +#endif #ifdef CONFIG_MODULE_BOOTLOG &bootlog_module, #endif #ifdef CONFIG_MODULE_LAR - &lar_module + &lar_module, +#endif +#ifdef CONFIG_MODULE_CBFS + &cbfs_module, #endif }; @@ -65,16 +79,13 @@ struct coreinfo_cat { .count = ARRAY_SIZE(system_modules), }, { - .name = "Coreboot", - .modules = coreboot_modules, - .count = ARRAY_SIZE(coreboot_modules), + .name = "Firmware", + .modules = firmware_modules, + .count = ARRAY_SIZE(firmware_modules), } }; - -static WINDOW *modwin; -static WINDOW *menuwin; - +static WINDOW *modwin, *menuwin; static int curwin; void print_module_title(WINDOW *win, const char *title) @@ -85,9 +96,8 @@ void print_module_title(WINDOW *win, const char *title) mvwprintw(win, 0, 1, title); wmove(win, 1, 1); - for (i = 0; i < 78; i++) - waddch(win, '\304'); + waddch(win, ACS_HLINE); } static void print_submenu(struct coreinfo_cat *cat) @@ -105,7 +115,8 @@ static void print_submenu(struct coreinfo_cat *cat) return; for (i = 0; i < cat->count; i++) - ptr += sprintf(ptr, "[%c: %s] ", 'A' + i, cat->modules[i]->name); + ptr += sprintf(ptr, "[%c: %s] ", 'A' + i, + cat->modules[i]->name); mvwprintw(menuwin, 0, 0, menu); } @@ -115,14 +126,14 @@ static void print_time_and_date(void) { struct tm tm; - while(nvram_updating()) + while (nvram_updating()) mdelay(10); rtc_read_clock(&tm); mvwprintw(menuwin, 0, 57, "%02d/%02d/%04d - %02d:%02d:%02d", - tm.tm_mon, tm.tm_mday, 1900+tm.tm_year, tm.tm_hour, - tm.tm_min, tm.tm_sec); + tm.tm_mon, tm.tm_mday, 1900 + tm.tm_year, tm.tm_hour, + tm.tm_min, tm.tm_sec); } #endif @@ -133,7 +144,6 @@ static void print_menu(void) char *ptr = menu; wmove(menuwin, 1, 0); - for (j = 0; j < SCREEN_X; j++) waddch(menuwin, ' '); @@ -153,11 +163,9 @@ static void print_menu(void) static void center(int row, const char *str) { - int len = strlen(str); - int j; + int j, len = strlen(str); wmove(stdscr, row, 0); - for (j = 0; j < SCREEN_X; j++) waddch(stdscr, ' '); @@ -178,8 +186,6 @@ static void header(int row, const char *str) ptr += sprintf(ptr, "[ %s ]", str); - - for (i = ((SCREEN_X - len) / 2) + len; i < SCREEN_X; i++) ptr += sprintf(ptr, "="); @@ -201,10 +207,8 @@ 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; + cat->cur = index; redraw_module(cat); return; } @@ -220,7 +224,7 @@ static void loop(void) { int key; - center(0, "coreinfo v0.1"); + center(0, CONFIG_PAYLOAD_INFO_NAME " " CONFIG_PAYLOAD_INFO_VERSION); refresh(); print_menu(); @@ -256,7 +260,7 @@ static void loop(void) } } - if (key == 0x1B) + if (key == KEY_ESC) return; handle_category_key(&categories[curwin], key); @@ -267,9 +271,6 @@ int main(void) { int i, j; - curses_enable_serial(0); - curses_enable_vga(1); - initscr(); init_pair(1, COLOR_WHITE, COLOR_GREEN); @@ -283,22 +284,18 @@ int main(void) wattrset(modwin, COLOR_PAIR(2)); wattrset(menuwin, COLOR_PAIR(1) | A_BOLD); - for (i = 0; i < SCREEN_Y - 1; i++) { - wmove(modwin, i - 1, 0); - - for (j = 0; j < SCREEN_X; j++) - waddch(modwin, ' '); - } - - wrefresh(modwin); + werase(modwin); for (i = 0; i < ARRAY_SIZE(categories); i++) { - for(j = 0; j < categories[i].count; j++) + for (j = 0; j < categories[i].count; j++) categories[i].modules[j]->init(); - } loop(); return 0; } + +PAYLOAD_INFO(name, CONFIG_PAYLOAD_INFO_NAME); +PAYLOAD_INFO(listname, CONFIG_PAYLOAD_INFO_LISTNAME); +PAYLOAD_INFO(desc, CONFIG_PAYLOAD_INFO_DESC);