Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
typedef struct Fsevent Fsevent;
2
typedef struct Event Event;
3
typedef struct Message Message;
4
typedef struct Window Window;
5
 
6
enum
7
{
8
	STACK		= 8192,
9
	NPIPEDATA	= 8000,
10
	NPIPE		= NPIPEDATA+32,
11
	/* EVENTSIZE is really 256 in acme, but we use events internally and want bigger buffers */
12
	EVENTSIZE	= 8192,
13
	NEVENT		= 5,
14
};
15
 
16
struct Fsevent
17
{
18
	int	type;
19
	void	*r;
20
};
21
 
22
struct Event
23
{
24
	int	c1;
25
	int	c2;
26
	int	q0;
27
	int	q1;
28
	int	flag;
29
	int	nb;
30
	int	nr;
31
	char	b[EVENTSIZE*UTFmax+1];
32
	Rune	r[EVENTSIZE+1];
33
};
34
 
35
struct Window
36
{
37
	/* file descriptors */
38
	int		ctl;
39
	int		event;
40
	int		addr;
41
	int		data;
42
	int		body;
43
 
44
	/* event input */
45
	char		buf[512];
46
	char		*bufp;
47
	int		nbuf;
48
	Event	e[NEVENT];
49
 
50
	int		id;
51
	int		open;
52
	Channel	*cevent;
53
};
54
 
55
extern	Window*	newwindow(void);
56
extern	int		winopenfile(Window*, char*);
57
extern	void		wintagwrite(Window*, char*, int);
58
extern	void		winname(Window*, char*);
59
extern	void		winwriteevent(Window*, Event*);
60
extern	int		winread(Window*, uint, uint, char*);
61
extern	int		windel(Window*, int);
62
extern	void		wingetevent(Window*, Event*);
63
extern	void		wineventproc(void*);
64
extern	void		winclean(Window*);
65
extern	int		winselect(Window*, char*, int);
66
extern	int		winsetaddr(Window*, char*, int);
67
extern	void		windormant(Window*);
68
extern	void		winsetdump(Window*, char*, char*);
69
 
70
extern	void		ctlprint(int, char*, ...);
71
extern	void*	emalloc(uint);
72
extern	char*	estrdup(char*);
73
extern	char*	estrstrdup(char*, char*);
74
extern	char*	egrow(char*, char*, char*);
75
extern	char*	eappend(char*, char*, char*);
76
extern	void		error(char*, ...);
77
 
78
extern	void		startpipe(void);
79
extern	void		sendit(char*);
80
extern	void		execevent(Window *w, Event *e, int (*)(Window*, char*));
81
 
82
extern	void		mountcons(void);
83
extern	void		fsloop(void*);
84
 
85
extern	int		newpipewin(int, char*);
86
extern	void		startpipe(void);
87
extern	int		pipecommand(Window*, char*);
88
extern	void		pipectl(void*);
89
 
90
#pragma	varargck	argpos	error	1
91
#pragma	varargck	argpos	ctlprint	2
92
 
93
extern	Window	*win;
94
extern	Channel	*fschan, *writechan;
95