summaryrefslogtreecommitdiff
path: root/emu/port/fns.h
blob: effdbe338fde9141e4e920e534b4476236f9e9ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
ulong	FPcontrol(ulong,ulong);
ulong	FPstatus(ulong,ulong);
void		FPsave(void*);
void		FPrestore(void*);
void		Sleep(Rendez*, int (*)(void*), void*);
int		Wakeup(Rendez*);
void		FPinit(void);
void		addprog(Proc*);
Block*	adjustblock(Block*, int);
Block*	allocb(int);
Block*	bl2mem(uchar*, Block*, int);
int	blocklen(Block*);
char*	c2name(Chan*);
int		canlock(Lock*);
int		canqlock(QLock*);
void		cclose(Chan*);
void		chandevinit(void);
void		chanfree(Chan*);
Dir*		chandirstat(Chan*);
void		cinit(void);
char*	clipread(void);
int		clipwrite(char*);
void		copen(Chan*);
void		cmderror(Cmdbuf*, char*);
int		cread(Chan*, uchar*, int, vlong);
void		cwrite(Chan*, uchar*, int, vlong);
Chan*	cunique(Chan*);
void		cupdate(Chan*, uchar*, int, vlong);
char*	cleanname(char*);
Chan*	cclone(Chan*);
void		closeegrp(Egrp*);
void		closefgrp(Fgrp*);
void		closepgrp(Pgrp*);
void		closesigs(Skeyset*);
int		cmount(Chan*, Chan*, int, char*);
Chan*	createdir(Chan*, Mhead*);
void		cunmount(Chan*, Chan*);
int		decref(Ref*);
long		devbwrite(Chan*, Block*, ulong);
void		devcreate(Chan*, char*, int, ulong);
void		devdir(Chan*, Qid, char*, long, char*, long, Dir*);
long		devdirread(Chan*, char*, long, Dirtab*, int, Devgen*);
void		devinit(void);
int		devno(int, int);
Dev*		devbyname(char*);
void		devpermcheck(char*, ulong, int);
void		devremove(Chan*);
int		devstat(Chan*, uchar*, int, Dirtab*, int, Devgen*);
int		devwstat(Chan*, uchar*, int);
Chan*	devattach(int, char*);
Block*	devbread(Chan*, long, ulong);
Chan*	devclone(Chan*);
Devgen	devgen;
Chan*	devopen(Chan*, int, Dirtab*, int, Devgen*);
Walkqid*	devwalk(Chan*, Chan*, char**, int, Dirtab*, int, Devgen*);
void		disfault(void*, char*);
void		disinit(void*);
int		domount(Chan**, Mhead**);
void	drawqlock(void);
void	drawqunlock(void);
Fgrp*	dupfgrp(Fgrp*);
void		egrpcpy(Egrp*, Egrp*);
int		emptystr(char*);
void		emuinit(void*);
int		eqchan(Chan*, Chan*, int);
int		eqqid(Qid, Qid);
void		error(char*);
void		errorf(char*, ...);
#pragma varargck argpos errorf 1
void		excinit(void);
void		exhausted(char*);
int		export(int, char*, int);
Chan*	fdtochan(Fgrp*, int, int, int, int);
int		findmount(Chan**, Mhead**, int, int, Qid);
void		freeb(Block*);
void		freeblist(Block*);
void		freeskey(Signerkey*);
ulong	getcallerpc(void*);
ulong	getFPcontrol(void);
ulong	getFPstatus(void);
void		gkbdputc(Queue*, int);
int		incref(Ref*);
int		iprint(char*, ...);
void		isdir(Chan*);
int		isdotdot(char*);
int		iseve(void);
int		kannounce(char*, char*);
int		kdial(char*, char*, char*, int*);
int		kproc(char*, void (*)(void*), void*, int);
int		kfgrpclose(Fgrp*, int);
void		ksetenv(char*, char*, int);
void		kstrcpy(char*, char*, int);
void		kstrdup(char**, char*);
long		latin1(uchar*, int);
void		libinit(char*);
void		links(void);
void		lock(Lock*);
Cmdtab*		lookupcmd(Cmdbuf*, Cmdtab*, int);
Block*	mem2bl(uchar*, int);
int		memusehigh(void);
int		memlow(void);
void		mkqid(Qid*, vlong, ulong, int);
Qid	mkuqid(Chan*, Uqid*);
Chan*		mntauth(Chan*, char*);
long		mntversion(Chan*, char*, int, int);
void		mountfree(Mount*);
void		mousetrack(int, int, int, int);
void		muxclose(Mnt*);
Chan*	namec(char*, int, int, ulong);
Chan*	newchan(void);
Cname*	newcname(char*);
Egrp*	newegrp(void);
Fgrp*	newfgrp(Fgrp*);
Mount*	newmount(Mhead*, Chan*, int, char*);
Pgrp*	newpgrp(void);
Proc*	newproc(void);
void		nexterror(void);
void		notkilled(void);
int		openmode(ulong);
void		osblock(void);
void*		oscmd(char**, int, char*, int*);
int		oscmdwait(void*, char*, int);
int		oscmdkill(void*);
void		oscmdfree(void*);
void		oserror(void);
void		oserrstr(char*, uint);
void		oslongjmp(void*, osjmpbuf, int);
long		osmillisec(void);
int		osmillisleep(ulong);
void		osready(Proc*);
int		limbosleep(ulong);
vlong	osusectime(void);
Block*	packblock(Block*);
Block*	padblock(Block*, int);
void		panic(char*, ...);
Cmdbuf*		parsecmd(char*, int);
void		pexit(char*, int);
void		pgrpcpy(Pgrp*, Pgrp*);
int		progfdprint(Chan*, int, int, char*, int);
void		putenvq(char*, char*, int);
void		putenvqv(char*, char**, int, int);
void		putmhead(Mhead*);
Block*	pullupblock(Block*, int);
Block*	pullupqueue(Queue*, int);
void		qaddlist(Queue*, Block*);
Block*	qbread(Queue*, int);
long		qbwrite(Queue*, Block*);
int		qcanread(Queue*);
void		qclose(Queue*);
int		qisclosed(Queue*);
int		qconsume(Queue*, void*, int);
Block*	qcopy(Queue*, int, ulong);
int		qdiscard(Queue*, int);
void		qflush(Queue*);
void		qfree(Queue*);
int		qfull(Queue*);
Block*	qget(Queue*);
void		qhangup(Queue*, char*);
int		qiwrite(Queue*, void*, int);
int		qlen(Queue*);
void		qlock(QLock*);
void		qnoblock(Queue*, int);
Queue*	qopen(int, int, void (*)(void*), void*);
int		qpass(Queue*, Block*);
int		qproduce(Queue*, void*, int);
void		qputback(Queue*, Block*);
long		qread(Queue*, void*, int);
Block*	qremove(Queue*);
void		qreopen(Queue*);
void		qsetlimit(Queue*, int);
int		qstate(Queue*);
void		qunlock(QLock*);
int		qwindow(Queue*);
int		qwrite(Queue*, void*, int);
ulong	randomread(void *xp, ulong n);
void	randominit(void);
int		readkbd(void);
int		readnum(ulong, char*, ulong, ulong, int);
int		readnum_vlong(ulong, char*, ulong, vlong, int);
int		readstr(ulong, char*, ulong, char*);
#define	seconds()	(osusectime()/1000000)
void		seterror(char*, ...);
void		setid(char*, int);
void	setpointer(int, int);
char*	skipslash(char*);
void		srvrtinit(void);
void		swiproc(Proc*, int);
long		unionread(Chan*, void*, long);
void		unlock(Lock*);
Uqid*	uqidalloc(Uqidtab*, Chan*);
void		uqidinit(Uqidtab*);
void		freeuqid(Uqidtab*, Uqid*);
void		validname(char*, int);
void		validstat(uchar*, int);
void		validwstatname(char*);
void		vmachine(void*);
int		walk(Chan**, char**, int, int, int*);
void		cleanexit(int);
void		oshostintr(Proc*);
void		osenter(void);
void		osleave(void);
void		oslopri(void);
void		ospause(void);
void		osyield(void);
void		osreboot(char*, char**);
ulong	poolmaxsize(void);
Pool*	poolmk(char*, int, int, int);
void		hnputv(void*, vlong);
void		hnputl(void*, ulong);
void		hnputs(void*, ushort);
vlong		nhgetv(void*);
ulong		nhgetl(void*);
ushort		nhgets(void*);
void*	smalloc(size_t);
void*	kmalloc(size_t);

/* Namespace Emulation */
int		kbind(char*, char*, int);
int		kclose(int);
int		kcreate(char*, int, ulong);
int		kdup(int, int);
int		kfstat(int, uchar*, int);
int		kfwstat(int, uchar*, int);
int		kmount(int, int, char*, int, char*);
int		kunmount(char*, char*);
int		kopen(char*, int);
long		kread(int, void*, long);
int		kremove(char*);
vlong	kseek(int, vlong, int);
int		kstat(char*, uchar*, int);
long		kwrite(int, void*, long);
int		kwstat(char*, uchar*, int);
Dir*		kdirstat(char*);
Dir*		kdirfstat(int);
int		kdirwstat(char*, Dir*);
int		kdirfwstat(int, Dir*);
long		kdirread(int, Dir**);
int		klisten(char*, char*);

Cname*	addelem(Cname*, char*);
void		cleancname(Cname*);
void		cnameclose(Cname*);

#pragma varargck argpos iprint 1