| #pragma once | 
 |  | 
 | /* system call numbers.  need to #def them for use in assembly.  Removing | 
 |  * useless ones is okay, but if we change a number, we'll need to rebuild | 
 |  * userspace (which is why we have holes). */ | 
 | #define SYS_null					 1 | 
 | #define SYS_block					 2 | 
 | #define SYS_cache_invalidate		 3 | 
 | #define SYS_reboot					 4 | 
 | /* was SYS_cputs					 5 */ | 
 | /* was SYS_cgetc					 6 */ | 
 | #define SYS_getpcoreid				 7 | 
 | #define SYS_getvcoreid				 8 | 
 | /* was #define SYS_getpid			 9 */ | 
 | #define SYS_proc_create				10 | 
 | #define SYS_proc_run				11 | 
 | #define SYS_proc_destroy			12 | 
 | #define SYS_proc_yield				13 | 
 | #define SYS_change_vcore			14 | 
 | #define SYS_fork					15 | 
 | #define SYS_exec					16 | 
 | #define SYS_waitpid					17 | 
 | #define SYS_mmap					18 | 
 | #define SYS_munmap					19 | 
 | #define SYS_mprotect				20 | 
 | /* was SYS_brk						21 */ | 
 | #define SYS_shared_page_alloc		22 | 
 | #define SYS_shared_page_free		23 | 
 | #define SYS_provision				24 | 
 | #define SYS_notify					25 | 
 | #define SYS_self_notify				26 | 
 | #define SYS_halt_core				27 | 
 | #define SYS_init_arsc				28 | 
 | #define SYS_change_to_m				29 | 
 | #define SYS_poke_ksched				30 | 
 | #define SYS_abort_sysc				31 | 
 | #define SYS_populate_va				32 | 
 | #define SYS_abort_sysc_fd			33 | 
 | #define SYS_vmm_add_gpcs			34 | 
 | #define SYS_vc_entry				35 | 
 | #define SYS_nanosleep				36 | 
 | #define SYS_pop_ctx					37 | 
 | #define SYS_vmm_poke_guest			38 | 
 | #define SYS_send_event				39 | 
 | #define SYS_vmm_ctl					40 | 
 |  | 
 | /* FS Syscalls */ | 
 | #define SYS_read				100 | 
 | #define SYS_write				101 | 
 | #define SYS_openat				102 | 
 | #define SYS_close				103 | 
 | #define SYS_fstat				104 | 
 | #define SYS_stat				105 | 
 | #define SYS_lstat				106 | 
 | #define SYS_fcntl				107 | 
 | #define SYS_access				108 | 
 | #define SYS_umask				109 | 
 | /* was SYS_chmod				110 */ | 
 | #define SYS_llseek				111 | 
 | #define SYS_link				112 | 
 | #define SYS_unlink				113 | 
 | #define SYS_symlink				114 | 
 | #define SYS_readlink			115 | 
 | #define SYS_chdir				116 | 
 | #define SYS_getcwd				117 | 
 | #define SYS_mkdir				118 | 
 | #define SYS_rmdir				119 | 
 | /* was SYS_pipe				120 */ | 
 |  | 
 | #define SYS_wstat				121 | 
 | #define SYS_fwstat				122 | 
 | #define SYS_rename				123 | 
 | #define SYS_fchdir				124 | 
 | #define SYS_dup_fds_to			125 | 
 | #define SYS_tap_fds				126 | 
 |  | 
 | /* Misc syscalls */ | 
 | /* was #define SYS_gettimeofday	140 */ | 
 | #define SYS_tcgetattr			141 | 
 | #define SYS_tcsetattr			142 | 
 | #define SYS_setuid				143 | 
 | #define SYS_setgid				144 | 
 |  | 
 | /* hotness! */ | 
 | #define SYS_nbind				145 | 
 | #define SYS_nmount				146 | 
 | #define SYS_nunmount			147 | 
 | /* was SYS_something			148 */ | 
 | #define SYS_fd2path				149 | 
 |  | 
 | #define MAX_SYSCALL_NR			200 | 
 |  | 
 | // for system calls that pass filenames | 
 | #define MAX_PATH_LEN 256 | 
 |  | 
 | /* wstat flags, so the kernel knows what M fields to look at */ | 
 | #define WSTAT_MODE				0x001 | 
 | #define WSTAT_ATIME				0x002 | 
 | #define WSTAT_MTIME				0x004 | 
 | #define WSTAT_LENGTH			0x008 | 
 | #define WSTAT_NAME				0x010 | 
 | #define WSTAT_UID				0x020 | 
 | #define WSTAT_GID				0x040 | 
 | #define WSTAT_MUID				0x080 |