static int ramdump_module_redraw(WINDOW *win) { print_module_title(win, "RAM Dump"); dump_ram(win, cursor * 256, 2, 2); return 0; }
static int lar_module_redraw(WINDOW *win) { int i, row = 2; struct larstat stat; print_module_title(win, "LAR Listing"); if (lar == 0) { mvwprintw(win, 11, 61 / 2, "Bad or missing LAR"); return 0; } /* Draw a line down the middle. */ for (i = 2; i < 21; i++) mvwaddch(win, i, 30, ACS_VLINE); /* Draw the names down the left side. */ for (i = 0; i < lcount; i++) { if (i == selected) wattrset(win, COLOR_PAIR(3) | A_BOLD); else wattrset(win, COLOR_PAIR(2)); mvwprintw(win, 2 + i, 1, "%.25s", lnames[i]); } /* Get the information for the LAR. */ if (larstat(lar, lnames[selected], &stat)) { printf("larstat failed\n"); return 0; } wattrset(win, COLOR_PAIR(2)); mvwprintw(win, row++, 32, "Offset: 0x%x", stat.offset); if (stat.compression) { mvwprintw(win, row++, 32, "Compression: %s", compression_table[stat.compression]); mvwprintw(win, row++, 32, "Compressed length: %d", stat.len); mvwprintw(win, row++, 32, "Compressed checksum: 0x%x", stat.compchecksum); } mvwprintw(win, row++, 32, "Length: %d", stat.reallen); mvwprintw(win, row++, 32, "Checksum: 0x%x", stat.checksum); mvwprintw(win, row++, 32, "Load address: 0x%llx", stat.loadaddress); mvwprintw(win, row++, 32, "Entry point: 0x%llx", stat.entry); return 0; }
static int timestamps_module_redraw(WINDOW *win) { print_module_title(win, "coreboot Timestamps"); if (!g_buf) return -1; int x = 0, y = 0; char *tmp = g_buf + g_line * SCREEN_X; for (y = 0; y < LINES_SHOWN; y++) { for (x = 0; x < SCREEN_X; x++) { mvwaddch(win, y + 2, x, *tmp); tmp++; } } return 0; }
static int bootlog_module_redraw(WINDOW *win) { print_module_title(win, "Coreboot Bootlog"); if (!g_buf) { return -1; } int x = 0, y = 0; char *tmp = g_buf + g_line * SCREEN_X; for (y = 0; y < LINES_SHOWN; y++) { for (x = 0; x < SCREEN_X; x++) { mvwaddch(win, y + 2, x, *tmp); tmp++; } } return 0; }
static int bootlog_module_redraw(WINDOW *win) { int x = 0, y = 0; char *tmp = buf + cursor; print_module_title(win, "Coreboot Bootlog"); /* FIXME: Handle lines longer than 80 characters. */ while (y <= 18) { mvwaddch(win, y + 2, x, isprint(*tmp) ? *tmp : ' '); x++; tmp++; if (*tmp == '\n') { y++; x = 0; tmp++; /* Skip the newline. */ } } return 0; }
static int pci_module_redraw(WINDOW *win) { unsigned int bus, slot, func; int i, last; print_module_title(win, "PCI Device List"); last = menu_first + MENU_VISIBLE; if (last > devices_index) last = devices_index; for (i = 0; i < MENU_VISIBLE; i++) { int item = menu_first + i; /* Draw a blank space. */ if (item >= devices_index) { wattrset(win, COLOR_PAIR(2)); mvwprintw(win, 2 + i, 1, " "); continue; } bus = PCI_BUS(devices[item].device); slot = PCI_SLOT(devices[item].device); func = PCI_FUNC(devices[item].device); if (item == menu_selected) wattrset(win, COLOR_PAIR(3) | A_BOLD); else wattrset(win, COLOR_PAIR(2)); mvwprintw(win, 2 + i, 1, "%X:%2.2X.%2.2X %04X:%04X ", bus, slot, func, devices[item].id & 0xffff, (devices[item].id >> 16) & 0xffff); wattrset(win, COLOR_PAIR(2)); if (i == 0) { if (item != 0) mvwaddch(win, 2 + i, 19, ACS_UARROW); } if (i == MENU_VISIBLE - 1) { if ((item + 1) < devices_index) mvwaddch(win, 2 + i, 19, ACS_DARROW); } } wattrset(win, COLOR_PAIR(2)); for (i = 0; i < 16; i++) mvwprintw(win, 2, 26 + (i * 3), "%2.2X ", i); wmove(win, 3, 25); for (i = 0; i < 48; i++) waddch(win, (i == 0) ? ACS_ULCORNER : ACS_HLINE); for (i = 0; i < 16; i++) { mvwprintw(win, 4 + i, 23, "%2.2X", i * 16); wmove(win, 4 + i, 25); waddch(win, ACS_VLINE); } show_config_space(win, 4, 26, menu_selected); return 0; }
int coreboot_module_redraw(WINDOW *win) { int row = 2; int i; print_module_title(win, "Coreboot Tables"); if (tables_good) { mvwprintw(win, row++, 1, "No Coreboot tables were found"); return 0; } mvwprintw(win, row++, 1, "Vendor: %s", cb_info.vendor); mvwprintw(win, row++, 1, "Part: %s", cb_info.part); mvwprintw(win, row++, 1, "Version: %s%s", cb_info.strings[CB_TAG_VERSION - 0x4], cb_info.strings[CB_TAG_EXTRA_VERSION - 0x4]); mvwprintw(win, row++, 1, "Built: %s (%s@%s.%s)", cb_info.strings[CB_TAG_BUILD - 0x4], cb_info.strings[CB_TAG_COMPILE_BY - 0x04], cb_info.strings[CB_TAG_COMPILE_HOST - 0x04], cb_info.strings[CB_TAG_COMPILE_DOMAIN - 0x04]); if (cb_info.serial.tag != 0x0) { mvwprintw(win, row++, 1, "Serial Port I/O base: 0x%x", cb_info.serial.ioport); } if (cb_info.console.tag != 0x0) { mvwprintw(win, row++, 1, "Default Output Console: "); switch (cb_info.console.type) { case CB_TAG_CONSOLE_SERIAL8250: wprintw(win, "Serial Port"); break; case CB_TAG_CONSOLE_VGA: wprintw(win, "VGA"); break; case CB_TAG_CONSOLE_BTEXT: wprintw(win, "BTEXT"); break; case CB_TAG_CONSOLE_LOGBUF: wprintw(win, "Log Buffer"); break; case CB_TAG_CONSOLE_SROM: wprintw(win, "Serial ROM"); break; case CB_TAG_CONSOLE_EHCI: wprintw(win, "USB Debug"); break; } } row++; mvwprintw(win, row++, 1, "-- Memory Map --"); for (i = 0; i < cb_info.mem_count; i++) { switch (cb_info.range[i].type) { case CB_MEM_RAM: mvwprintw(win, row++, 3, " RAM: "); break; case CB_MEM_RESERVED: mvwprintw(win, row++, 3, "Reserved: "); break; case CB_MEM_TABLE: mvwprintw(win, row++, 3, " Table: "); } wprintw(win, "%16.16llx - %16.16llx", UNPACK_CB64(cb_info.range[i].start), UNPACK_CB64(cb_info.range[i].start) + UNPACK_CB64(cb_info.range[i].size) - 1); } return 0; }
static int cbfs_module_redraw(WINDOW * win) { struct cbfile *f; int i, row = 2; print_module_title(win, "CBFS Listing"); if (!header) { mvwprintw(win, 11, 61 / 2, "Bad or missing CBFS header"); return 0; } /* Draw a line down the middle. */ for (i = 2; i < 21; i++) mvwaddch(win, i, 30, ACS_VLINE); /* Draw the names down the left side. */ for (i = 0; i < filecount; i++) { if (i == selected) wattrset(win, COLOR_PAIR(3) | A_BOLD); else wattrset(win, COLOR_PAIR(2)); if (strlen(filenames[i]) == 0) { if (findfile(filenames[i])->type == COMPONENT_NULL) mvwprintw(win, 2 + i, 1, "<free space>"); else mvwprintw(win, 2 + i, 1, "<unnamed>"); } else { mvwprintw(win, 2 + i, 1, "%.25s", filenames[i]); } } f = findfile(filenames[selected]); if (!f) { mvwprintw(win, 11, 32, "ERROR: CBFS component not found"); return 0; } wattrset(win, COLOR_PAIR(2)); /* mvwprintw(win, row++, 32, "Offset: 0x%x", f->offset); *//* FIXME */ mvwprintw(win, row, 32, "Type: "); switch (ntohl(f->type)) { case COMPONENT_BOOTBLOCK: mvwprintw(win, row++, 38, "bootblock"); break; case COMPONENT_CBFSHEADER: mvwprintw(win, row++, 38, "CBFS header"); break; case COMPONENT_STAGE: mvwprintw(win, row++, 38, "stage"); break; case COMPONENT_PAYLOAD: mvwprintw(win, row++, 38, "payload"); break; case COMPONENT_OPTIONROM: mvwprintw(win, row++, 38, "optionrom"); break; case COMPONENT_RAW: mvwprintw(win, row++, 38, "raw"); break; case COMPONENT_MICROCODE: mvwprintw(win, row++, 38, "microcode"); break; case COMPONENT_CMOS_LAYOUT: mvwprintw(win, row++, 38, "cmos layout"); break; case COMPONENT_NULL: mvwprintw(win, row++, 38, "free"); break; case COMPONENT_DELETED: mvwprintw(win, row++, 38, "deleted"); break; default: mvwprintw(win, row++, 38, "Unknown (0x%x)", ntohl(f->type)); break; } mvwprintw(win, row++, 32, "Size: %d", ntohl(f->len)); mvwprintw(win, row++, 32, "Checksum: 0x%x", ntohl(f->checksum)); return 0; }
static int nvram_module_redraw(WINDOW *win) { print_module_title(win, "NVRAM Dump"); dump_nvram(win, 4, 4); return 0; }