[coreboot] coreinfo: Fix the subwindow refresh based onthe libpayload changes

Jordan Crouse jordan.crouse at amd.com
Tue May 20 22:09:30 CEST 2008


On 15/05/08 10:24 -0600, Myles Watson wrote:
> 
> 
> > 
> > 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>

Oops - answered the wrong email.  This hasn't been comitted yet.

> > Index: coreinfo/coreinfo.c
> > ===================================================================
> > --- coreinfo.orig/coreinfo.c	2008-05-13 14:31:34.000000000 -0600
> > +++ coreinfo/coreinfo.c	2008-05-13 17:36:05.000000000 -0600
> > @@ -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++)
> > 
> > --
> > Jordan Crouse
> > Systems Software Development Engineer
> > Advanced Micro Devices, Inc.
> > 
> > 
> > --
> > coreboot mailing list
> > coreboot at coreboot.org
> > http://www.coreboot.org/mailman/listinfo/coreboot
> 
> 

-- 
Jordan Crouse
Systems Software Development Engineer 
Advanced Micro Devices, Inc.





More information about the coreboot mailing list