1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
|
/*
* 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 2006 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_fork SYS_forkall /* historical */
#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_reserved_40 40 /* 40 not used, was xenix */
#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_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_reserved_177 177 /* 177 reserved */
#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,...)
*/
#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, ...)
*/
#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_reserved_254 254 /* 254 reserved */
#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 */
|