Name Date Size #Lines LOC

..--

SYSCALL.READMEH A D14-Jun-20059.6 KiB307206

access.cH A D19-Aug-20103.4 KiB15397

acctctl.cH A D05-Dec-200814.5 KiB642447

acl.cH A D27-Dec-20079.2 KiB361256

adjtime.cH A D14-Jun-20052.9 KiB10959

alarm.cH A D06-Jun-20072.6 KiB9946

auditsys.cH A D19-Aug-201034.1 KiB1,4631,054

brandsys.cH A D12-Sep-20061.6 KiB5719

chdir.cH A D05-Mar-20105.4 KiB246155

chmod.cH A D19-Aug-20102 KiB8642

chown.cH A D19-Aug-20102.4 KiB9956

cladm.cH A D14-Jun-20052.5 KiB10145

close.cH A D14-Jun-20051.5 KiB5917

corectl.cH A D08-Aug-201413.4 KiB562402

exacctsys.cH A D14-Jun-20059.3 KiB407300

fcntl.cH A D02-Oct-201320.2 KiB827558

fdsync.cH A D26-Oct-20071.9 KiB7427

getcwd.cH A D02-Dec-20052.1 KiB8035

getdents.cH A D19-Aug-20106 KiB239151

getloadavg.cH A D16-Jul-20141.6 KiB5923

getpagesizes.cH A D28-Oct-20072.9 KiB12383

getpid.cH A D14-Jun-20051.4 KiB5722

getrandom.cH A D16-Apr-20151.8 KiB8146

gid.cH A D03-Mar-20086.7 KiB299207

groups.cH A D20-Nov-20093.2 KiB14793

ioctl.cH A D26-Oct-20073.8 KiB169102

issetugid.cH A D14-Jun-20051.2 KiB417

lgrpsys.cH A D21-Dec-201551 KiB2,1101,218

link.cH A D19-Aug-20102.2 KiB8643

lseek.cH A D26-Oct-20079.1 KiB380241

lwp_create.cH A D11-Apr-20095.6 KiB216111

lwp_info.cH A D14-Jun-20052.1 KiB8139

lwp_self.cH A D14-Jun-20051.2 KiB4011

lwp_sobj.cH A D08-Aug-201486.7 KiB3,2052,099

lwp_timer.cH A D10-Apr-20096.2 KiB227146

lwpsys.cH A D18-Apr-200915 KiB639427

memcntl.cH A D25-Mar-20169.9 KiB410263

mkdir.cH A D19-Aug-20102.1 KiB8543

mknod.cH A D19-Aug-20103.1 KiB11661

mmapobjsys.cH A D25-Nov-20085.3 KiB214148

mount.cH A D14-Jun-20053.4 KiB13864

nice.cH A D20-Mar-20081.9 KiB7232

ntptime.cH A D09-Jan-20085.8 KiB217106

open.cH A D31-Mar-20137.8 KiB341211

p_online.cH A D25-Mar-20105.2 KiB253142

pathconf.cH A D13-Jul-20084.1 KiB15980

pause.cH A D14-Jun-20051.5 KiB5620

pgrpsys.cH A D12-Sep-20064 KiB175124

pipe.cH A D12-Jun-20134.6 KiB217121

poll.cH A D16-Mar-201772.9 KiB2,8541,727

ppriv.cH A D28-Apr-201010 KiB422256

processor_bind.cH A D24-Mar-20097.6 KiB380277

processor_info.cH A D14-Jun-20052 KiB7231

profil.cH A D03-Feb-20122.3 KiB9546

pset.cH A D26-May-201019 KiB878683

rctlsys.cH A D16-May-200928.3 KiB1,059679

readlink.cH A D19-Aug-20103.7 KiB14591

rename.cH A D19-Aug-20102.1 KiB8139

resolvepath.cH A D14-Jun-20051.6 KiB6130

rlimit.cH A D21-Dec-201512.2 KiB486302

rusagesys.cH A D20-Oct-20086.9 KiB264194

rw.cH A D09-Jun-201438.3 KiB1,6341,191

sem.cH A D05-Mar-201030.8 KiB1,218811

sendfile.cH A D25-Jul-201832.1 KiB1,3751,032

sidsys.cH A D20-Mar-20103.3 KiB169108

sigaction.cH A D12-Mar-20105 KiB227156

sigaltstack.cH A D14-Jun-20053.1 KiB12269

signotify.cH A D19-Aug-20096.3 KiB282197

sigpending.cH A D14-Jun-20051.9 KiB7338

sigprocmask.cH A D12-Mar-20103.1 KiB13378

