1 /* 2 * This file was generated by the mknodes program. 3 */ 4 5 #include <zircon/types.h> 6 7 #define NCMD 0 8 #define NPIPE 1 9 #define NREDIR 2 10 #define NBACKGND 3 11 #define NSUBSHELL 4 12 #define NAND 5 13 #define NOR 6 14 #define NSEMI 7 15 #define NIF 8 16 #define NWHILE 9 17 #define NUNTIL 10 18 #define NFOR 11 19 #define NCASE 12 20 #define NCLIST 13 21 #define NDEFUN 14 22 #define NARG 15 23 #define NTO 16 24 #define NCLOBBER 17 25 #define NFROM 18 26 #define NFROMTO 19 27 #define NAPPEND 20 28 #define NTOFD 21 29 #define NFROMFD 22 30 #define NHERE 23 31 #define NXHERE 24 32 #define NNOT 25 33 34 35 36 struct ncmd { 37 int type; 38 int linno; 39 union node *assign; 40 union node *args; 41 union node *redirect; 42 }; 43 44 45 struct npipe { 46 int type; 47 int backgnd; 48 struct nodelist *cmdlist; 49 }; 50 51 52 struct nredir { 53 int type; 54 int linno; 55 union node *n; 56 union node *redirect; 57 }; 58 59 60 struct nbinary { 61 int type; 62 union node *ch1; 63 union node *ch2; 64 }; 65 66 67 struct nif { 68 int type; 69 union node *test; 70 union node *ifpart; 71 union node *elsepart; 72 }; 73 74 75 struct nfor { 76 int type; 77 int linno; 78 union node *args; 79 union node *body; 80 char *var; 81 }; 82 83 84 struct ncase { 85 int type; 86 int linno; 87 union node *expr; 88 union node *cases; 89 }; 90 91 92 struct nclist { 93 int type; 94 union node *next; 95 union node *pattern; 96 union node *body; 97 }; 98 99 100 struct ndefun { 101 int type; 102 int linno; 103 char *text; 104 union node *body; 105 }; 106 107 108 struct narg { 109 int type; 110 union node *next; 111 char *text; 112 struct nodelist *backquote; 113 }; 114 115 116 struct nfile { 117 int type; 118 union node *next; 119 int fd; 120 union node *fname; 121 char *expfname; 122 }; 123 124 125 struct ndup { 126 int type; 127 union node *next; 128 int fd; 129 int dupfd; 130 union node *vname; 131 }; 132 133 134 struct nhere { 135 int type; 136 union node *next; 137 int fd; 138 union node *doc; 139 }; 140 141 142 struct nnot { 143 int type; 144 union node *com; 145 }; 146 147 148 union node { 149 int type; 150 struct ncmd ncmd; 151 struct npipe npipe; 152 struct nredir nredir; 153 struct nbinary nbinary; 154 struct nif nif; 155 struct nfor nfor; 156 struct ncase ncase; 157 struct nclist nclist; 158 struct ndefun ndefun; 159 struct narg narg; 160 struct nfile nfile; 161 struct ndup ndup; 162 struct nhere nhere; 163 struct nnot nnot; 164 }; 165 166 167 struct nodelist { 168 struct nodelist *next; 169 union node *n; 170 }; 171 172 173 struct funcnode { 174 int count; 175 union node n; 176 }; 177 178 179 struct funcnode *copyfunc(union node *); 180 void freefunc(struct funcnode *); 181 zx_status_t codec_encode(struct nodelist *nlist, zx_handle_t *vmo); 182 struct nodelist* codec_decode(char *buffer, size_t length); 183