diff options
Diffstat (limited to 'scripts/genksyms/genksyms.h')
| -rw-r--r-- | scripts/genksyms/genksyms.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/scripts/genksyms/genksyms.h b/scripts/genksyms/genksyms.h index 2668287aa49..3bffdcaaa27 100644 --- a/scripts/genksyms/genksyms.h +++ b/scripts/genksyms/genksyms.h @@ -26,12 +26,18 @@ #include <stdio.h> enum symbol_type { - SYM_NORMAL, SYM_TYPEDEF, SYM_ENUM, SYM_STRUCT, SYM_UNION + SYM_NORMAL, SYM_TYPEDEF, SYM_ENUM, SYM_STRUCT, SYM_UNION, + SYM_ENUM_CONST +}; + +enum symbol_status { + STATUS_UNCHANGED, STATUS_DEFINED, STATUS_MODIFIED }; struct string_list { struct string_list *next; enum symbol_type tag; + int in_source_file; char *string; }; @@ -43,15 +49,19 @@ struct symbol { struct symbol *expansion_trail; struct symbol *visited; int is_extern; + int is_declared; + enum symbol_status status; + int is_override; }; typedef struct string_list **yystype; #define YYSTYPE yystype extern int cur_line; -extern char *cur_filename; +extern char *cur_filename, *source_file; +extern int in_source_file; -struct symbol *find_symbol(const char *name, enum symbol_type ns); +struct symbol *find_symbol(const char *name, enum symbol_type ns, int exact); struct symbol *add_symbol(const char *name, enum symbol_type type, struct string_list *defn, int is_extern); void export_symbol(const char *); @@ -59,6 +69,8 @@ void export_symbol(const char *); void free_node(struct string_list *list); void free_list(struct string_list *s, struct string_list *e); struct string_list *copy_node(struct string_list *); +struct string_list *copy_list_range(struct string_list *start, + struct string_list *end); int yylex(void); int yyparse(void); |
