diff options
author | cinap_lenrek <cinap_lenrek@localhost> | 2011-04-14 17:27:24 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@localhost> | 2011-04-14 17:27:24 +0000 |
commit | a150899221a5badff9740703b754f901b4f52762 (patch) | |
tree | 3d6911874b0ee763e40490d04f56fc09d89ccfa6 /acme/bin/source/win/dat.h | |
parent | 71cfa9c637386ebe00fc6d1bf6215db6657559f4 (diff) | |
download | plan9front-a150899221a5badff9740703b754f901b4f52762.tar.xz |
fill /acme
Diffstat (limited to 'acme/bin/source/win/dat.h')
-rw-r--r-- | acme/bin/source/win/dat.h | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/acme/bin/source/win/dat.h b/acme/bin/source/win/dat.h new file mode 100644 index 000000000..38d31dcf0 --- /dev/null +++ b/acme/bin/source/win/dat.h @@ -0,0 +1,95 @@ +typedef struct Fsevent Fsevent; +typedef struct Event Event; +typedef struct Message Message; +typedef struct Window Window; + +enum +{ + STACK = 8192, + NPIPEDATA = 8000, + NPIPE = NPIPEDATA+32, + /* EVENTSIZE is really 256 in acme, but we use events internally and want bigger buffers */ + EVENTSIZE = 8192, + NEVENT = 5, +}; + +struct Fsevent +{ + int type; + void *r; +}; + +struct Event +{ + int c1; + int c2; + int q0; + int q1; + int flag; + int nb; + int nr; + char b[EVENTSIZE*UTFmax+1]; + Rune r[EVENTSIZE+1]; +}; + +struct Window +{ + /* file descriptors */ + int ctl; + int event; + int addr; + int data; + int body; + + /* event input */ + char buf[512]; + char *bufp; + int nbuf; + Event e[NEVENT]; + + int id; + int open; + Channel *cevent; +}; + +extern Window* newwindow(void); +extern int winopenfile(Window*, char*); +extern void wintagwrite(Window*, char*, int); +extern void winname(Window*, char*); +extern void winwriteevent(Window*, Event*); +extern int winread(Window*, uint, uint, char*); +extern int windel(Window*, int); +extern void wingetevent(Window*, Event*); +extern void wineventproc(void*); +extern void winclean(Window*); +extern int winselect(Window*, char*, int); +extern int winsetaddr(Window*, char*, int); +extern void windormant(Window*); +extern void winsetdump(Window*, char*, char*); + +extern void ctlprint(int, char*, ...); +extern void* emalloc(uint); +extern char* estrdup(char*); +extern char* estrstrdup(char*, char*); +extern char* egrow(char*, char*, char*); +extern char* eappend(char*, char*, char*); +extern void error(char*, ...); + +extern void startpipe(void); +extern void sendit(char*); +extern void execevent(Window *w, Event *e, int (*)(Window*, char*)); + +extern void mountcons(void); +extern void fsloop(void*); + +extern int newpipewin(int, char*); +extern void startpipe(void); +extern int pipecommand(Window*, char*); +extern void pipectl(void*); + +#pragma varargck argpos error 1 +#pragma varargck argpos ctlprint 2 + +extern Window *win; +extern Channel *fschan, *writechan; + |