debuggers.hg

view tools/libxl/libxlu_cfg_l.h @ 22855:1d1eec7e1fb4

xl: Perform minimal validation of virtual disk file while parsing config file

This patch performs some very basic validation on the virtual disk
file passed through the config file. This validation ensures that we
don't go too far with the initialization like spawn qemu and more
while there could be some potentially fundamental issues.

[ Patch fixed up to work with PHYSTYPE_EMPTY 22808:6ec61438713a -iwj ]

Signed-off-by: Kamala Narasimhan <kamala.narasimhan@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
author Kamala Narasimhan <kamala.narasimhan@gmail.com>
date Tue Jan 25 18:09:49 2011 +0000 (2011-01-25)
parents cb94dbe20f97
children
line source
1 #ifndef xlu__cfg_yyHEADER_H
2 #define xlu__cfg_yyHEADER_H 1
3 #define xlu__cfg_yyIN_HEADER 1
5 #line 6 "libxlu_cfg_l.h"
7 #line 8 "libxlu_cfg_l.h"
9 #define YY_INT_ALIGNED short int
11 /* A lexical scanner generated by flex */
13 #define FLEX_SCANNER
14 #define YY_FLEX_MAJOR_VERSION 2
15 #define YY_FLEX_MINOR_VERSION 5
16 #define YY_FLEX_SUBMINOR_VERSION 35
17 #if YY_FLEX_SUBMINOR_VERSION > 0
18 #define FLEX_BETA
19 #endif
21 /* First, we deal with platform-specific or compiler-specific issues. */
23 /* begin standard C headers. */
24 #include <stdio.h>
25 #include <string.h>
26 #include <errno.h>
27 #include <stdlib.h>
29 /* end standard C headers. */
31 /* flex integer type definitions */
33 #ifndef FLEXINT_H
34 #define FLEXINT_H
36 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
38 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
40 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
41 * if you want the limit (max/min) macros for int types.
42 */
43 #ifndef __STDC_LIMIT_MACROS
44 #define __STDC_LIMIT_MACROS 1
45 #endif
47 #include <inttypes.h>
48 typedef int8_t flex_int8_t;
49 typedef uint8_t flex_uint8_t;
50 typedef int16_t flex_int16_t;
51 typedef uint16_t flex_uint16_t;
52 typedef int32_t flex_int32_t;
53 typedef uint32_t flex_uint32_t;
54 #else
55 typedef signed char flex_int8_t;
56 typedef short int flex_int16_t;
57 typedef int flex_int32_t;
58 typedef unsigned char flex_uint8_t;
59 typedef unsigned short int flex_uint16_t;
60 typedef unsigned int flex_uint32_t;
62 /* Limits of integral types. */
63 #ifndef INT8_MIN
64 #define INT8_MIN (-128)
65 #endif
66 #ifndef INT16_MIN
67 #define INT16_MIN (-32767-1)
68 #endif
69 #ifndef INT32_MIN
70 #define INT32_MIN (-2147483647-1)
71 #endif
72 #ifndef INT8_MAX
73 #define INT8_MAX (127)
74 #endif
75 #ifndef INT16_MAX
76 #define INT16_MAX (32767)
77 #endif
78 #ifndef INT32_MAX
79 #define INT32_MAX (2147483647)
80 #endif
81 #ifndef UINT8_MAX
82 #define UINT8_MAX (255U)
83 #endif
84 #ifndef UINT16_MAX
85 #define UINT16_MAX (65535U)
86 #endif
87 #ifndef UINT32_MAX
88 #define UINT32_MAX (4294967295U)
89 #endif
91 #endif /* ! C99 */
93 #endif /* ! FLEXINT_H */
95 #ifdef __cplusplus
97 /* The "const" storage-class-modifier is valid. */
98 #define YY_USE_CONST
100 #else /* ! __cplusplus */
102 /* C99 requires __STDC__ to be defined as 1. */
103 #if defined (__STDC__)
105 #define YY_USE_CONST
107 #endif /* defined (__STDC__) */
108 #endif /* ! __cplusplus */
110 #ifdef YY_USE_CONST
111 #define yyconst const
112 #else
113 #define yyconst
114 #endif
116 /* An opaque pointer. */
117 #ifndef YY_TYPEDEF_YY_SCANNER_T
118 #define YY_TYPEDEF_YY_SCANNER_T
119 typedef void* yyscan_t;
120 #endif
122 /* For convenience, these vars (plus the bison vars far below)
123 are macros in the reentrant scanner. */
124 #define yyin yyg->yyin_r
125 #define yyout yyg->yyout_r
126 #define yyextra yyg->yyextra_r
127 #define yyleng yyg->yyleng_r
128 #define yytext yyg->yytext_r
129 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
130 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
131 #define yy_flex_debug yyg->yy_flex_debug_r
133 /* Size of default input buffer. */
134 #ifndef YY_BUF_SIZE
135 #ifdef __ia64__
136 /* On IA-64, the buffer size is 16k, not 8k.
137 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
138 * Ditto for the __ia64__ case accordingly.
139 */
140 #define YY_BUF_SIZE 32768
141 #else
142 #define YY_BUF_SIZE 16384
143 #endif /* __ia64__ */
144 #endif
146 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
147 #define YY_TYPEDEF_YY_BUFFER_STATE
148 typedef struct yy_buffer_state *YY_BUFFER_STATE;
149 #endif
151 #ifndef YY_TYPEDEF_YY_SIZE_T
152 #define YY_TYPEDEF_YY_SIZE_T
153 typedef size_t yy_size_t;
154 #endif
156 #ifndef YY_STRUCT_YY_BUFFER_STATE
157 #define YY_STRUCT_YY_BUFFER_STATE
158 struct yy_buffer_state
159 {
160 FILE *yy_input_file;
162 char *yy_ch_buf; /* input buffer */
163 char *yy_buf_pos; /* current position in input buffer */
165 /* Size of input buffer in bytes, not including room for EOB
166 * characters.
167 */
168 yy_size_t yy_buf_size;
170 /* Number of characters read into yy_ch_buf, not including EOB
171 * characters.
172 */
173 int yy_n_chars;
175 /* Whether we "own" the buffer - i.e., we know we created it,
176 * and can realloc() it to grow it, and should free() it to
177 * delete it.
178 */
179 int yy_is_our_buffer;
181 /* Whether this is an "interactive" input source; if so, and
182 * if we're using stdio for input, then we want to use getc()
183 * instead of fread(), to make sure we stop fetching input after
184 * each newline.
185 */
186 int yy_is_interactive;
188 /* Whether we're considered to be at the beginning of a line.
189 * If so, '^' rules will be active on the next match, otherwise
190 * not.
191 */
192 int yy_at_bol;
194 int yy_bs_lineno; /**< The line count. */
195 int yy_bs_column; /**< The column count. */
197 /* Whether to try to fill the input buffer when we reach the
198 * end of it.
199 */
200 int yy_fill_buffer;
202 int yy_buffer_status;
204 };
205 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
207 void xlu__cfg_yyrestart (FILE *input_file ,yyscan_t yyscanner );
208 void xlu__cfg_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
209 YY_BUFFER_STATE xlu__cfg_yy_create_buffer (FILE *file,int size ,yyscan_t yyscanner );
210 void xlu__cfg_yy_delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
211 void xlu__cfg_yy_flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
212 void xlu__cfg_yypush_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
213 void xlu__cfg_yypop_buffer_state (yyscan_t yyscanner );
215 YY_BUFFER_STATE xlu__cfg_yy_scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
216 YY_BUFFER_STATE xlu__cfg_yy_scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
217 YY_BUFFER_STATE xlu__cfg_yy_scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
219 void *xlu__cfg_yyalloc (yy_size_t ,yyscan_t yyscanner );
220 void *xlu__cfg_yyrealloc (void *,yy_size_t ,yyscan_t yyscanner );
221 void xlu__cfg_yyfree (void * ,yyscan_t yyscanner );
223 #define xlu__cfg_yywrap(n) 1
224 #define YY_SKIP_YYWRAP
226 #define yytext_ptr yytext_r
228 #ifdef YY_HEADER_EXPORT_START_CONDITIONS
229 #define INITIAL 0
230 #define lexerr 1
232 #endif
234 #ifndef YY_NO_UNISTD_H
235 /* Special case for "unistd.h", since it is non-ANSI. We include it way
236 * down here because we want the user's section 1 to have been scanned first.
237 * The user has a chance to override it with an option.
238 */
239 #include <unistd.h>
240 #endif
242 #ifndef YY_EXTRA_TYPE
243 #define YY_EXTRA_TYPE void *
244 #endif
246 int xlu__cfg_yylex_init (yyscan_t* scanner);
248 int xlu__cfg_yylex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
250 /* Accessor methods to globals.
251 These are made visible to non-reentrant scanners for convenience. */
253 int xlu__cfg_yylex_destroy (yyscan_t yyscanner );
255 int xlu__cfg_yyget_debug (yyscan_t yyscanner );
257 void xlu__cfg_yyset_debug (int debug_flag ,yyscan_t yyscanner );
259 YY_EXTRA_TYPE xlu__cfg_yyget_extra (yyscan_t yyscanner );
261 void xlu__cfg_yyset_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
263 FILE *xlu__cfg_yyget_in (yyscan_t yyscanner );
265 void xlu__cfg_yyset_in (FILE * in_str ,yyscan_t yyscanner );
267 FILE *xlu__cfg_yyget_out (yyscan_t yyscanner );
269 void xlu__cfg_yyset_out (FILE * out_str ,yyscan_t yyscanner );
271 int xlu__cfg_yyget_leng (yyscan_t yyscanner );
273 char *xlu__cfg_yyget_text (yyscan_t yyscanner );
275 int xlu__cfg_yyget_lineno (yyscan_t yyscanner );
277 void xlu__cfg_yyset_lineno (int line_number ,yyscan_t yyscanner );
279 YYSTYPE * xlu__cfg_yyget_lval (yyscan_t yyscanner );
281 void xlu__cfg_yyset_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
283 YYLTYPE *xlu__cfg_yyget_lloc (yyscan_t yyscanner );
285 void xlu__cfg_yyset_lloc (YYLTYPE * yylloc_param ,yyscan_t yyscanner );
287 /* Macros after this point can all be overridden by user definitions in
288 * section 1.
289 */
291 #ifndef YY_SKIP_YYWRAP
292 #ifdef __cplusplus
293 extern "C" int xlu__cfg_yywrap (yyscan_t yyscanner );
294 #else
295 extern int xlu__cfg_yywrap (yyscan_t yyscanner );
296 #endif
297 #endif
299 #ifndef yytext_ptr
300 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
301 #endif
303 #ifdef YY_NEED_STRLEN
304 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
305 #endif
307 #ifndef YY_NO_INPUT
309 #endif
311 /* Amount of stuff to slurp up with each read. */
312 #ifndef YY_READ_BUF_SIZE
313 #ifdef __ia64__
314 /* On IA-64, the buffer size is 16k, not 8k */
315 #define YY_READ_BUF_SIZE 16384
316 #else
317 #define YY_READ_BUF_SIZE 8192
318 #endif /* __ia64__ */
319 #endif
321 /* Number of entries by which start-condition stack grows. */
322 #ifndef YY_START_STACK_INCR
323 #define YY_START_STACK_INCR 25
324 #endif
326 /* Default declaration of generated scanner - a define so the user can
327 * easily add parameters.
328 */
329 #ifndef YY_DECL
330 #define YY_DECL_IS_OURS 1
332 extern int xlu__cfg_yylex \
333 (YYSTYPE * yylval_param,YYLTYPE * yylloc_param ,yyscan_t yyscanner);
335 #define YY_DECL int xlu__cfg_yylex \
336 (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
337 #endif /* !YY_DECL */
339 /* yy_get_previous_state - get the state just before the EOB char was reached */
341 #undef YY_NEW_FILE
342 #undef YY_FLUSH_BUFFER
343 #undef yy_set_bol
344 #undef yy_new_buffer
345 #undef yy_set_interactive
346 #undef YY_DO_BEFORE_ACTION
348 #ifdef YY_DECL_IS_OURS
349 #undef YY_DECL_IS_OURS
350 #undef YY_DECL
351 #endif
353 #line 88 "libxlu_cfg_l.l"
355 #line 356 "libxlu_cfg_l.h"
356 #undef xlu__cfg_yyIN_HEADER
357 #endif /* xlu__cfg_yyHEADER_H */