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