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