vxKernel/vxgos/bootloader/src/console/open.c

40 lines
1.1 KiB
C

#include <string.h>
#include <stdlib.h>
#include "bootloader/console.h"
#include "bootloader/display.h"
//---
// Public
//---
/* console_open(): Initialize and open the terminal */
int console_open(struct console *console)
{
if (console == NULL)
return -1;
memset(console, 0x00, sizeof(struct console));
console->winsize.ws_xpixel = DWIDTH;
console->winsize.ws_ypixel = DHEIGHT;
console->winsize.ft_xpixel = FWIDTH + 1;
console->winsize.ft_ypixel = FHEIGHT + 1;
console->winsize.ws_col = DWIDTH / console->winsize.ft_xpixel;
console->winsize.ws_row = DHEIGHT / console->winsize.ft_ypixel;
console->buffer.size = console->winsize.ws_row;
console->buffer.size *= console->winsize.ws_col;
console->buffer.size *= TERM_BUFFER_NB_FRAME;
console->buffer.size *= sizeof(uint8_t);
console->buffer.data = calloc(sizeof(char), console->buffer.size);
if (console->buffer.data == NULL) {
console_close(console);
return -2;
}
console->_private.color.bg = C_BLACK;
console->_private.color.fg = C_WHITE;
return 0;
}