summaryrefslogtreecommitdiffstats
path: root/arch/x86_64
diff options
context:
space:
mode:
authorJon Santmyer <jon@jonsantmyer.com>2026-09-07 19:19:24 -0400
committerJon Santmyer <jon@jonsantmyer.com>2026-09-07 19:19:24 -0400
commitdf0688efa326a03a22bcbc36d1900926b7b1c986 (patch)
treec67df82b0a6cd94693278a809ed0c9a69daf840f /arch/x86_64
parent4ca0bdf61196d0c3fd3f0fdbfb2d72481025cca2 (diff)
downloadjove-kernel-df0688efa326a03a22bcbc36d1900926b7b1c986.tar.gz
jove-kernel-df0688efa326a03a22bcbc36d1900926b7b1c986.tar.bz2
jove-kernel-df0688efa326a03a22bcbc36d1900926b7b1c986.zip
split syscall info into api subfolder. untyped syscalls
Diffstat (limited to 'arch/x86_64')
-rw-r--r--arch/x86_64/sys/serial.c16
-rw-r--r--arch/x86_64/sys/syscall.h5
2 files changed, 7 insertions, 14 deletions
diff --git a/arch/x86_64/sys/serial.c b/arch/x86_64/sys/serial.c
index 48a14c7..12db6fd 100644
--- a/arch/x86_64/sys/serial.c
+++ b/arch/x86_64/sys/serial.c
@@ -9,15 +9,13 @@ s_syscall_serial_write(
size_t payload_bytes,
void *payload_data)
{
- if(payload_bytes < sizeof(struct syscall_serial_write)) {
- kprintf("syscall_serial_write: message is too small for this syscall!\n");
- return EOOB;
- }
- struct syscall_serial_write *payload = payload_data;
- if(payload_bytes < sizeof(struct syscall_serial_write) + payload->len) {
- kprintf("syscall_serial_write: message is to small for payload!\n");
- return EOOB;
- }
+ size_t bytes_needed = sizeof(struct syscall_generic_write);
+ CHECK_TOOSMALL(bytes_needed, payload_bytes, "Message is too small for this syscall!");
+
+ struct syscall_generic_write *payload = payload_data;
+ bytes_needed += payload->len * 2;
+ CHECK_TOOSMALL(bytes_needed, payload_bytes, "Message is too small for write buffer!");
+
return serial_com_write(serial_com, payload->data, payload->len);
}
diff --git a/arch/x86_64/sys/syscall.h b/arch/x86_64/sys/syscall.h
index 9138101..868ce0b 100644
--- a/arch/x86_64/sys/syscall.h
+++ b/arch/x86_64/sys/syscall.h
@@ -3,11 +3,6 @@
#include "sys/syscall.h"
-struct syscall_serial_write
-{
- size_t len;
- char data[];
-};
int _syscall_handle_serial(SYSCALL_FUNCTION_ARGS);
#define SYSCALL_SERIAL_COM_WRITE 0