Blame


1 b8c14089 2003-11-23 devnull typedef struct Exec Exec;
2 b8c14089 2003-11-23 devnull typedef struct Rule Rule;
3 b8c14089 2003-11-23 devnull typedef struct Ruleset Ruleset;
4 b8c14089 2003-11-23 devnull
5 b8c14089 2003-11-23 devnull /*
6 b8c14089 2003-11-23 devnull * Object
7 b8c14089 2003-11-23 devnull */
8 b8c14089 2003-11-23 devnull enum
9 b8c14089 2003-11-23 devnull {
10 b8c14089 2003-11-23 devnull OArg,
11 b8c14089 2003-11-23 devnull OAttr,
12 b8c14089 2003-11-23 devnull OData,
13 b8c14089 2003-11-23 devnull ODst,
14 b8c14089 2003-11-23 devnull OPlumb,
15 b8c14089 2003-11-23 devnull OSrc,
16 b8c14089 2003-11-23 devnull OType,
17 cbeb0b26 2006-04-01 devnull OWdir
18 b8c14089 2003-11-23 devnull };
19 b8c14089 2003-11-23 devnull
20 b8c14089 2003-11-23 devnull /*
21 b8c14089 2003-11-23 devnull * Verbs
22 b8c14089 2003-11-23 devnull */
23 b8c14089 2003-11-23 devnull enum
24 b8c14089 2003-11-23 devnull {
25 b8c14089 2003-11-23 devnull VAdd, /* apply to OAttr only */
26 b8c14089 2003-11-23 devnull VClient,
27 b8c14089 2003-11-23 devnull VDelete, /* apply to OAttr only */
28 b8c14089 2003-11-23 devnull VIs,
29 b8c14089 2003-11-23 devnull VIsdir,
30 b8c14089 2003-11-23 devnull VIsfile,
31 b8c14089 2003-11-23 devnull VMatches,
32 b8c14089 2003-11-23 devnull VSet,
33 b8c14089 2003-11-23 devnull VStart,
34 cbeb0b26 2006-04-01 devnull VTo
35 b8c14089 2003-11-23 devnull };
36 b8c14089 2003-11-23 devnull
37 b8c14089 2003-11-23 devnull struct Rule
38 b8c14089 2003-11-23 devnull {
39 b8c14089 2003-11-23 devnull int obj;
40 b8c14089 2003-11-23 devnull int verb;
41 b8c14089 2003-11-23 devnull char *arg; /* unparsed string of all arguments */
42 b8c14089 2003-11-23 devnull char *qarg; /* quote-processed arg string */
43 b8c14089 2003-11-23 devnull Reprog *regex;
44 b8c14089 2003-11-23 devnull };
45 b8c14089 2003-11-23 devnull
46 b8c14089 2003-11-23 devnull struct Ruleset
47 b8c14089 2003-11-23 devnull {
48 b8c14089 2003-11-23 devnull int npat;
49 b8c14089 2003-11-23 devnull int nact;
50 b8c14089 2003-11-23 devnull Rule **pat;
51 b8c14089 2003-11-23 devnull Rule **act;
52 b8c14089 2003-11-23 devnull char *port;
53 b8c14089 2003-11-23 devnull };
54 b8c14089 2003-11-23 devnull
55 b8c14089 2003-11-23 devnull struct Exec
56 b8c14089 2003-11-23 devnull {
57 b8c14089 2003-11-23 devnull Plumbmsg *msg;
58 b8c14089 2003-11-23 devnull char *match[10];
59 b8c14089 2003-11-23 devnull int p0; /* begin and end of match */
60 b8c14089 2003-11-23 devnull int p1;
61 b8c14089 2003-11-23 devnull int clearclick; /* click was expanded; remove attribute */
62 b8c14089 2003-11-23 devnull int setdata; /* data should be set to $0 */
63 b8c14089 2003-11-23 devnull int holdforclient; /* exec'ing client; keep message until port is opened */
64 b8c14089 2003-11-23 devnull /* values of $variables */
65 b8c14089 2003-11-23 devnull char *file;
66 b8c14089 2003-11-23 devnull char *dir;
67 b8c14089 2003-11-23 devnull };
68 b8c14089 2003-11-23 devnull
69 b8c14089 2003-11-23 devnull void parseerror(char*, ...);
70 b8c14089 2003-11-23 devnull void error(char*, ...);
71 b8c14089 2003-11-23 devnull void* emalloc(long);
72 b8c14089 2003-11-23 devnull void* erealloc(void*, long);
73 b8c14089 2003-11-23 devnull char* estrdup(char*);
74 b8c14089 2003-11-23 devnull Ruleset** readrules(char*, int);
75 b0aecb4b 2019-10-29 crossd void startfsys(int);
76 b8c14089 2003-11-23 devnull Exec* matchruleset(Plumbmsg*, Ruleset*);
77 b8c14089 2003-11-23 devnull void freeexec(Exec*);
78 b8c14089 2003-11-23 devnull char* startup(Ruleset*, Exec*);
79 b8c14089 2003-11-23 devnull char* printrules(void);
80 b8c14089 2003-11-23 devnull void addport(char*);
81 b8c14089 2003-11-23 devnull char* writerules(char*, int);
82 b8c14089 2003-11-23 devnull char* expand(Exec*, char*, char**);
83 b8c14089 2003-11-23 devnull void makeports(Ruleset*[]);
84 b8c14089 2003-11-23 devnull void printinputstack(void);
85 b8c14089 2003-11-23 devnull int popinput(void);
86 b8c14089 2003-11-23 devnull
87 b8c14089 2003-11-23 devnull Ruleset **rules;
88 b8c14089 2003-11-23 devnull char *user;
89 b8c14089 2003-11-23 devnull char *home;
90 b8c14089 2003-11-23 devnull jmp_buf parsejmp;
91 b8c14089 2003-11-23 devnull char *lasterror;
92 b8c14089 2003-11-23 devnull char **ports;
93 b8c14089 2003-11-23 devnull int nports;
94 32f69c36 2003-12-11 devnull int debug;