sigqueue.cH A D02-Oct-20135.4 KiB209127

sigsendset.cH A D14-Jun-20051.7 KiB6830

sigsuspend.cH A D14-Jun-20051.9 KiB6732

sigtimedwait.cH A D17-Apr-20095.3 KiB209140

stat.cH A D19-Aug-201015.2 KiB631465

statfs.cH A D24-May-20064.1 KiB166103

statvfs.cH A D24-May-20068.8 KiB371257

strcalls.cH A D14-Jun-200511.9 KiB538426

symlink.cH A D19-Aug-20103.1 KiB11977

sync.cH A D14-Jun-20051.2 KiB4212

sysconfig.cH A D02-Oct-20135.2 KiB226127

sysfs.cH A D14-Jun-20053 KiB13874

systeminfo.cH A D30-Jan-20097.8 KiB366252

tasksys.cH A D02-Oct-20137.4 KiB299176

time.cH A D14-Jun-20051.8 KiB8141

times.cH A D13-Nov-20092.6 KiB10151

uadmin.cH A D02-Oct-201311.2 KiB469297

ucredsys.cH A D05-Mar-20104 KiB207136

uid.cH A D28-Apr-20109.6 KiB408270

umask.cH A D19-Jan-20071.4 KiB5417

umount.cH A D01-Mar-20106.3 KiB19568

uname.cH A D14-Jun-20051.9 KiB6329

unlink.cH A D19-Aug-20102 KiB8341

utime.cH A D19-Aug-20104.8 KiB212156

utssys.cH A D21-Dec-201523.1 KiB953560

uucopy.cH A D12-Sep-20061.3 KiB6023

yield.cH A D14-Jun-20051.6 KiB6223

SYSCALL.README

