1/* 2 * Copyright 2018, J��r��me Duval, jerome.duval@gmail.com. 3 * Copyright 2010, Ingo Weinhold, ingo_weinhold@gmx.de. 4 * Distributed under the terms of the MIT License. 5 */ 6#ifndef _KERNEL_ARCH_X86_SYSCALLS_H 7#define _KERNEL_ARCH_X86_SYSCALLS_H 8 9 10#include <SupportDefs.h> 11 12 13void x86_initialize_syscall(); 14#if defined(__x86_64__) && defined(_COMPAT_MODE) 15void x86_compat_initialize_syscall(); 16#endif 17 18 19extern void (*gX86SetSyscallStack)(addr_t stackTop); 20 21 22static inline void 23x86_set_syscall_stack(addr_t stackTop) 24{ 25#if !defined(__x86_64__) || defined(_COMPAT_MODE) 26 // TODO on x86_64, only necessary for 32-bit threads 27 if (gX86SetSyscallStack != NULL) 28 gX86SetSyscallStack(stackTop); 29#endif 30} 31 32 33#endif // _KERNEL_ARCH_X86_SYSCALLS_H 34