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