1
2CDDL HEADER START
3
4The contents of this file are subject to the terms of the
5Common Development and Distribution License, Version 1.0 only
6(the "License").  You may not use this file except in compliance
7with the License.
8
9You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10or http://www.opensolaris.org/os/licensing.
11See the License for the specific language governing permissions
12and limitations under the License.
13
14When distributing Covered Code, include this CDDL HEADER in each
15file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16If applicable, add the following below this CDDL HEADER, with the
17fields enclosed by brackets "[]" replaced with your own identifying
18information: Portions Copyright [yyyy] [name of copyright owner]
19
20CDDL HEADER END
21
22Copyright 2000 Sun Microsystems, Inc.  All rights reserved.
23Use is subject to license terms.
24
25ident	"%Z%%M%	%I%	%E% SMI"
26
27System Call Files
28------ ---- -----
29
30The universal dumping grounds for system calls in Solaris 2.x,
31common/os/scalls.c and common/fs/vncalls.c, have been sub-divided into
32smaller files.
33
34The old files had become quite large, and contained much completely
35unrelated code. From a software engineering standpoint, it didn't seem
36like a good idea to permit system calls or underlying routines
37to be cognizant of the internal interfaces and underlying routines
38of unrelated system calls.
39
40From a practical standpoint, recompiling all of scalls.c or vncalls.c
41after making only a small change in one system call seemed like
42cruel and unusual punishment.  Also, running "bringover" after
43changing scalls.c or vncalls.c in one's own environment had a
44high probability of encountering a conflict.
45
46In an attempt to improve maintainability, we have split these files
47and created new directories to hold the results. One hopes that this
48new organization will prove easier to maintain and change.
49
50The principles listed below guided the split-up. Please try to adhere
51to them if you add new system calls.
52
53
541) System calls now live in directories called "syscall". Architecture
55   independant system calls live in common/syscall and architecture
56   dependant system calls live in sparc/syscall or i86/syscall.
57
582) Most system calls have their own separate file. We try to keep
59   these files as small as possible.
60
613) Unrelated system calls should NEVER be put in the same file. Do
62   not consider any of these files "dumping grounds" for new system
63   call work.
64
654) Some files DO contain more than one system call. This occurs
66   under the following restricted conditions:
67
68	o System calls that are internally related, either because
69	  they alone call a set of static functions to do the dirty
70	  work, or because they access locally-defined static data.
71	  The system calls in sigqueue.c and lwpsys.c are examples
72	  of the first case; lwp_sobj.c is an example of the second.
73
74	o Fairly trivial pairs of "get-" and "set-" operation system
75	  calls. The file rlimit.c, containing getrlimit() and
76	  setrlimit() is a case in point.
77
78	o System calls that are basically "variations on a theme,"
79	  such as the the different forms of stat in stat.c.
80
815) If a number of system calls make use of a local function, or,
82   if a function is used more widely than in a few system calls,
83   then perhaps this function needs to be moved to one of the
84   kernel-implementation files in common/os or common/fs. For
85   example, this was done with the functions namesetattr and
86   fdsetattr, which were used by several different system calls.
87   These functions were moved into common/os/fio.c, where they
88   seemed to fit better.
89
90-------------------------------------------------------------------
91System Call Reorganization
92------ ---- --------------
93
94The system calls in common/os/scalls.c, common/fs/vncalls.c
95have been broken up into smaller files. In addition, system
96calls that previously resided in <arch>/os/archdep.c have
97been removed from that file. The table below describes the
98manner in which the files have been split up.
99
100The original syscall files have not been deleted, but have been
101renamed to reflect their diminished contents. The file scalls.c
102has been renamed to ssig.c, and vncalls.c has been renamed to
103poll.c.
104
105
106Syscall Entry Point	Old File	New File
107-------------------	--- ----	--- ----
108gtime			scalls.c	common/syscall/time.c
109stime			scalls.c	common/syscall/time.c
110
111adjtime			scalls.c	common/syscall/adjtime.c
112
113times			scalls.c	common/syscall/times.c
114
115sysconfig		scalls.c	common/syscall/sysconfig.c
116
117setuid			scalls.c	common/syscall/uid.c
118getuid			scalls.c	common/syscall/uid.c
119seteuid			scalls.c	common/syscall/uid.c
120
121setgid			scalls.c	common/syscall/gid.c
122getgid			scalls.c	common/syscall/gid.c
123setegid			scalls.c	common/syscall/gid.c
124
125getpid			scalls.c	common/syscall/getpid.c
126
127setgroups		scalls.c	common/syscall/groups.c
128getgroups		scalls.c	common/syscall/groups.c
129
130setpgrp			scalls.c	common/syscall/pgrpsys.c
131
132pause			scalls.c	common/syscall/pause.c
133
134ssig			scalls.c	common/syscall/ssig.c
135
136sigtimedwait		scalls.c	common/syscall/sigtimedwait.c
137
138sigsuspend		scalls.c	common/syscall/sigsuspend.c
139
140sigaltstack		scalls.c	common/syscall/sigaltstack.c
141
142sigpending		scalls.c	common/syscall/sigpending.c
143
144sigprocmask		scalls.c	common/syscall/sigprocmask.c
145
146sigaction		scalls.c	common/syscall/sigaction.c
147
148kill			scalls.c	common/syscall/sigqueue.c
149sigqueue		scalls.c	common/syscall/sigqueue.c
150
151sigsendsys		scalls.c	common/syscall/sigsendset.c
152
153profil			scalls.c	common/syscall/profil.c
154
155alarm			scalls.c	common/syscall/alarm.c
156
157umask			scalls.c	common/syscall/umask.c
158
159ulimit			scalls.c	common/syscall/rlimit.c
160getrlimit		scalls.c	common/syscall/rlimit.c
161setrlimit		scalls.c	common/syscall/rlimit.c
162
163utssys			scalls.c	common/syscall/utssys.c
164
165uname			scalls.c	common/syscall/uname.c
166
167uadmin			scalls.c	common/syscall/uadmin.c
168
169systeminfo		scalls.c	common/syscall/systeminfo.c
170
171syslwp_create		scalls.c	common/syscall/lwp_create.c
172syslwp_exit		scalls.c	common/syscall/lwp_create.c
173
174syslwp_syspend		scalls.c	common/syscall/lwpsys.c
175syslwp_continue		scalls.c	common/syscall/lwpsys.c
176lwp_kill		scalls.c	common/syscall/lwpsys.c
177lwp_wait		scalls.c	common/syscall/lwpsys.c
178
179yield			scalls.c	common/syscall/yield.c
180
181lwp_self		scalls.c	common/syscall/lwp_self.c
182
183lwp_info		scalls.c	common/syscall/lwp_info.c
184
185lwp_mutex_lock		scalls.c	common/syscall/lwp_sobj.c
186lwp_mutex_unlock	scalls.c	common/syscall/lwp_sobj.c
187lwp_cond_wait		scalls.c	common/syscall/lwp_sobj.c
188lwp_cond_signal		scalls.c	common/syscall/lwp_sobj.c
189lwp_cond_broadcast	scalls.c	common/syscall/lwp_sobj.c
190lwp_sema_p		scalls.c	common/syscall/lwp_sobj.c
191lwp_sema_v		scalls.c	common/syscall/lwp_sobj.c
192
193open			vncalls.c	common/syscall/open.c
194creat			vncalls.c	common/syscall/open.c
195
196close			vncalls.c	common/syscall/close.c
197
198read			vncalls.c	common/syscall/rw.c
199write			vncalls.c	common/syscall/rw.c
200pread			vncalls.c	common/syscall/rw.c
201pwrite			vncalls.c	common/syscall/rw.c
202readv			vncalls.c	common/syscall/rw.c
203writev			vncalls.c	common/syscall/rw.c
204
205chdir			vncalls.c	common/syscall/chdir.c
206fchdir			vncalls.c	common/syscall/chdir.c
207chroot			vncalls.c	common/syscall/chdir.c
208fchroot			vncalls.c	common/syscall/chdir.c
209
210mknod			vncalls.c	common/syscall/mknod.c
211xmknod			vncalls.c	common/syscall/mknod.c
212
213mkdir			vncalls.c	common/syscall/mkdir.c
214
215link			vncalls.c	common/syscall/link.c
216
217rename			vncalls.c	common/syscall/rename.c
218
219symlink			vncalls.c	common/syscall/symlink.c
220
221unlink			vncalls.c	common/syscall/unlink.c
222
223rmdir			vncalls.c	common/syscall/rmdir.c
224
225getdents		vncalls.c	common/syscall/getdents.c
226
227lseek			vncalls.c	common/syscall/lseek.c
228llseek			vncalls.c	common/syscall/lseek.c
229
230access			vncalls.c	common/syscall/access.c
231
232stat			vncalls.c	common/syscall/stat.c
233lstat			vncalls.c	common/syscall/stat.c
234fstat			vncalls.c	common/syscall/stat.c
235xstat			vncalls.c	common/syscall/stat.c
236lxstat			vncalls.c	common/syscall/stat.c
237fxstat			vncalls.c	common/syscall/stat.c
238
239fpathconf		vncalls.c	common/syscall/pathconf.c
240pathconf		vncalls.c	common/syscall/pathconf.c
241
242readlink		vncalls.c	common/syscall/readlink.c
243
244chmod			vncalls.c	common/syscall/chmod.c
245fchmod			vncalls.c	common/syscall/chmod.c
246
247chown			vncalls.c	common/syscall/chown.c
248lchown			vncalls.c	common/syscall/chown.c
249fchown			vncalls.c	common/syscall/chown.c
250
251utime			vncalls.c	common/syscall/utime.c
252utimes			vncalls.c	common/syscall/utime.c
253
254fdsync			vncalls.c	common/syscall/fdsync.c
255
256fcntl			vncalls.c	common/syscall/fcntl.c
257
258dup			vncalls.c	common/syscall/dup.c
259
260ioctl			vncalls.c	common/syscall/ioctl.c
261stty			vncalls.c	common/syscall/ioctl.c
262gtty			vncalls.c	common/syscall/ioctl.c
263
264poll			vncalls.c	common/syscall/poll.c
265
266acl			vncalls.c	common/syscall/acl.c
267facl			vncalls.c	common/syscall/acl.c
268
269mount			vfs.c		common/syscall/mount.c
270
271statfs			vfs.c		common/syscall/statfs.c
272fstatfs			vfs.c		common/syscall/statfs.c
273
274statvfs			vfs.c		common/syscall/statvfs.c
275fstatvfs		vfs.c		common/syscall/statvfs.c
276
277sync			vfs.c		common/syscall/sync.c
278
279sysfs			vfs.c		common/syscall/sysfs.c
280
281umount			vfs.c		common/syscall/umount.c
282
283nice			priocntl.c	common/syscall/nice.c
284
285pipe			os/pipe.c	common/syscall/pipe.c
286
287msgsys			os/msg.c	common/syscall/msg.c
288
289semsys			os/sem.c	common/syscall/sem.c
290
291shmsys			os/shm.c	common/syscall/shm.c
292
293getcontext		sparc/archdep.c	sparc/syscall/getcontext.c
294lwp_getprivate		sparc/archdep.c	sparc/syscall/lwp_private.c
295lwp_setprivate		sparc/archdep.c	sparc/syscall/lwp_private.c
296
297getcontext		i86/archdep.c	i86/syscall/getcontext.c
298lwp_getprivate		i86/archdep.c	i86/syscall/lwp_private.c
299lwp_setprivate		i86/archdep.c	i86/syscall/lwp_private.c
300
301-----------------------------------------------------------------
302
303Most of the system calls in this directory have been converted
304to use C-style argument passing, instead of the old uap-pointer
305method. This usually makes the system calls faster and more
306"natural" in implementation.
307