diff --git a/dtc-lexer.l b/dtc-lexer.l index a643ab3..04b1753 100644 --- a/dtc-lexer.l +++ b/dtc-lexer.l @@ -52,6 +52,9 @@ static int dts_version; /* = 0 */ DPRINT("\n"); \ BEGIN(V1); \ } + +static void push_input_file(const char *filename); +static int pop_input_file(void); %} %% @@ -229,7 +232,7 @@ struct incl_file { struct incl_file *prev; }; -struct incl_file *incl_file_stack; +static struct incl_file *incl_file_stack; /* @@ -240,7 +243,7 @@ struct incl_file *incl_file_stack; static int incl_depth = 0; -void push_input_file(const char *filename) +static void push_input_file(const char *filename) { struct incl_file *incl_file; struct dtc_file *newfile; @@ -282,7 +285,7 @@ void push_input_file(const char *filename) } -int pop_input_file(void) +static int pop_input_file(void) { struct incl_file *incl_file; @@ -312,8 +315,5 @@ int pop_input_file(void) */ free(incl_file); - if (YY_CURRENT_BUFFER == 0) - return 0; - return 1; } diff --git a/srcpos.h b/srcpos.h index d548c09..e17c7c0 100644 --- a/srcpos.h +++ b/srcpos.h @@ -75,9 +75,6 @@ extern void yyerrorf(char const *, ...) __attribute__((format(printf, 1, 2))); extern struct dtc_file *srcpos_file; -extern void push_input_file(const char *filename); -extern int pop_input_file(void); - struct search_path { const char *dir; /* NULL for current directory */ struct search_path *prev, *next; diff --git a/treesource.c b/treesource.c index 9cbf0a9..3c24e7f 100644 --- a/treesource.c +++ b/treesource.c @@ -32,7 +32,8 @@ struct boot_info *dt_from_source(const char *fname) the_boot_info = NULL; treesource_error = 0; - push_input_file(fname); + srcpos_file = dtc_open_file(fname, NULL); + yyin = srcpos_file->file; if (yyparse() != 0) return NULL;