xref: /plan9-contrib/sys/src/cmd/6c/sys.c (revision 58da3067adcdccaaa043d0bfde28ba83b7ced07d)
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
13 getpid(void)
14 {
15 	_sysargs[0] = -1;
16 	return _callsys();
17 }
18 
19 long
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
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
40 close(int fd)
41 {
42 	_sysargs[0] = CLOSE;
43 	_sysargs[1] = fd;
44 	return _callsys();
45 }
46 
47 int
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
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
67 _exits(char *s)
68 {
69 	_sysargs[0] = EXITS;
70 	_sysargs[1] = s!=nil? strlen(s): 0;
71 	_callsys();
72 }
73 
74 int
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
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
93 brk_(void *a)
94 {
95 	_sysargs[0] = BRK_;
96 	_sysargs[1] = (vlong)a;
97 	return _callsys();
98 }
99 
100 void*
101 sbrk(ulong n)
102 {
103 	_sysargs[0] = -2;
104 	_sysargs[1] = n;
105 	return (void*)_callsys();
106 }
107