| /* |
| * CDDL HEADER START |
| * |
| * The contents of this file are subject to the terms of the |
| * Common Development and Distribution License (the "License"). |
| * You may not use this file except in compliance with the License. |
| * |
| * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE |
| * or http://www.opensolaris.org/os/licensing. |
| * See the License for the specific language governing permissions |
| * and limitations under the License. |
| * |
| * When distributing Covered Code, include this CDDL HEADER in each |
| * file and include the License file at usr/src/OPENSOLARIS.LICENSE. |
| * If applicable, add the following below this CDDL HEADER, with the |
| * fields enclosed by brackets "[]" replaced with your own identifying |
| * information: Portions Copyright [yyyy] [name of copyright owner] |
| * |
| * CDDL HEADER END |
| */ |
| |
| /* |
| * Copyright 2007 Sun Microsystems, Inc. All rights reserved. |
| * Use is subject to license terms. |
| */ |
| |
| /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ |
| /* All Rights Reserved */ |
| |
| #ifndef _SYS_SYSCALL_H |
| #define _SYS_SYSCALL_H |
| |
| #pragma ident "%Z%%M% %I% %E% SMI" |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /* |
| * system call numbers |
| * syscall(SYS_xxxx, ...) |
| */ |
| |
| /* syscall enumeration MUST begin with 1 */ |
| |
| /* |
| * SunOS/SPARC uses 0 for the indirect system call SYS_syscall |
| * but this doesn't count because it is just another way |
| * to specify the real system call number. |
| */ |
| |
| #define SYS_syscall 0 |
| #define SYS_exit 1 |
| #define SYS_forkall 2 |
| #define SYS_read 3 |
| #define SYS_write 4 |
| #define SYS_open 5 |
| #define SYS_close 6 |
| #define SYS_wait 7 |
| #define SYS_creat 8 |
| #define SYS_link 9 |
| #define SYS_unlink 10 |
| #define SYS_exec 11 |
| #define SYS_chdir 12 |
| #define SYS_time 13 |
| #define SYS_mknod 14 |
| #define SYS_chmod 15 |
| #define SYS_chown 16 |
| #define SYS_brk 17 |
| #define SYS_stat 18 |
| #define SYS_lseek 19 |
| #define SYS_getpid 20 |
| #define SYS_mount 21 |
| #define SYS_umount 22 |
| #define SYS_setuid 23 |
| #define SYS_getuid 24 |
| #define SYS_stime 25 |
| #define SYS_pcsample 26 |
| #define SYS_alarm 27 |
| #define SYS_fstat 28 |
| #define SYS_pause 29 |
| #define SYS_utime 30 |
| #define SYS_stty 31 |
| #define SYS_gtty 32 |
| #define SYS_access 33 |
| #define SYS_nice 34 |
| #define SYS_statfs 35 |
| #define SYS_sync 36 |
| #define SYS_kill 37 |
| #define SYS_fstatfs 38 |
| #define SYS_pgrpsys 39 |
| /* |
| * subcodes: |
| * getpgrp() :: syscall(39,0) |
| * setpgrp() :: syscall(39,1) |
| * getsid(pid) :: syscall(39,2,pid) |
| * setsid() :: syscall(39,3) |
| * getpgid(pid) :: syscall(39,4,pid) |
| * setpgid(pid,pgid) :: syscall(39,5,pid,pgid) |
| */ |
| #define SYS_uucopystr 40 |
| #define SYS_dup 41 |
| #define SYS_pipe 42 |
| #define SYS_times 43 |
| #define SYS_profil 44 |
| #define SYS_plock 45 |
| #define SYS_setgid 46 |
| #define SYS_getgid 47 |
| #define SYS_signal 48 |
| /* |
| * subcodes: |
| * signal(sig, f) :: signal(sig, f) ((sig&SIGNO_MASK) == sig) |
| * sigset(sig, f) :: signal(sig|SIGDEFER, f) |
| * sighold(sig) :: signal(sig|SIGHOLD) |
| * sigrelse(sig) :: signal(sig|SIGRELSE) |
| * sigignore(sig) :: signal(sig|SIGIGNORE) |
| * sigpause(sig) :: signal(sig|SIGPAUSE) |
| * see <sys/signal.h> |
| */ |
| #define SYS_msgsys 49 |
| /* |
| * subcodes: |
| * msgget(...) :: msgsys(0, ...) |
| * msgctl(...) :: msgsys(1, ...) |
| * msgrcv(...) :: msgsys(2, ...) |
| * msgsnd(...) :: msgsys(3, ...) |
| * msgids(...) :: msgsys(4, ...) |
| * msgsnap(...) :: msgsys(5, ...) |
| * see <sys/msg.h> |
| */ |
| #define SYS_syssun 50 |
| #define SYS_sysi86 50 |
| /* |
| * subcodes: |
| * syssun(code, ...) |
| * see <sys/sys3b.h> |
| */ |
| #define SYS_acct 51 |
| #define SYS_shmsys 52 |
| /* |
| * subcodes: |
| * shmat (...) :: shmsys(0, ...) |
| * shmctl(...) :: shmsys(1, ...) |
| * shmdt (...) :: shmsys(2, ...) |
| * shmget(...) :: shmsys(3, ...) |
| * shmids(...) :: shmsys(4, ...) |
| * see <sys/shm.h> |
| */ |
| #define SYS_semsys 53 |
| /* |
| * subcodes: |
| * semctl(...) :: semsys(0, ...) |
| * semget(...) :: semsys(1, ...) |
| * semop (...) :: semsys(2, ...) |
| * semids(...) :: semsys(3, ...) |
| * semtimedop(...) :: semsys(4, ...) |
| * see <sys/sem.h> |
| */ |
| #define SYS_ioctl 54 |
| #define SYS_uadmin 55 |
| #define SYS_utssys 57 |
| /* |
| * subcodes (third argument): |
| * uname(obuf) (obsolete) :: syscall(57, obuf, ign, 0) |
| * subcode 1 unused |
| * ustat(dev, obuf) :: syscall(57, obuf, dev, 2) |
| * fusers(path, flags, obuf) :: syscall(57, path, flags, 3, obuf) |
| * see <sys/utssys.h> |
| */ |
| #define SYS_fdsync 58 |
| #define SYS_execve 59 |
| #define SYS_umask 60 |
| #define SYS_chroot 61 |
| #define SYS_fcntl 62 |
| #define SYS_ulimit 63 |
| #define SYS_reserved_64 64 /* 64 reserved */ |
| #define SYS_reserved_65 65 /* 65 reserved */ |
| #define SYS_reserved_66 66 /* 66 reserved */ |
| #define SYS_reserved_67 67 /* 67 reserved */ |
| #define SYS_reserved_68 68 /* 68 reserved */ |
| #define SYS_reserved_69 69 /* 69 reserved */ |
| #define SYS_tasksys 70 |
| /* |
| * subcodes: |
| * settaskid(...) :: tasksys(0, ...) |
| * gettaskid(...) :: tasksys(1, ...) |
| * getprojid(...) :: tasksys(2, ...) |
| */ |
| #define SYS_acctctl 71 |
| #define SYS_exacctsys 72 |
| /* |
| * subcodes: |
| * getacct(...) :: exacct(0, ...) |
| * putacct(...) :: exacct(1, ...) |
| * wracct(...) :: exacct(2, ...) |
| */ |
| #define SYS_getpagesizes 73 |
| #define SYS_rctlsys 74 |
| /* |
| * subcodes: |
| * getrctl(...) :: rctlsys(0, ...) |
| * setrctl(...) :: rctlsys(1, ...) |
| * rctllist(...) :: rctlsys(2, ...) |
| * rctlctl(...) :: rctlsys(3, ...) |
| */ |
| #define SYS_issetugid 75 |
| #define SYS_fsat 76 |
| /* |
| * subcodes: |
| * openat(...) :: fsat(0, ...) |
| * openat64(...) :: fsat(1, ...) |
| * fstatat64(...) :: fsat(2, ...) |
| * fstatat(...) :: fsat(3, ...) |
| * renameat(...) :: fsat(4, ...) |
| * fchownat(...) :: fsat(5, ...) |
| * unlinkat(...) :: fsat(6, ...) |
| * futimesat(...) :: fsat(7, ...) |
| */ |
| #define SYS_lwp_park 77 |
| /* |
| * subcodes: |
| * _lwp_park(timespec_t *, lwpid_t) :: syslwp_park(0, ...) |
| * _lwp_unpark(lwpid_t, int) :: syslwp_park(1, ...) |
| * _lwp_unpark_all(lwpid_t *, int) :: syslwp_park(2, ...) |
| */ |
| #define SYS_sendfilev 78 |
| /* |
| * subcodes : |
| * sendfilev() :: sendfilev(0, ...) |
| * sendfilev64() :: sendfilev(1, ...) |
| */ |
| #define SYS_rmdir 79 |
| #define SYS_mkdir 80 |
| #define SYS_getdents 81 |
| #define SYS_privsys 82 |
| /* |
| * subcodes: |
| * setppriv(...) :: privsys(0, ...) |
| * getppriv(...) :: privsys(1, ...) |
| * getimplinfo(...) :: privsys(2, ...) |
| * setpflags(...) :: privsys(3, ...) |
| * getpflags(...) :: privsys(4, ...) |
| */ |
| #define SYS_ucredsys 83 |
| /* |
| * subcodes: |
| * ucred_get(...) :: ucredsys(0, ...) |
| * getpeerucred(...) :: ucredsys(1, ...) |
| */ |
| #define SYS_sysfs 84 |
| /* |
| * subcodes: |
| * sysfs(code, ...) |
| * see <sys/fstyp.h> |
| */ |
| #define SYS_getmsg 85 |
| #define SYS_putmsg 86 |
| #define SYS_poll 87 |
| |
| #define SYS_lstat 88 |
| #define SYS_symlink 89 |
| #define SYS_readlink 90 |
| #define SYS_setgroups 91 |
| #define SYS_getgroups 92 |
| #define SYS_fchmod 93 |
| #define SYS_fchown 94 |
| #define SYS_sigprocmask 95 |
| #define SYS_sigsuspend 96 |
| #define SYS_sigaltstack 97 |
| #define SYS_sigaction 98 |
| #define SYS_sigpending 99 |
| /* |
| * subcodes: |
| * subcode 0 unused |
| * sigpending(...) :: syscall(99, 1, ...) |
| * sigfillset(...) :: syscall(99, 2, ...) |
| */ |
| #define SYS_context 100 |
| /* |
| * subcodes: |
| * getcontext(...) :: syscall(100, 0, ...) |
| * setcontext(...) :: syscall(100, 1, ...) |
| */ |
| #define SYS_evsys 101 |
| #define SYS_evtrapret 102 |
| #define SYS_statvfs 103 |
| #define SYS_fstatvfs 104 |
| #define SYS_getloadavg 105 |
| #define SYS_nfssys 106 |
| #define SYS_waitsys 107 |
| #define SYS_sigsendsys 108 |
| #define SYS_hrtsys 109 |
| #define SYS_acancel 110 |
| #define SYS_async 111 |
| #define SYS_priocntlsys 112 |
| #define SYS_pathconf 113 |
| #define SYS_mincore 114 |
| #define SYS_mmap 115 |
| #define SYS_mprotect 116 |
| #define SYS_munmap 117 |
| #define SYS_fpathconf 118 |
| #define SYS_vfork 119 |
| #define SYS_fchdir 120 |
| #define SYS_readv 121 |
| #define SYS_writev 122 |
| #define SYS_xstat 123 |
| #define SYS_lxstat 124 |
| #define SYS_fxstat 125 |
| #define SYS_xmknod 126 |
| #define SYS_setrlimit 128 |
| #define SYS_getrlimit 129 |
| #define SYS_lchown 130 |
| #define SYS_memcntl 131 |
| #define SYS_getpmsg 132 |
| #define SYS_putpmsg 133 |
| #define SYS_rename 134 |
| #define SYS_uname 135 |
| #define SYS_setegid 136 |
| #define SYS_sysconfig 137 |
| #define SYS_adjtime 138 |
| #define SYS_systeminfo 139 |
| #define SYS_seteuid 141 |
| #define SYS_forksys 142 |
| /* |
| * subcodes: |
| * forkx(flags) :: forksys(0, flags) |
| * forkallx(flags) :: forksys(1, flags) |
| * vforkx(flags) :: forksys(2, flags) |
| */ |
| #define SYS_fork1 143 |
| #define SYS_sigtimedwait 144 |
| #define SYS_lwp_info 145 |
| #define SYS_yield 146 |
| #define SYS_lwp_sema_wait 147 |
| #define SYS_lwp_sema_post 148 |
| #define SYS_lwp_sema_trywait 149 |
| #define SYS_lwp_detach 150 |
| #define SYS_corectl 151 |
| #define SYS_modctl 152 |
| #define SYS_fchroot 153 |
| #define SYS_utimes 154 |
| #define SYS_vhangup 155 |
| #define SYS_gettimeofday 156 |
| #define SYS_getitimer 157 |
| #define SYS_setitimer 158 |
| #define SYS_lwp_create 159 |
| #define SYS_lwp_exit 160 |
| #define SYS_lwp_suspend 161 |
| #define SYS_lwp_continue 162 |
| #define SYS_lwp_kill 163 |
| #define SYS_lwp_self 164 |
| #define SYS_lwp_sigmask 165 |
| #define SYS_lwp_private 166 |
| #define SYS_lwp_wait 167 |
| #define SYS_lwp_mutex_wakeup 168 |
| #define SYS_lwp_mutex_lock 169 |
| #define SYS_lwp_cond_wait 170 |
| #define SYS_lwp_cond_signal 171 |
| #define SYS_lwp_cond_broadcast 172 |
| #define SYS_pread 173 |
| #define SYS_pwrite 174 |
| #define SYS_llseek 175 |
| #define SYS_inst_sync 176 |
| #define SYS_brand 177 |
| #define SYS_kaio 178 |
| /* |
| * subcodes: |
| * aioread(...) :: kaio(AIOREAD, ...) |
| * aiowrite(...) :: kaio(AIOWRITE, ...) |
| * aiowait(...) :: kaio(AIOWAIT, ...) |
| * aiocancel(...) :: kaio(AIOCANCEL, ...) |
| * aionotify() :: kaio(AIONOTIFY) |
| * aioinit() :: kaio(AIOINIT) |
| * aiostart() :: kaio(AIOSTART) |
| * see <sys/aio.h> |
| */ |
| #define SYS_cpc 179 |
| #define SYS_lgrpsys 180 |
| #define SYS_meminfosys SYS_lgrpsys |
| /* |
| * subcodes: |
| * meminfo(...) :: meminfosys(MISYS_MEMINFO, ...) |
| */ |
| #define SYS_rusagesys 181 |
| /* |
| * subcodes: |
| * getrusage(...) :: rusagesys(RUSAGESYS_GETRUSAGE, ...) |
| * getvmusage(...) :: rusagesys(RUSAGESYS_GETVMUSAGE, ...) |
| */ |
| #define SYS_port 182 |
| /* |
| * subcodes: |
| * port_create(...) :: portfs(PORT_CREATE, ...) |
| * port_associate(...) :: portfs(PORT_ASSOCIATE, ...) |
| * port_dissociate(...) :: portfs(PORT_DISSOCIATE, ...) |
| * port_send(...) :: portfs(PORT_SEND, ...) |
| * port_sendn(...) :: portfs(PORT_SENDN, ...) |
| * port_get(...) :: portfs(PORT_GET, ...) |
| * port_getn(...) :: portfs(PORT_GETN, ...) |
| * port_alert(...) :: portfs(PORT_ALERT, ...) |
| * port_dispatch(...) :: portfs(PORT_DISPATCH, ...) |
| */ |
| #define SYS_pollsys 183 |
| #define SYS_labelsys 184 |
| #define SYS_acl 185 |
| #define SYS_auditsys 186 |
| #define SYS_processor_bind 187 |
| #define SYS_processor_info 188 |
| #define SYS_p_online 189 |
| #define SYS_sigqueue 190 |
| #define SYS_clock_gettime 191 |
| #define SYS_clock_settime 192 |
| #define SYS_clock_getres 193 |
| #define SYS_timer_create 194 |
| #define SYS_timer_delete 195 |
| #define SYS_timer_settime 196 |
| #define SYS_timer_gettime 197 |
| #define SYS_timer_getoverrun 198 |
| #define SYS_nanosleep 199 |
| #define SYS_facl 200 |
| #define SYS_door 201 |
| /* |
| * Door Subcodes: |
| * 0 door_create |
| * 1 door_revoke |
| * 2 door_info |
| * 3 door_call |
| * 4 door_return |
| */ |
| #define SYS_setreuid 202 |
| #define SYS_setregid 203 |
| #define SYS_install_utrap 204 |
| #define SYS_signotify 205 |
| #define SYS_schedctl 206 |
| #define SYS_pset 207 |
| #define SYS_sparc_utrap_install 208 |
| #define SYS_resolvepath 209 |
| #define SYS_lwp_mutex_timedlock 210 |
| #define SYS_lwp_sema_timedwait 211 |
| #define SYS_lwp_rwlock_sys 212 |
| /* |
| * subcodes: |
| * lwp_rwlock_rdlock(...) :: syscall(212, 0, ...) |
| * lwp_rwlock_wrlock(...) :: syscall(212, 1, ...) |
| * lwp_rwlock_tryrdlock(...) :: syscall(212, 2, ...) |
| * lwp_rwlock_trywrlock(...) :: syscall(212, 3, ...) |
| * lwp_rwlock_unlock(...) :: syscall(212, 4, ...) |
| */ |
| /* system calls for large file ( > 2 gigabyte) support */ |
| #define SYS_getdents64 213 |
| #define SYS_mmap64 214 |
| #define SYS_stat64 215 |
| #define SYS_lstat64 216 |
| #define SYS_fstat64 217 |
| #define SYS_statvfs64 218 |
| #define SYS_fstatvfs64 219 |
| #define SYS_setrlimit64 220 |
| #define SYS_getrlimit64 221 |
| #define SYS_pread64 222 |
| #define SYS_pwrite64 223 |
| #define SYS_creat64 224 |
| #define SYS_open64 225 |
| #define SYS_rpcsys 226 |
| #define SYS_zone 227 |
| /* |
| * subcodes: |
| * zone_create(...) :: zone(ZONE_CREATE, ...) |
| * zone_destroy(...) :: zone(ZONE_DESTROY, ...) |
| * zone_getattr(...) :: zone(ZONE_GETATTR, ...) |
| * zone_enter(...) :: zone(ZONE_ENTER, ...) |
| * zone_list(...) :: zone(ZONE_LIST, ...) |
| * zone_shutdown(...) :: zone(ZONE_SHUTDOWN, ...) |
| * zone_lookup(...) :: zone(ZONE_LOOKUP, ...) |
| * zone_boot(...) :: zone(ZONE_BOOT, ...) |
| * zone_version(...) :: zone(ZONE_VERSION, ...) |
| * zone_setattr(...) :: zone(ZONE_SETATTR, ...) |
| * zone_add_datalink(...) :: zone(ZONE_ADD_DATALINK, ...) |
| * zone_remove_datalink(...) :: zone(ZONE_DEL_DATALINK, ...) |
| * zone_check_datalink(...) :: zone(ZONE_CHECK_DATALINK, ...) |
| * zone_list_datalink(...) :: zone(ZONE_LIST_DATALINK, ...) |
| */ |
| #define SYS_autofssys 228 |
| #define SYS_getcwd 229 |
| #define SYS_so_socket 230 |
| #define SYS_so_socketpair 231 |
| #define SYS_bind 232 |
| #define SYS_listen 233 |
| #define SYS_accept 234 |
| #define SYS_connect 235 |
| #define SYS_shutdown 236 |
| #define SYS_recv 237 |
| #define SYS_recvfrom 238 |
| #define SYS_recvmsg 239 |
| #define SYS_send 240 |
| #define SYS_sendmsg 241 |
| #define SYS_sendto 242 |
| #define SYS_getpeername 243 |
| #define SYS_getsockname 244 |
| #define SYS_getsockopt 245 |
| #define SYS_setsockopt 246 |
| #define SYS_sockconfig 247 |
| /* |
| * NTP codes |
| */ |
| #define SYS_ntp_gettime 248 |
| #define SYS_ntp_adjtime 249 |
| #define SYS_lwp_mutex_unlock 250 |
| #define SYS_lwp_mutex_trylock 251 |
| #define SYS_lwp_mutex_init 252 |
| #define SYS_cladm 253 |
| #define SYS_uucopy 254 |
| #define SYS_umount2 255 |
| |
| |
| #ifndef _ASM |
| |
| typedef struct { /* syscall set type */ |
| unsigned int word[16]; |
| } sysset_t; |
| |
| #if !defined(_KERNEL) |
| |
| typedef struct { /* return values from system call */ |
| long sys_rval1; /* primary return value from system call */ |
| long sys_rval2; /* second return value from system call */ |
| } sysret_t; |
| |
| #if defined(__STDC__) |
| extern int syscall(int, ...); |
| extern int __systemcall(sysret_t *, int, ...); |
| extern int __set_errno(int); |
| #else |
| extern int syscall(); |
| extern int __systemcall(); |
| extern int __set_errno(); |
| #endif |
| |
| #endif /* _KERNEL */ |
| |
| #endif /* _ASM */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* _SYS_SYSCALL_H */ |