153 lines
2.6 KiB
C
153 lines
2.6 KiB
C
#include "devices.h"
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
|
|
i32 console_open(void *data, u32 mode, u32 handle, u8 *buffer, u32 size) {
|
|
USED(mode);
|
|
USED(size);
|
|
ConsoleDeviceData *console = (ConsoleDeviceData *)data;
|
|
console->handle = handle;
|
|
|
|
u8 *info = (u8 *)buffer;
|
|
memcpy(&info[0], &console->handle, sizeof(u32));
|
|
return 0; /* Success */
|
|
}
|
|
|
|
i32 console_read(void *data, u8 *buffer, u32 size) {
|
|
USED(data);
|
|
for (u32 i = 0; i < size; i++) {
|
|
u8 ch = getchar();
|
|
if (ch == '\0')
|
|
break;
|
|
if (ch == '\n')
|
|
break;
|
|
buffer[i] = ch;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
i32 console_write(void *data, const u8 *buffer, u32 size) {
|
|
USED(data);
|
|
|
|
if (size > MEMORY_SIZE) {
|
|
return 0;
|
|
}
|
|
|
|
for (u32 i = 0; i < size; i++) {
|
|
putchar(buffer[i]);
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
i32 console_close(void *data) {
|
|
USED(data);
|
|
/* Nothing to close — stdin/stdout are process-owned */
|
|
return 0;
|
|
}
|
|
|
|
i32 console_ioctl(void *data, u32 cmd, const u8 *buffer) {
|
|
USED(data);
|
|
USED(cmd);
|
|
USED(buffer);
|
|
return -1; /* Unsupported */
|
|
}
|
|
|
|
i32 screen_open(void *data, u32 mode, u32 handle, u8 *buffer, u32 size) {
|
|
USED(data);
|
|
USED(mode);
|
|
USED(handle);
|
|
USED(buffer);
|
|
USED(size);
|
|
return -1;
|
|
}
|
|
|
|
i32 screen_read(void *data, u8 *buffer, u32 size) {
|
|
USED(data);
|
|
USED(buffer);
|
|
USED(size);
|
|
return -1;
|
|
}
|
|
|
|
i32 screen_write(void *data, const u8 *buffer, u32 size) {
|
|
USED(data);
|
|
USED(buffer);
|
|
USED(size);
|
|
return -1;
|
|
}
|
|
|
|
i32 screen_close(void *data) {
|
|
USED(data);
|
|
return -1;
|
|
}
|
|
|
|
i32 screen_ioctl(void *data, u32 cmd, const u8 *buffer) {
|
|
USED(data);
|
|
USED(cmd);
|
|
USED(buffer);
|
|
return -1;
|
|
}
|
|
|
|
/* MOUSE */
|
|
i32 mouse_open(void *data, u32 mode, u32 handle, u8 *buffer, u32 size) {
|
|
USED(data);
|
|
USED(mode);
|
|
USED(handle);
|
|
USED(buffer);
|
|
USED(size);
|
|
return -1;
|
|
}
|
|
|
|
i32 mouse_read(void *data, u8 *buffer, u32 size) {
|
|
USED(data);
|
|
USED(buffer);
|
|
USED(size);
|
|
return -1;
|
|
}
|
|
|
|
i32 mouse_refresh(void *data, u8 *buffer) {
|
|
USED(data);
|
|
USED(buffer);
|
|
return -1;
|
|
}
|
|
|
|
i32 mouse_write(void *data, const u8 *buffer, u32 size) {
|
|
USED(data);
|
|
USED(buffer);
|
|
USED(size);
|
|
return -1;
|
|
}
|
|
|
|
i32 mouse_close(void *data) {
|
|
USED(data);
|
|
return 0;
|
|
}
|
|
|
|
i32 keyboard_open(void *data, u32 mode, u32 handle, u8 *buffer, u32 size) {
|
|
USED(data);
|
|
USED(mode);
|
|
USED(handle);
|
|
USED(buffer);
|
|
USED(size);
|
|
return -1;
|
|
}
|
|
|
|
i32 keyboard_read(void *data, u8 *buffer, u32 size) {
|
|
USED(data);
|
|
USED(buffer);
|
|
USED(size);
|
|
return -1;
|
|
}
|
|
|
|
i32 keyboard_write(void *data, const u8 *buffer, u32 size) {
|
|
USED(data);
|
|
USED(buffer);
|
|
USED(size);
|
|
return -1; /* not writable */
|
|
}
|
|
|
|
i32 keyboard_close(void *data) {
|
|
USED(data);
|
|
return 0;
|
|
}
|