hos/kernel/char/console.c

45 lines
800 B
C

// console.c
// Author: Josh Holtrop
// Date: 08/02/04
#include "char/console.h"
#include "hos_defines.h"
#include "fs/devices.h"
console_t *consoles[256];
int console_new(minor_t minor)
{
if (consoles[minor])
return -1; // minor already taken
if ( consoles[minor] = kmalloc(sizeof(console_t)) )
{
consoles[minor]->cursorPosition = 0;
consoles[minor]->width = 80;
consoles[minor]->height = 25;
consoles[minor]->attribute = 0x07;
if (consoles[minor]->buffer = kmalloc(4000))
{
memsetw(consoles[minor]->buffer, 0, 2000);
}
else
{
kfree (consoles[minor]);
consoles[minor] = 0;
return -3; // couldn't allocate memory
}
return 0;
}
else
return -2; // couldn't allocate memory
}
void console_outb(minor_t id, int c)
{
if (!consoles[minor])
return;
}