[coreboot] r3339 - trunk/payloads/coreinfo
svn at coreboot.org
svn at coreboot.org
Tue May 20 22:16:04 CEST 2008
Author: jcrouse
Date: 2008-05-20 22:16:03 +0200 (Tue, 20 May 2008)
New Revision: 3339
Modified:
trunk/payloads/coreinfo/coreinfo.c
Log:
coreinfo: Fix the subwindow refresh based on the libpayload changes
Changes to libpayload to fix subwindows broke coreinfo. This fixes it,
and improves performance by eliminating the entire screen refresh every
second.
Signed-off-by: Jordan Crouse <jordan.crouse at amd.com>
Acked-by: Myles Watson <mylesgw at gmail.com>
Modified: trunk/payloads/coreinfo/coreinfo.c
===================================================================
--- trunk/payloads/coreinfo/coreinfo.c 2008-05-20 20:10:49 UTC (rev 3338)
+++ trunk/payloads/coreinfo/coreinfo.c 2008-05-20 20:16:03 UTC (rev 3339)
@@ -19,7 +19,7 @@
#include "coreinfo.h"
-#define SCREEN_Y 24
+#define SCREEN_Y 25
#define SCREEN_X 80
extern struct coreinfo_module cpuinfo_module;
@@ -73,6 +73,8 @@
static WINDOW *modwin;
+static WINDOW *menuwin;
+
static int curwin;
void print_module_title(WINDOW *win, const char *title)
@@ -94,10 +96,10 @@
char menu[80];
char *ptr = menu;
- wmove(stdscr, SCREEN_Y - 2, 0);
+ wmove(menuwin, 0, 0);
for (j = 0; j < SCREEN_X; j++)
- waddch(stdscr, ' ');
+ waddch(menuwin, ' ');
if (!cat->count)
return;
@@ -105,7 +107,7 @@
for (i = 0; i < cat->count; i++)
ptr += sprintf(ptr, "[%c: %s] ", 'A' + i, cat->modules[i]->name);
- mvprintw(SCREEN_Y - 2, 0, menu);
+ mvwprintw(menuwin, 0, 0, menu);
}
#ifdef CONFIG_SHOW_DATE_TIME
@@ -118,7 +120,7 @@
rtc_read_clock(&tm);
- mvprintw(23, 57, "%02d/%02d/%04d - %02d:%02d:%02d",
+ 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);
}
@@ -130,10 +132,10 @@
char menu[80];
char *ptr = menu;
- wmove(stdscr, SCREEN_Y - 1, 0);
+ wmove(menuwin, 1, 0);
for (j = 0; j < SCREEN_X; j++)
- waddch(stdscr, ' ');
+ waddch(menuwin, ' ');
for (i = 0; i < ARRAY_SIZE(categories); i++) {
if (categories[i].count == 0)
@@ -142,7 +144,7 @@
ptr += sprintf(ptr, "F%d: %s ", i + 1, categories[i].name);
}
- mvprintw(23, 0, menu);
+ mvwprintw(menuwin, 1, 0, menu);
#ifdef CONFIG_SHOW_DATE_TIME
print_time_and_date();
@@ -192,7 +194,7 @@
wclear(modwin);
cat->modules[cat->cur]->redraw(modwin);
- refresh();
+ wrefresh(modwin);
}
static void handle_category_key(struct coreinfo_cat *cat, int key)
@@ -219,6 +221,7 @@
int key;
center(0, "coreinfo v0.1");
+ refresh();
print_menu();
print_submenu(&categories[curwin]);
@@ -229,7 +232,7 @@
while (1) {
#ifdef CONFIG_SHOW_DATE_TIME
print_time_and_date();
- refresh();
+ wrefresh(menuwin);
#endif
key = getch();
@@ -271,10 +274,12 @@
init_pair(2, COLOR_BLACK, COLOR_WHITE);
init_pair(3, COLOR_WHITE, COLOR_WHITE);
- modwin = newwin(SCREEN_Y-2, SCREEN_X, 1, 0);
+ modwin = newwin(SCREEN_Y - 3, SCREEN_X, 1, 0);
+ menuwin = newwin(2, SCREEN_X, SCREEN_Y - 2, 0);
wattrset(stdscr, COLOR_PAIR(1) | A_BOLD);
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);
@@ -283,7 +288,7 @@
waddch(modwin, ' ');
}
- refresh();
+ wrefresh(modwin);
for (i = 0; i < ARRAY_SIZE(categories); i++) {
for(j = 0; j < categories[i].count; j++)
More information about the coreboot
mailing list