/* * bincfg - Compiler/Decompiler for data blobs with specs * Copyright (C) 2017 Damien Zammit * Copyright (C) 2018 Denis 'GNUtoo' Carikli * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef __BINCFG_H #define __BINCFG_H #define VALID_BIT 0x80 #define MAX_WIDTH 32 #define CHECKSUM_SIZE 16 struct field { char *name; unsigned int width; unsigned int value; struct field *next; }; /* Bit array intermediary representation */ struct blob { unsigned int bloblen; unsigned char *blb; unsigned short checksum; unsigned char *actualblob; unsigned int lenactualblob; }; static struct field *putsym(field_ptr_t, char const *, unsigned int); static struct field *getsym(field_ptr_t, char const *); static void yyerror(FILE *, field_ptr_t, char const *); int yylex(void); static struct blob *binary; static struct field *sym_table_tail; #endif /* __BINCFG_H */