xref: /plan9/sys/src/cmd/6c/sys.c (revision e887ea33cf0b0f75911958e2324340660b13e9eb)
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