d6005d56bc3963b32b0dca3d3a76a5eead93de1e
3 #pragma varargck type "E" int
17 void jumpstart(ulong addr
, ulong
*stack
);
18 void jumpureg(void *ureg
);
19 void linux_sigreturn(void);
20 void linux_rtsigreturn(void);
24 void exittrace(Uproc
*proc
);
25 void clonetrace(Uproc
*new, int copy
);
26 void tprint(char *fmt
, ...);
27 #pragma varargck argpos tprint 1
28 #define trace if(debug)tprint
32 void exitproc(Uproc
*proc
, int code
, int group
);
33 void stopproc(Uproc
*proc
, int code
, int group
);
34 void contproc(Uproc
*proc
, int code
, int group
);
35 int procfork(void (*fproc
)(void *aux
), void *aux
, int flags
);
36 Uproc
* getproc(int tid
);
37 Uproc
* getprocn(int n
);
38 int threadcount(int pid
);
39 void zapthreads(void);
40 void setprocname(char *s
);
43 int sleepproc(QLock
*l
, int flags
);
44 Uwait
* addwaitq(Uwaitq
*q
);
45 void delwaitq(Uwait
*w
);
46 int sleepq(Uwaitq
*q
, QLock
*l
, int flags
);
47 int wakeq(Uwaitq
*q
, int nwake
);
48 int requeue(Uwaitq
*q1
, Uwaitq
*q2
, int nrequeue
);
49 int killproc(Uproc
*p
, Usiginfo
*info
, int group
);
50 void setalarm(vlong t
);
52 int sys_waitpid(int pid
, int *pexit
, int opt
);
53 int sys_wait4(int pid
, int *pexit
, int opt
, void *prusage
);
54 int sys_exit(int code
);
55 int sys_exit_group(int code
);
56 int sys_linux_clone(int flags
, void *newstack
, int *parenttidptr
, int *tlsdescr
, void *childtidptr
);
60 int sys_getppid(void);
62 int sys_setpgid(int pid
, int pgid
);
63 int sys_getpgid(int pid
);
64 int sys_setpgrp(int pid
);
65 int sys_getpgrp(void);
68 int sys_setgid(int gid
);
69 int sys_setuid(int uid
);
70 int sys_setresuid(int ruid
, int euid
, int suid
);
71 int sys_getresuid(int *ruid
, int *euid
, int *suid
);
72 int sys_setresgid(int rgid
, int egid
, int sgid
);
73 int sys_getresgid(int *rgid
, int *egid
, int *sgid
);
74 int sys_setreuid(int ruid
, int euid
);
75 int sys_setregid(int rgid
, int egid
);
76 int sys_uname(void *);
77 int sys_personality(ulong p
);
79 int sys_getsid(int pid
);
80 int sys_getgroups(int size
, int *groups
);
81 int sys_setgroups(int size
, int *groups
);
83 int sys_kill(int pid
, int sig
);
84 int sys_tkill(int tid
, int sig
);
85 int sys_tgkill(int pid
, int tid
, int sig
);
86 int sys_rt_sigqueueinfo(int pid
, int sig
, void *info
);
88 int sys_set_tid_address(int *tidptr
);
90 int sys_sched_setscheduler(int pid
, int policy
, void *param
);
91 int sys_sched_getscheduler(int pid
);
92 int sys_sched_setparam(int pid
, void *param
);
93 int sys_sched_getparam(int pid
, void *param
);
94 int sys_sched_yield(void);
96 int sys_getrlimit(long resource
, void *rlim
);
97 int sys_setrlimit(long resource
, void *rlim
);
100 void initsignal(void);
101 void exitsignal(void);
102 void clonesignal(Uproc
*new, int copyhand
, int newproc
);
103 void settty(Ufile
*tty
);
105 #pragma varargck type "S" int
108 int wantssignal(Uproc
*proc
, int sig
);
109 int ignoressignal(Uproc
*proc
, int sig
);
110 int signalspending(Uproc
*proc
);
112 void handlesignals(void);
113 int sendsignal(Uproc
*proc
, Usiginfo
*info
, int group
);
115 void siginfo2linux(Usiginfo
*, void *);
116 void linux2siginfo(void *, Usiginfo
*);
118 int sys_sigaltstack(void *stk
, void *ostk
);
119 int sys_rt_sigaction(int sig
, void *pact
, void *poact
, int setsize
);
120 int sys_rt_sigpending(uchar
*set
, int setsize
);
121 int sys_rt_sigprocmask(int how
, uchar
*act
, uchar
*oact
, int setsize
);
122 int sys_rt_sigsuspend(uchar
*set
, int setsize
);
123 int sys_sigreturn(void);
124 int sys_rt_sigreturn(void);
126 int sys_setitimer(int which
, void *value
, void *ovalue
);
127 int sys_getitimer(int which
, void *value
);
128 int sys_alarm(long seconds
);
132 void exitfile(Uproc
*proc
);
133 void clonefile(Uproc
*new, int copy
);
134 void closexfds(void);
135 Ufile
*procfdgetfile(Uproc
*proc
, int fd
);
136 Ufile
* fdgetfile(int fd
);
137 Ufile
* getfile(Ufile
*file
);
138 void putfile(Ufile
*file
);
139 int newfd(Ufile
*file
, int flags
);
140 int chdirfile(Ufile
*file
);
141 int readfile(Ufile
*file
, void *buf
, int len
);
142 int writefile(Ufile
*file
, void *buf
, int len
);
143 int preadfile(Ufile
*file
, void *buf
, int len
, vlong off
);
144 int pwritefile(Ufile
*file
, void *buf
, int len
, vlong off
);
146 int sys_dup2(int old
, int new);
147 int sys_fcntl(int fd
, int cmd
, int arg
);
148 int sys_close(int fd
);
149 int sys_ioctl(int fd
, int cmd
, void *arg
);
150 int sys_read(int fd
, void *buf
, int len
);
151 int sys_readv(int fd
, void *vec
, int n
);
152 int sys_pread64(int fd
, void *buf
, int len
, ulong off
);
153 int sys_write(int fd
, void *buf
, int len
);
154 int sys_pwrite64(int fd
, void *buf
, int len
, ulong off
);
155 int sys_writev(int fd
, void *vec
, int n
);
156 ulong
sys_lseek(int fd
, ulong off
, int whence
);
157 int sys_llseek(int fd
, ulong hioff
, ulong looff
, vlong
*res
, int whence
);
158 int sys_umask(int umask
);
159 int sys_flock(int fd
, int cmd
);
160 int sys_fsync(int fd
);
161 int sys_fchdir(int fd
);
162 int sys_getcwd(char *buf
, int len
);
163 int sys_fchmod(int fd
, int mode
);
164 int sys_fchown(int fd
, int uid
, int gid
);
165 int sys_ftruncate(int fd
, ulong size
);
168 void pollwait(Ufile
*f
, Uwaitq
*q
, void *t
);
169 int sys_poll(void *p
, int nfd
, long timeout
);
170 int sys_select(int nfd
, ulong
*rfd
, ulong
*wfd
, ulong
*efd
, void *ptv
);
173 void* kmalloc(int size
);
174 void* kmallocz(int size
, int zero
);
175 void* krealloc(void *ptr
, int size
);
176 char* kstrdup(char *s
);
177 char* ksmprint(char *fmt
, ...);
178 #pragma varargck argpos ksmprint 1
180 ulong
pagealign(ulong addr
);
184 void clonemem(Uproc
*new, int copy
);
185 ulong
procmemstat(Uproc
*proc
, ulong
*pdat
, ulong
*plib
, ulong
*pshr
, ulong
*pstk
, ulong
*pexe
);
186 void* mapstack(int size
);
187 void mapdata(ulong base
);
188 void unmapuserspace(void);
189 int okaddr(void *ptr
, int len
, int write
);
191 ulong
sys_linux_mmap(void *a
);
192 ulong
sys_mmap(ulong addr
, ulong len
, int prot
, int flags
, int fd
, ulong pgoff
);
193 int sys_munmap(ulong addr
, ulong len
);
194 ulong
sys_brk(ulong bk
);
195 int sys_mprotect(ulong addr
, ulong len
, int prot
);
196 int sys_msync(ulong addr
, ulong len
, int flags
);
197 ulong
sys_mremap(ulong addr
, ulong oldlen
, ulong newlen
, int flags
, ulong newaddr
);
199 int sys_futex(ulong
*addr
, int op
, int val
, void *ptime
, ulong
*addr2
, int val3
);
202 int sys_execve(char *name
, char *argv
[], char *envp
[]);
206 int sys_time(long *p
);
207 int sys_gettimeofday(void *tvp
, void *tzp
);
208 int sys_clock_gettime(int clock
, void *t
);
209 int sys_nanosleep(void *rqp
, void *rmp
);
210 int proctimes(Uproc
*p
, ulong
*t
);
211 int sys_times(void *times
);
215 void clonetls(Uproc
*new);
217 int sys_set_thread_area(void *pinfo
);
218 int sys_get_thread_area(void *pinfo
);
219 int sys_modify_ldt(int func
, void *data
, int count
);
222 void *newbufproc(int fd
);
223 void freebufproc(void *bp
);
224 int readbufproc(void *bp
, void *data
, int len
, int peek
, int noblock
);
225 int pollbufproc(void *bp
, Ufile
*file
, void *tab
);
226 int nreadablebufproc(void *bp
);
229 void panic(char *msg
, ...);
230 int onstack(long *stk
, int (*func
)(void *arg
), void *arg
);
234 int ufstat(int fd
, Ustat
*ps
);
235 Udirent
*newdirent(char *path
, char *name
, int mode
);
237 int sys_getxattr(char *path
, char *name
, void *value
, int size
);
238 int sys_lgetxattr(char *path
, char *name
, void *value
, int size
);
239 int sys_fgetxattr(int fd
, char *name
, void *value
, int size
);
240 int sys_setxattr(char *path
, char *name
, void *value
, int flags
, int size
);
241 int sys_lsetxattr(char *path
, char *name
, void *value
, int flags
, int size
);
242 int sys_fsetxattr(int fd
, char *name
, void *value
, int size
, int flags
);
244 int sys_linux_fstat(int fd
, void *st
);
245 int sys_linux_fstat64(int fd
, void *st
);
246 int sys_linux_getdents(int fd
, void *buf
, int nbuf
);
247 int sys_linux_getdents64(int fd
, void *buf
, int nbuf
);
248 int sys_linux_lstat(char *path
, void *st
);
249 int sys_linux_lstat64(char *path
, void *st
);
250 int sys_linux_stat(char *path
, void *st
);
251 int sys_linux_stat64(char *path
, void *st
);
253 int sys_statfs(char *name
, void *pstatfs
);
256 void fsmount(Udev
*dev
, char *path
);
258 char* allocpath(char *base
, char *prefix
, char *name
);
259 char* fullpath(char *base
, char *name
);
260 char* shortpath(char *base
, char *path
);
261 char* fsfullpath(char *path
);
262 char* fsrootpath(char *path
);
263 char* basepath(char *p
, char **ps
);
264 ulong
hashpath(char *s
);
266 int fsaccess(char *path
, int mode
);
267 int fschmod(char *path
, int mode
);
268 int fschown(char *path
, int uid
, int gid
, int link
);
269 int fslink(char *old
, char *new, int sym
);
270 int fsmkdir(char *path
, int mode
);
271 int fsopen(char *path
, int mode
, int perm
, Ufile
**pf
);
272 int fsreadlink(char *path
, char *buf
, int len
);
273 int fsrename(char *old
, char *new);
274 int fsstat(char *path
, int link
, Ustat
*ps
);
275 int fstruncate(char *path
, vlong size
);
276 int fsunlink(char *path
, int rmdir
);
277 int fsutime(char *path
, int atime
, int mtime
);
279 int sys_access(char *name
, int mode
);
280 int sys_chdir(char *name
);
281 int sys_chroot(char *name
);
282 int sys_chmod(char *name
, int mode
);
283 int sys_chown(char *name
, int uid
, int gid
);
284 int sys_creat(char *name
, int perm
);
285 int sys_lchown(char *name
, int uid
, int gid
);
286 int sys_link(char *old
, char *new);
287 int sys_open(char *name
, int mode
, int perm
);
288 int sys_readlink(char *name
, char *buf
, int len
);
289 int sys_rename(char *from
, char *to
);
290 int sys_rmdir(char *name
);
291 int sys_symlink(char *old
, char *new);
292 int sys_truncate(char *name
, ulong size
);
293 int sys_unlink(char *name
);
294 int sys_utime(char *name
, void *times
);
295 int sys_utimes(char *name
, void *tvp
);
296 int sys_mkdir(char *name
, int mode
);
299 void rootdevinit(void);
300 void sockdevinit(void);
301 int sys_linux_socketcall(int call
, int *arg
);
302 void pipedevinit(void);
303 int sys_pipe(int *fds
);
304 void fddevinit(void);
305 void ptsdevinit(void);
306 void dspdevinit(void);
307 void miscdevinit(void);
308 void ptydevinit(void);
309 void consdevinit(void);
310 void procdevinit(void);