sysfile.ed - vx32 - Local 9vx git repository for patches.
(HTM) git clone git://r-36.net/vx32
(DIR) Log
(DIR) Files
(DIR) Refs
---
sysfile.ed (2134B)
---
1 ,s!lock(f)!lock(\&f->ref.lk)!g
2 ,s!lock(c)!lock(\&c->ref.lk)!g
3 ,s!Chan \*c;!Chan *c = 0;!g
4 ,s!ref(c)!ref(\&c->ref)!g
5 ,s!^read(!doread(!
6 ,s!return read(!return doread(!g
7 /use varargs/,/va_end/c
8 // Plan 9 VX replaced dodgy varargs code
9 v = *(vlong*)&arg[3];
10 .
11 ,s!^write(!dowrite(!
12 ,s!return write(!return dowrite(!g
13 /use varargs/,/va_end/c
14 // Plan 9 VX replaced dodgy varargs code
15 v = *(vlong*)&arg[3];
16 .
17 g/^sys_/ s/ulong \*)/ulong *u)/
18 g/va_list/d
19 /^sysfd2path/s/ulong/uint32/
20 /^syspipe/s/ulong/uint32/
21 /^sysdup/s/ulong/uint32/
22 /^sysopen/s/ulong/uint32/
23 /^sysclose/s/ulong/uint32/
24 /^doread/s/ulong/uint32/
25 /^sys_read/s/ulong/uint32/
26 /^syspread/s/ulong/uint32/
27 /^dowrite/s/ulong/uint32/
28 /^sys_write/s/ulong/uint32/
29 /^syspwrite/s/ulong/uint32/
30 /^sseek/s/ulong/uint32/
31 /ulong/s/ulong/uint32/
32 /^sysseek/s/ulong/uint32/
33 /^sysoseek/s/ulong/uint32/
34 .,/^}/g/ulong/s/ulong/uint32/
35 /^sysfstat/s/ulong/uint32/
36 /^sysstat/s/ulong/uint32/
37 /^syschdir/s/ulong/uint32/
38 /^sysbind/s/ulong/uint32/
39 /^sysmount/s/ulong/uint32/
40 /^sys_mount/s/ulong/uint32/
41 /^sysunmount/s/ulong/uint32/
42 /^syscreate/s/ulong/uint32/
43 /^sysremove/s/ulong/uint32/
44 /^syswstat/s/ulong/uint32/
45 /^sysfwstat/s/ulong/uint32/
46 /^sys_stat/s/ulong/uint32/
47 /^sys_fstat/s/ulong/uint32/
48 /^sys_wstat/s/ulong/uint32/
49 /^sys_fwstat/s/ulong/uint32/
50 /^syspassfd/s/ulong/uint32/
51 /^syspassfd/.
52 /^{/a
53 char *buf;
54 .
55 /validaddr/s/validaddr/buf = uvalidaddr/
56 /(char\*)arg\[1\]/s/(char\*)arg\[1\]/buf/
57 /^syspipe/.
58 /^{/a
59 int *ufd;
60 .
61 /validaddr/s/validaddr/ufd = uvalidaddr/
62 /((long\*)arg\[0\]/s/((long\*)arg\[0\])/ufd/
63 /((long\*)arg\[0\]/s/((long\*)arg\[0\])/ufd/
64 /^sysopen/.
65 /^{/a
66 char *name;
67 .
68 /validaddr/s/validaddr/name = uvalidaddr/
69 /(char\*)arg\[0\]/s/(char\*)arg\[0\]/name/
70 /^dowrite/.
71 /^{/a
72 uchar *p;
73 .
74 /validaddr/s/validaddr/p = uvalidaddr/
75 /(void\*)arg\[1\]/s/(void\*)arg\[1\]/name/
76 /^sseek/s/(/(vlong *ret, /
77 /^sysseek/.
78 /validaddr/s/validaddr\(.*\);/sseek(uvalidaddr&, arg);/
79 /sseek/d
80 $a
81
82 // Plan 9 VX additions
83 long
84 kbind(char *new, char *old, int flag)
85 {
86 return bindmount(1, 0, -1, -1, new, old, flag, nil);
87 }
88
89 long
90 syspassfd(ulong *u)
91 {
92 error("passfd unimplemented");
93 return -1;
94 }
95
96 .