Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_fixcpp/sys/src/cmd/vnc/compat.h – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#define Rendez KRendez
2
 
3
typedef struct Block	Block;
4
typedef struct Chan	Chan;
5
typedef struct Cname	Cname;
6
typedef struct Dev	Dev;
7
typedef struct Dirtab	Dirtab;
8
typedef struct Proc	Proc;
9
typedef struct Ref	Ref;
10
typedef struct Rendez	Rendez;
11
typedef struct Walkqid Walkqid;
12
typedef int    Devgen(Chan*, Dirtab*, int, int, Dir*);
13
 
14
enum
15
{
16
	KNAMELEN	= 28,
17
	NERR		= 15,
18
 
19
	COPEN		= 0x0001,		/* for i/o */
20
	CFREE		= 0x0010,		/* not in use */
21
};
22
 
23
struct Ref
24
{
25
	Lock;
26
	int	ref;
27
};
28
 
29
struct Rendez
30
{
31
	Lock;
32
	Proc	*p;
33
};
34
 
35
struct Chan
36
{
37
	Ref;
38
	Chan*	next;			/* allocation */
39
	Chan*	link;
40
	vlong	offset;			/* in file */
41
	ushort	type;
42
	ulong	dev;
43
	ushort	mode;			/* read/write */
44
	ushort	flag;
45
	Qid	qid;
46
	int	fid;			/* for devmnt */
47
	ulong	iounit;			/* chunk size for i/o; 0==default */
48
	void*	aux;
49
	Cname	*name;
50
};
51
 
52
struct Cname
53
{
54
	Ref;
55
	int	alen;			/* allocated length */
56
	int	len;			/* strlen(s) */
57
	char	*s;
58
};
59
 
60
struct Dev
61
{
62
	int	dc;
63
	char*	name;
64
 
65
	void	(*reset)(void);
66
	void	(*init)(void);
67
	Chan*	(*attach)(char*);
68
	Walkqid*	(*walk)(Chan*, Chan*, char**, int);
69
	int	(*stat)(Chan*, uchar*, int);
70
	Chan*	(*open)(Chan*, int);
71
	void	(*create)(Chan*, char*, int, ulong);
72
	void	(*close)(Chan*);
73
	long	(*read)(Chan*, void*, long, vlong);
74
	Block*	(*bread)(Chan*, long, ulong);
75
	long	(*write)(Chan*, void*, long, vlong);
76
	long	(*bwrite)(Chan*, Block*, ulong);
77
	void	(*remove)(Chan*);
78
	int	(*wstat)(Chan*, uchar*, int);
79
};
80
 
81
struct Dirtab
82
{
83
	char	name[KNAMELEN];
84
	Qid	qid;
85
	vlong length;
86
	long	perm;
87
};
88
 
89
struct Walkqid
90
{
91
	Chan	*clone;
92
	int	nqid;
93
	Qid	qid[1];
94
};
95
 
96
struct Proc
97
{
98
	Lock	rlock;		/* for rendsleep, rendwakeup, intr */
99
	Rendez	*r;
100
	int	intr;
101
 
102
	char	name[KNAMELEN];
103
	char	*user;
104
	char	error[ERRMAX];
105
	int	nerrlab;
106
	jmp_buf	errlab[NERR];
107
	char	genbuf[128];	/* buffer used e.g. for last name element from namec */
108
};
109
 
110
#define DEVDOTDOT -1
111
 
112
extern	Proc	**privup;
113
#define	up	(*privup)
114
extern  char	*eve;
115
extern	Dev*	devtab[];
116
 
117
Chan*		cclone(Chan*);
118
void		cclose(Chan*);
119
void		cnameclose(Cname*);
120
int		decref(Ref*);
121
Chan*		devattach(int, char*);
122
Block*		devbread(Chan*, long, ulong);
123
long		devbwrite(Chan*, Block*, ulong);
124
void		devcreate(Chan*, char*, int, ulong);
125
void		devdir(Chan*, Qid, char*, vlong, char*, long, Dir*);
126
long		devdirread(Chan*, char*, long, Dirtab*, int, Devgen*);
127
Devgen		devgen;
128
void		devinit(void);
129
Chan*		devopen(Chan*, int, Dirtab*, int, Devgen*);
130
void		devremove(Chan*);
131
void		devreset(void);
132
int		devstat(Chan*, uchar*, int, Dirtab*, int, Devgen*);
133
Walkqid*		devwalk(Chan*, Chan*, char**, int, Dirtab*, int, Devgen*);
134
int		devwstat(Chan*, uchar*, int);
135
void		error(char*);
136
int		incref(Ref*);
137
void		isdir(Chan*);
138
void		kproc(char*, void(*)(void*), void*);
139
void		mkqid(Qid*, vlong, ulong, int);
140
void		nexterror(void);
141
Chan*		newchan(void);
142
Cname*		newcname(char*);
143
int		openmode(ulong);
144
void		panic(char*, ...);
145
int		readstr(ulong, char*, ulong, char*);
146
long		seconds(void);
147
void*		smalloc(ulong);
148
 
149
#define		poperror()	up->nerrlab--
150
#define		waserror()	(up->nerrlab++, setjmp(up->errlab[up->nerrlab-1]))
151
 
152
void		initcompat(void);
153
void		rendintr(void *v);
154
void		rendclearintr(void);
155
void		rendsleep(Rendez*, int(*)(void*), void*);
156
int		rendwakeup(Rendez*);
157
void		kexit(void);
158
int		sysexport(int fd, Chan **roots, int nroots);
159
int		errdepth(int ed);
160
void		newup(char *name);
161
 
162
int		exporter(Dev**, int*, int*);
163
int		mounter(char *mntpt, int how, int fds, int n);
164
void		shutdown(void);
165
 
166
void		screeninit(int, int, char*);
167
 
168
#pragma	varargck	argpos	panic		1