#include "vxBoot/terminal.h" #include #include #include #include /* internal symbols */ struct terminal terminal; /* terminal_open(): Initialize and open the terminal */ int terminal_open(void) { if (terminal.private.watermark == TERM_PRIVATE_WATERMARK) terminal_close(); memset(&terminal, 0x00, sizeof(struct terminal)); terminal.private.timer.id = -1; terminal.winsize.ws_xpixel = DWIDTH; terminal.winsize.ws_ypixel = DHEIGHT; terminal.winsize.ft_xpixel = FWIDTH + 1; terminal.winsize.ft_ypixel = FHEIGHT + 1; terminal.winsize.ws_col = DWIDTH / terminal.winsize.ft_xpixel; terminal.winsize.ws_row = DHEIGHT / terminal.winsize.ft_ypixel; terminal.buffer.size = terminal.winsize.ws_row * terminal.winsize.ws_col * TERM_RDBUFFER_NBLINE * sizeof(uint8_t); terminal.buffer.data = calloc(1, terminal.buffer.size); if (terminal.buffer.data == NULL) { terminal_close(); return (-1); } terminal.private.timer.id = timer_configure( TIMER_ANY, 250000, GINT_CALL(terminal_cursor_handler) ); if (terminal.private.timer.id < 0) { terminal_close(); return (-1); } terminal.private.color.bg = C_BLACK; terminal.private.color.fg = C_WHITE; terminal.private.watermark = TERM_PRIVATE_WATERMARK; return (0); }