genksyms: Track changes to enum constants
[linux-2.6.git] / scripts / genksyms / genksyms.h
index ab6f34f..7ec52ae 100644 (file)
 #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 {
@@ -41,7 +46,11 @@ struct symbol {
        enum symbol_type type;
        struct string_list *defn;
        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;
@@ -50,7 +59,7 @@ typedef struct string_list **yystype;
 extern int cur_line;
 extern char *cur_filename;
 
-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 *);
@@ -58,6 +67,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);