40 lines
1.1 KiB
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;
|
|
}
|