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> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3284 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
646ee3eae9
commit
7ce2666249
|
@ -28,46 +28,24 @@ extern struct coreinfo_module coreboot_module;
|
||||||
extern struct coreinfo_module nvram_module;
|
extern struct coreinfo_module nvram_module;
|
||||||
extern struct coreinfo_module bootlog_module;
|
extern struct coreinfo_module bootlog_module;
|
||||||
|
|
||||||
struct coreinfo_module *system_modules[] = {
|
struct coreinfo_module *modules[] = {
|
||||||
#ifdef CONFIG_MODULE_CPUINFO
|
#ifdef CONFIG_MODULE_CPUINFO
|
||||||
&cpuinfo_module,
|
&cpuinfo_module,
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_MODULE_PCI
|
#ifdef CONFIG_MODULE_PCI
|
||||||
&pci_module,
|
&pci_module,
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_MODULE_NVRAM
|
|
||||||
&nvram_module,
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
struct coreinfo_module *coreboot_modules[] = {
|
|
||||||
#ifdef CONFIG_MODULE_COREBOOT
|
#ifdef CONFIG_MODULE_COREBOOT
|
||||||
&coreboot_module,
|
&coreboot_module,
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CONFIG_MODULE_NVRAM
|
||||||
|
&nvram_module,
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_MODULE_BOOTLOG
|
#ifdef CONFIG_MODULE_BOOTLOG
|
||||||
&bootlog_module,
|
&bootlog_module,
|
||||||
#endif
|
#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 WINDOW *modwin;
|
||||||
static int curwin;
|
static int curwin;
|
||||||
|
|
||||||
|
@ -84,26 +62,6 @@ void print_module_title(WINDOW *win, const char *title)
|
||||||
waddch(win, '\304');
|
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)
|
static void print_menu(void)
|
||||||
{
|
{
|
||||||
int i, j;
|
int i, j;
|
||||||
|
@ -115,13 +73,10 @@ static void print_menu(void)
|
||||||
for (j = 0; j < SCREEN_X; j++)
|
for (j = 0; j < SCREEN_X; j++)
|
||||||
waddch(stdscr, ' ');
|
waddch(stdscr, ' ');
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(categories); i++) {
|
for (i = 0; i < ARRAY_SIZE(modules); i++)
|
||||||
if (categories[i].count == 0)
|
ptr += sprintf(ptr, "F%d: %s ", i + 1, modules[i]->name);
|
||||||
continue;
|
|
||||||
|
|
||||||
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
|
#ifdef CONFIG_SHOW_DATE_TIME
|
||||||
|
@ -162,8 +117,6 @@ static void header(int row, const char *str)
|
||||||
|
|
||||||
ptr += sprintf(ptr, "[ %s ]", str);
|
ptr += sprintf(ptr, "[ %s ]", str);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (i = ((SCREEN_X - len) / 2) + len; i < SCREEN_X; i++)
|
for (i = ((SCREEN_X - len) / 2) + len; i < SCREEN_X; i++)
|
||||||
ptr += sprintf(ptr, "=");
|
ptr += sprintf(ptr, "=");
|
||||||
|
|
||||||
|
@ -171,35 +124,16 @@ static void header(int row, const char *str)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void redraw_module(struct coreinfo_cat *cat)
|
static void redraw_module(void)
|
||||||
{
|
{
|
||||||
if (cat->count == 0)
|
if (ARRAY_SIZE(modules) == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wclear(modwin);
|
wclear(modwin);
|
||||||
cat->modules[cat->cur]->redraw(modwin);
|
modules[curwin]->redraw(modwin);
|
||||||
refresh();
|
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)
|
static void loop(void)
|
||||||
{
|
{
|
||||||
int key;
|
int key;
|
||||||
|
@ -207,8 +141,9 @@ static void loop(void)
|
||||||
center(0, "coreinfo v0.1");
|
center(0, "coreinfo v0.1");
|
||||||
|
|
||||||
print_menu();
|
print_menu();
|
||||||
print_submenu(&categories[curwin]);
|
if (ARRAY_SIZE(modules) != 0)
|
||||||
redraw_module(&categories[curwin]);
|
modules[curwin]->redraw(modwin);
|
||||||
|
refresh();
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
key = getch();
|
key = getch();
|
||||||
|
@ -219,21 +154,18 @@ static void loop(void)
|
||||||
if (key >= KEY_F(1) && key <= KEY_F(9)) {
|
if (key >= KEY_F(1) && key <= KEY_F(9)) {
|
||||||
unsigned char ch = key - KEY_F(1);
|
unsigned char ch = key - KEY_F(1);
|
||||||
|
|
||||||
if (ch <= ARRAY_SIZE(categories)) {
|
if (ch <= ARRAY_SIZE(modules)) {
|
||||||
if (ch == ARRAY_SIZE(categories))
|
if (ch == ARRAY_SIZE(modules))
|
||||||
continue;
|
continue;
|
||||||
if (categories[ch].count == 0)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
curwin = ch;
|
curwin = ch;
|
||||||
print_submenu(&categories[curwin]);
|
redraw_module();
|
||||||
redraw_module(&categories[curwin]);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ARRAY_SIZE(modules) != 0 && modules[curwin]->handle)
|
||||||
handle_category_key(&categories[curwin], key);
|
if (modules[curwin]->handle(key))
|
||||||
|
redraw_module();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -250,7 +182,7 @@ int main(void)
|
||||||
init_pair(2, COLOR_BLACK, COLOR_WHITE);
|
init_pair(2, COLOR_BLACK, COLOR_WHITE);
|
||||||
init_pair(3, COLOR_WHITE, 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(stdscr, COLOR_PAIR(1) | A_BOLD);
|
||||||
wattrset(modwin, COLOR_PAIR(2));
|
wattrset(modwin, COLOR_PAIR(2));
|
||||||
|
@ -264,11 +196,8 @@ int main(void)
|
||||||
|
|
||||||
refresh();
|
refresh();
|
||||||
|
|
||||||
for (i = 0; i < ARRAY_SIZE(categories); i++) {
|
for (i = 0; i < ARRAY_SIZE(modules); i++)
|
||||||
for(j = 0; j < categories[i].count; j++)
|
modules[i]->init();
|
||||||
categories[i].modules[j]->init();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
loop();
|
loop();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue