diff options
-rw-r--r-- | dtc-parser.y | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/dtc-parser.y b/dtc-parser.y index 27d358f..761ce8a 100644 --- a/dtc-parser.y +++ b/dtc-parser.y @@ -74,8 +74,8 @@ extern bool treesource_error; %type <data> propdata %type <data> propdataprefix -%type <flags> versioninfo -%type <flags> plugindecl +%type <flags> header +%type <flags> headers %type <re> memreserve %type <re> memreserves %type <array> arrayprefix @@ -106,32 +106,31 @@ extern bool treesource_error; %% sourcefile: - versioninfo plugindecl memreserves devicetree + headers memreserves devicetree { - the_boot_info = build_boot_info($1 | $2, $3, $4, - guess_boot_cpuid($4)); + the_boot_info = build_boot_info($1, $2, $3, + guess_boot_cpuid($3)); } ; -versioninfo: - v1tag +header: + DT_V1 ';' { $$ = DTSF_V1; } - ; - -v1tag: - DT_V1 ';' - | DT_V1 ';' v1tag - -plugindecl: - DT_PLUGIN ';' + | DT_V1 ';' DT_PLUGIN ';' { - $$ = DTSF_PLUGIN; + $$ = DTSF_V1 | DTSF_PLUGIN; } - | /* empty */ + ; + +headers: + header + | header headers { - $$ = 0; + if ($2 != $1) + ERROR(&@2, "Header flags don't match earlier ones"); + $$ = $1; } ; |