summaryrefslogtreecommitdiff
path: root/sys/src/cmd/vnc/compat.h
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/cmd/vnc/compat.h
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/cmd/vnc/compat.h')
-rwxr-xr-xsys/src/cmd/vnc/compat.h168
1 files changed, 168 insertions, 0 deletions
diff --git a/sys/src/cmd/vnc/compat.h b/sys/src/cmd/vnc/compat.h
new file mode 100755
index 000000000..6c3acfe6c
--- /dev/null
+++ b/sys/src/cmd/vnc/compat.h
@@ -0,0 +1,168 @@
+#define Rendez KRendez
+
+typedef struct Block Block;
+typedef struct Chan Chan;
+typedef struct Cname Cname;
+typedef struct Dev Dev;
+typedef struct Dirtab Dirtab;
+typedef struct Proc Proc;
+typedef struct Ref Ref;
+typedef struct Rendez Rendez;
+typedef struct Walkqid Walkqid;
+typedef int Devgen(Chan*, Dirtab*, int, int, Dir*);
+
+enum
+{
+ KNAMELEN = 28,
+ NERR = 15,
+
+ COPEN = 0x0001, /* for i/o */
+ CFREE = 0x0010, /* not in use */
+};
+
+struct Ref
+{
+ Lock;
+ int ref;
+};
+
+struct Rendez
+{
+ Lock;
+ Proc *p;
+};
+
+struct Chan
+{
+ Ref;
+ Chan* next; /* allocation */
+ Chan* link;
+ vlong offset; /* in file */
+ ushort type;
+ ulong dev;
+ ushort mode; /* read/write */
+ ushort flag;
+ Qid qid;
+ int fid; /* for devmnt */
+ ulong iounit; /* chunk size for i/o; 0==default */
+ void* aux;
+ Cname *name;
+};
+
+struct Cname
+{
+ Ref;
+ int alen; /* allocated length */
+ int len; /* strlen(s) */
+ char *s;
+};
+
+struct Dev
+{
+ int dc;
+ char* name;
+
+ void (*reset)(void);
+ void (*init)(void);
+ Chan* (*attach)(char*);
+ Walkqid* (*walk)(Chan*, Chan*, char**, int);
+ int (*stat)(Chan*, uchar*, int);
+ Chan* (*open)(Chan*, int);
+ void (*create)(Chan*, char*, int, ulong);
+ void (*close)(Chan*);
+ long (*read)(Chan*, void*, long, vlong);
+ Block* (*bread)(Chan*, long, ulong);
+ long (*write)(Chan*, void*, long, vlong);
+ long (*bwrite)(Chan*, Block*, ulong);
+ void (*remove)(Chan*);
+ int (*wstat)(Chan*, uchar*, int);
+};
+
+struct Dirtab
+{
+ char name[KNAMELEN];
+ Qid qid;
+ vlong length;
+ long perm;
+};
+
+struct Walkqid
+{
+ Chan *clone;
+ int nqid;
+ Qid qid[1];
+};
+
+struct Proc
+{
+ Lock rlock; /* for rendsleep, rendwakeup, intr */
+ Rendez *r;
+ int intr;
+
+ char name[KNAMELEN];
+ char *user;
+ char error[ERRMAX];
+ int nerrlab;
+ jmp_buf errlab[NERR];
+ char genbuf[128]; /* buffer used e.g. for last name element from namec */
+};
+
+#define DEVDOTDOT -1
+
+extern Proc **privup;
+#define up (*privup)
+extern char *eve;
+extern Dev* devtab[];
+
+Chan* cclone(Chan*);
+void cclose(Chan*);
+void cnameclose(Cname*);
+int decref(Ref*);
+Chan* devattach(int, char*);
+Block* devbread(Chan*, long, ulong);
+long devbwrite(Chan*, Block*, ulong);
+void devcreate(Chan*, char*, int, ulong);
+void devdir(Chan*, Qid, char*, vlong, char*, long, Dir*);
+long devdirread(Chan*, char*, long, Dirtab*, int, Devgen*);
+Devgen devgen;
+void devinit(void);
+Chan* devopen(Chan*, int, Dirtab*, int, Devgen*);
+void devremove(Chan*);
+void devreset(void);
+int devstat(Chan*, uchar*, int, Dirtab*, int, Devgen*);
+Walkqid* devwalk(Chan*, Chan*, char**, int, Dirtab*, int, Devgen*);
+int devwstat(Chan*, uchar*, int);
+void error(char*);
+int incref(Ref*);
+void isdir(Chan*);
+void kproc(char*, void(*)(void*), void*);
+void mkqid(Qid*, vlong, ulong, int);
+void nexterror(void);
+Chan* newchan(void);
+Cname* newcname(char*);
+int openmode(ulong);
+void panic(char*, ...);
+int readstr(ulong, char*, ulong, char*);
+long seconds(void);
+void* smalloc(ulong);
+
+#define poperror() up->nerrlab--
+#define waserror() (up->nerrlab++, setjmp(up->errlab[up->nerrlab-1]))
+
+void initcompat(void);
+void rendintr(void *v);
+void rendclearintr(void);
+void rendsleep(Rendez*, int(*)(void*), void*);
+int rendwakeup(Rendez*);
+void kexit(void);
+int sysexport(int fd, Chan **roots, int nroots);
+int errdepth(int ed);
+void newup(char *name);
+
+int exporter(Dev**, int*, int*);
+int mounter(char *mntpt, int how, int fds, int n);
+void shutdown(void);
+
+void screeninit(int, int, char*);
+
+#pragma varargck argpos panic 1