1 #include <u.h>
2 #include <libc.h>
3 #include "/sys/src/libc/9syscall/sys.h"
4
5 vlong _sysargs[6*4];
6 vlong _callsys(void);
7
8 /*
9 * syscalls
10 */
11
12 int
getpid(void)13 getpid(void)
14 {
15 _sysargs[0] = -1;
16 return _callsys();
17 }
18
19 long
pread(int fd,void * a,long n,vlong)20 pread(int fd, void *a, long n, vlong)
21 {
22 _sysargs[0] = PREAD;
23 _sysargs[1] = fd;
24 _sysargs[2] = (vlong)a;
25 _sysargs[3] = n;
26 return _callsys();
27 }
28
29 long
pwrite(int fd,void * a,long n,vlong)30 pwrite(int fd, void *a, long n, vlong)
31 {
32 _sysargs[0] = PWRITE;
33 _sysargs[1] = fd;
34 _sysargs[2] = (vlong)a;
35 _sysargs[3] = n;
36 return _callsys();
37 }
38
39 int
close(int fd)40 close(int fd)
41 {
42 _sysargs[0] = CLOSE;
43 _sysargs[1] = fd;
44 return _callsys();
45 }
46
47 int
open(char * name,int mode)48 open(char *name, int mode)
49 {
50 _sysargs[0] = OPEN;
51 _sysargs[1] = (vlong)name;
52 _sysargs[2] = mode;
53 return _callsys();
54 }
55
56 int
create(char * f,int mode,ulong perm)57 create(char *f, int mode, ulong perm)
58 {
59 _sysargs[0] = CREATE;
60 _sysargs[1] = (vlong)f;
61 _sysargs[2] = mode;
62 _sysargs[3] = perm;
63 return _callsys();
64 }
65
66 void
_exits(char * s)67 _exits(char *s)
68 {
69 _sysargs[0] = EXITS;
70 _sysargs[1] = s!=nil? strlen(s): 0;
71 _callsys();
72 }
73
74 int
dup(int f,int t)75 dup(int f, int t)
76 {
77 _sysargs[0] = DUP;
78 _sysargs[1] = f;
79 _sysargs[2] = t;
80 return _callsys();
81 }
82
83 int
errstr(char * buf,uint n)84 errstr(char *buf, uint n)
85 {
86 _sysargs[0] = ERRSTR;
87 _sysargs[1] = (vlong)buf;
88 _sysargs[2] = n;
89 return _callsys();
90 }
91
92 int
brk_(void * a)93 brk_(void *a)
94 {
95 _sysargs[0] = BRK_;
96 _sysargs[1] = (vlong)a;
97 return _callsys();
98 }
99
100 void*
sbrk(ulong n)101 sbrk(ulong n)
102 {
103 _sysargs[0] = -2;
104 _sysargs[1] = n;
105 return (void*)_callsys();
106 }
107