204 lines
6.7 KiB
C
204 lines
6.7 KiB
C
/*
|
|
* Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2008
|
|
* The President and Fellows of Harvard College.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* 3. Neither the name of the University nor the names of its contributors
|
|
* may be used to endorse or promote products derived from this software
|
|
* without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY AND CONTRIBUTORS ``AS IS'' AND
|
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OR CONTRIBUTORS BE LIABLE
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
* SUCH DAMAGE.
|
|
*/
|
|
|
|
#ifndef _KERN_SYSCALL_H_
|
|
#define _KERN_SYSCALL_H_
|
|
|
|
/*
|
|
* System call numbers.
|
|
*
|
|
* To foster compatibility, this file contains a number for every
|
|
* more-or-less standard Unix system call that someone might
|
|
* conceivably implement on OS/161. The commented-out ones are ones
|
|
* we're pretty sure you won't be implementing. The others, you might
|
|
* or might not. Check your own course materials to find out what's
|
|
* specifically required of you.
|
|
*
|
|
* Caution: this file is parsed by a shell script to generate the assembly
|
|
* language system call stubs. Don't add weird stuff between the markers.
|
|
*/
|
|
|
|
/*CALLBEGIN*/
|
|
|
|
// -- Process-related --
|
|
#define SYS_fork 0
|
|
#define SYS_vfork 1
|
|
#define SYS_execv 2
|
|
#define SYS__exit 3
|
|
#define SYS_waitpid 4
|
|
#define SYS_getpid 5
|
|
#define SYS_getppid 6
|
|
// (virtual memory)
|
|
#define SYS_sbrk 7
|
|
#define SYS_mmap 8
|
|
#define SYS_munmap 9
|
|
#define SYS_mprotect 10
|
|
//#define SYS_madvise 11
|
|
//#define SYS_mincore 12
|
|
//#define SYS_mlock 13
|
|
//#define SYS_munlock 14
|
|
//#define SYS_munlockall 15
|
|
//#define SYS_minherit 16
|
|
// (security/credentials)
|
|
#define SYS_umask 17
|
|
#define SYS_issetugid 18
|
|
#define SYS_getresuid 19
|
|
#define SYS_setresuid 20
|
|
#define SYS_getresgid 21
|
|
#define SYS_setresgid 22
|
|
#define SYS_getgroups 23
|
|
#define SYS_setgroups 24
|
|
#define SYS___getlogin 25
|
|
#define SYS___setlogin 26
|
|
// (signals)
|
|
#define SYS_kill 27
|
|
#define SYS_sigaction 28
|
|
#define SYS_sigpending 29
|
|
#define SYS_sigprocmask 30
|
|
#define SYS_sigsuspend 31
|
|
#define SYS_sigreturn 32
|
|
//#define SYS_sigaltstack 33
|
|
// (resource tracking and usage)
|
|
//#define SYS_wait4 34
|
|
//#define SYS_getrusage 35
|
|
// (resource limits)
|
|
//#define SYS_getrlimit 36
|
|
//#define SYS_setrlimit 37
|
|
// (process priority control)
|
|
//#define SYS_getpriority 38
|
|
//#define SYS_setpriority 39
|
|
// (process groups, sessions, and job control)
|
|
//#define SYS_getpgid 40
|
|
//#define SYS_setpgid 41
|
|
//#define SYS_getsid 42
|
|
//#define SYS_setsid 43
|
|
// (userlevel debugging)
|
|
//#define SYS_ptrace 44
|
|
|
|
// -- File-handle-related --
|
|
#define SYS_open 45
|
|
#define SYS_pipe 46
|
|
#define SYS_dup 47
|
|
#define SYS_dup2 48
|
|
#define SYS_close 49
|
|
#define SYS_read 50
|
|
#define SYS_pread 51
|
|
//#define SYS_readv 52
|
|
//#define SYS_preadv 53
|
|
#define SYS_getdirentry 54
|
|
#define SYS_write 55
|
|
#define SYS_pwrite 56
|
|
//#define SYS_writev 57
|
|
//#define SYS_pwritev 58
|
|
#define SYS_lseek 59
|
|
#define SYS_flock 60
|
|
#define SYS_ftruncate 61
|
|
#define SYS_fsync 62
|
|
#define SYS_fcntl 63
|
|
#define SYS_ioctl 64
|
|
#define SYS_select 65
|
|
#define SYS_poll 66
|
|
|
|
// -- Pathname-related --
|
|
#define SYS_link 67
|
|
#define SYS_remove 68
|
|
#define SYS_mkdir 69
|
|
#define SYS_rmdir 70
|
|
#define SYS_mkfifo 71
|
|
#define SYS_rename 72
|
|
#define SYS_access 73
|
|
// (current directory)
|
|
#define SYS_chdir 74
|
|
#define SYS_fchdir 75
|
|
#define SYS___getcwd 76
|
|
// (symbolic links)
|
|
#define SYS_symlink 77
|
|
#define SYS_readlink 78
|
|
// (mount)
|
|
#define SYS_mount 79
|
|
#define SYS_unmount 80
|
|
|
|
|
|
// -- Any-file-related --
|
|
#define SYS_stat 81
|
|
#define SYS_fstat 82
|
|
#define SYS_lstat 83
|
|
// (timestamps)
|
|
#define SYS_utimes 84
|
|
#define SYS_futimes 85
|
|
#define SYS_lutimes 86
|
|
// (security/permissions)
|
|
#define SYS_chmod 87
|
|
#define SYS_chown 88
|
|
#define SYS_fchmod 89
|
|
#define SYS_fchown 90
|
|
#define SYS_lchmod 91
|
|
#define SYS_lchown 92
|
|
// (file system info)
|
|
//#define SYS_statfs 93
|
|
//#define SYS_fstatfs 94
|
|
//#define SYS_getfsstat 95
|
|
// (POSIX dynamic system limits stuff)
|
|
//#define SYS_pathconf 96
|
|
//#define SYS_fpathconf 97
|
|
|
|
// -- Sockets and networking --
|
|
#define SYS_socket 98
|
|
#define SYS_bind 99
|
|
#define SYS_connect 100
|
|
#define SYS_listen 101
|
|
#define SYS_accept 102
|
|
//#define SYS_socketpair 103
|
|
#define SYS_shutdown 104
|
|
#define SYS_getsockname 105
|
|
#define SYS_getpeername 106
|
|
#define SYS_getsockopt 107
|
|
#define SYS_setsockopt 108
|
|
//#define SYS_recvfrom 109
|
|
//#define SYS_sendto 110
|
|
//#define SYS_recvmsg 111
|
|
//#define SYS_sendmsg 112
|
|
|
|
// -- Time-related --
|
|
#define SYS___time 113
|
|
#define SYS___settime 114
|
|
#define SYS_nanosleep 115
|
|
//#define SYS_getitimer 116
|
|
//#define SYS_setitimer 117
|
|
|
|
// -- Other --
|
|
#define SYS_sync 118
|
|
#define SYS_reboot 119
|
|
//#define SYS___sysctl 120
|
|
|
|
/*CALLEND*/
|
|
|
|
|
|
#endif /* _KERN_SYSCALL_H_ */
|