xref: /haiku/src/system/kernel/arch/x86/syscalls_compat.cpp (revision bdd7dae89c36aa55ab8eeaff6b442d0c4406664b)
1*bdd7dae8SJérôme Duval /*
2*bdd7dae8SJérôme Duval  * Copyright 2018, Jérôme Duval, jerome.duval@gmail.com.
3*bdd7dae8SJérôme Duval  * Copyright 2008, Ingo Weinhold, ingo_weinhold@gmx.de.
4*bdd7dae8SJérôme Duval  * Copyright 2004-2010, Haiku Inc. All rights reserved.
5*bdd7dae8SJérôme Duval  * Distributed under the terms of the MIT License.
6*bdd7dae8SJérôme Duval  */
7*bdd7dae8SJérôme Duval 
8*bdd7dae8SJérôme Duval 
9*bdd7dae8SJérôme Duval /*!	Big case statement for dispatching syscalls, as well as the generic
10*bdd7dae8SJérôme Duval 	syscall interface.
11*bdd7dae8SJérôme Duval */
12*bdd7dae8SJérôme Duval 
13*bdd7dae8SJérôme Duval 
14*bdd7dae8SJérôme Duval #include <syscalls.h>
15*bdd7dae8SJérôme Duval 
16*bdd7dae8SJérôme Duval #include <arch_config.h>
17*bdd7dae8SJérôme Duval #include <arch/system_info.h>
18*bdd7dae8SJérôme Duval #include <cpu.h>
19*bdd7dae8SJérôme Duval #include <debug.h>
20*bdd7dae8SJérôme Duval #include <disk_device_manager/ddm_userland_interface.h>
21*bdd7dae8SJérôme Duval #include <elf.h>
22*bdd7dae8SJérôme Duval #include <frame_buffer_console.h>
23*bdd7dae8SJérôme Duval #include <fs/fd.h>
24*bdd7dae8SJérôme Duval #include <fs/node_monitor.h>
25*bdd7dae8SJérôme Duval #include <generic_syscall.h>
26*bdd7dae8SJérôme Duval #include <int.h>
27*bdd7dae8SJérôme Duval #include <kernel.h>
28*bdd7dae8SJérôme Duval #include <kimage.h>
29*bdd7dae8SJérôme Duval #include <ksignal.h>
30*bdd7dae8SJérôme Duval #include <ksyscalls.h>
31*bdd7dae8SJérôme Duval #include <ksystem_info.h>
32*bdd7dae8SJérôme Duval #include <messaging.h>
33*bdd7dae8SJérôme Duval #include <port.h>
34*bdd7dae8SJérôme Duval #include <posix/realtime_sem.h>
35*bdd7dae8SJérôme Duval #include <posix/xsi_message_queue.h>
36*bdd7dae8SJérôme Duval #include <posix/xsi_semaphore.h>
37*bdd7dae8SJérôme Duval #include <real_time_clock.h>
38*bdd7dae8SJérôme Duval #include <safemode.h>
39*bdd7dae8SJérôme Duval #include <sem.h>
40*bdd7dae8SJérôme Duval #include <sys/resource.h>
41*bdd7dae8SJérôme Duval #include <system_profiler.h>
42*bdd7dae8SJérôme Duval #include <thread.h>
43*bdd7dae8SJérôme Duval #include <tracing.h>
44*bdd7dae8SJérôme Duval #include <user_atomic.h>
45*bdd7dae8SJérôme Duval #include <user_mutex.h>
46*bdd7dae8SJérôme Duval #include <usergroup.h>
47*bdd7dae8SJérôme Duval #include <UserTimer.h>
48*bdd7dae8SJérôme Duval #include <util/AutoLock.h>
49*bdd7dae8SJérôme Duval #include <vfs.h>
50*bdd7dae8SJérôme Duval #include <vm/vm.h>
51*bdd7dae8SJérôme Duval #include <wait_for_objects.h>
52*bdd7dae8SJérôme Duval 
53*bdd7dae8SJérôme Duval 
54*bdd7dae8SJérôme Duval status_t _user_generic_syscall(const char* userSubsystem, uint32 function,
55*bdd7dae8SJérôme Duval 	void* buffer, size_t bufferSize);
56*bdd7dae8SJérôme Duval int _user_is_computer_on(void);
57*bdd7dae8SJérôme Duval 
58*bdd7dae8SJérôme Duval 
59*bdd7dae8SJérôme Duval #include "syscall_numbers.h"
60*bdd7dae8SJérôme Duval 
61*bdd7dae8SJérôme Duval #define kSyscallCount kSyscallCompatCount
62*bdd7dae8SJérôme Duval #define kSyscallInfos kSyscallCompatInfos
63*bdd7dae8SJérôme Duval #define kExtendedSyscallInfos kExtendedSyscallCompatInfos
64*bdd7dae8SJérôme Duval 
65*bdd7dae8SJérôme Duval extern const int kSyscallCount;
66*bdd7dae8SJérôme Duval extern const syscall_info kSyscallInfos[];
67*bdd7dae8SJérôme Duval extern const extended_syscall_info kExtendedSyscallInfos[];
68*bdd7dae8SJérôme Duval 
69*bdd7dae8SJérôme Duval /*
70*bdd7dae8SJérôme Duval  * kSyscallCount and kSyscallInfos here
71*bdd7dae8SJérôme Duval  */
72*bdd7dae8SJérôme Duval // generated by gensyscalls
73*bdd7dae8SJérôme Duval #include "syscall_table.h"
74