os/kernel/syscall.c

38 lines
829 B
C
Raw Normal View History

2024-08-10 01:14:29 +02:00
#include <kernel/tty.h>
2024-08-11 13:40:21 +02:00
#include <kernel/io/keyboard.h>
2024-08-10 01:14:29 +02:00
#include <debugging.h>
2025-07-02 13:35:14 +02:00
#include <kernel/heap.h>
2024-08-10 01:14:29 +02:00
2025-07-02 13:35:14 +02:00
static void print(char* buffer, size_t length)
2024-08-10 01:14:29 +02:00
{
terminal_writestring(buffer);
}
static void input(char* buffer)
{
2024-11-27 21:57:18 +01:00
terminal_writestring("Input: ");
2024-08-10 01:14:29 +02:00
while (true) {
2024-08-10 02:18:09 +02:00
for (size_t i = 0; i < keyboard_buffer_top; i++) {
2024-08-10 01:14:29 +02:00
buffer[i] = keyboard_buffer[i];
if (keyboard_buffer[i] == '\n') {
buffer[keyboard_buffer_top] = 0;
keyboard_buffer_top = 0;
return;
}
}
2024-08-10 01:17:14 +02:00
asm("hlt");
2024-08-10 01:14:29 +02:00
}
}
2025-07-02 13:35:14 +02:00
void _syscall(size_t a, size_t b, size_t c)
2024-08-10 01:14:29 +02:00
{
2025-07-02 13:35:14 +02:00
// switch (c) {
// case 0x00:
print((char*) a, b);
// break;
// case 0x01:
// input((char*) a);
// break;
// }
2024-08-10 01:14:29 +02:00
}