Files
Custom-Operating-System/kernel/include/platform/x86/syscalls/params.h

33 lines
882 B
C
Raw Normal View History

2025-02-12 09:54:05 -05:00
#ifndef _KERNEL_PLATFORM_X86_SYSCALLS_PARAMS_H
#define _KERNEL_PLATFORM_X86_SYSCALLS_PARAMS_H
#include <platform/x86/tasking/trapframe.h>
#define SYSCALL_HANDLER_NO 0x80
#ifdef __i386__
#define SYSCALL_ID(tf) (tf->eax)
#define SYSCALL_VAR1(tf) (tf->ebx)
#define SYSCALL_VAR2(tf) (tf->ecx)
#define SYSCALL_VAR3(tf) (tf->edx)
#define SYSCALL_VAR4(tf) (tf->esi)
#define SYSCALL_VAR5(tf) (tf->edi)
#define return_val (tf->eax)
#define return_with_val(val) \
(return_val = val); \
return
#elif __x86_64__
#define SYSCALL_ID(tf) (tf->rax)
#define SYSCALL_VAR1(tf) (tf->rdi)
#define SYSCALL_VAR2(tf) (tf->rsi)
#define SYSCALL_VAR3(tf) (tf->rdx)
#define SYSCALL_VAR4(tf) (tf->r10)
#define SYSCALL_VAR5(tf) (tf->r8)
#define return_val (tf->rax)
#define return_with_val(val) \
(return_val = val); \
return
#endif
#endif // _KERNEL_PLATFORM_X86_SYSCALLS_PARAMS_H