Commit 1a0b2974 authored by Michael Büsch's avatar Michael Büsch

dasm: Move some definitions around.

Signed-off-by: Michael Büsch's avatarMichael Buesch <mb@bu3sch.de>
parent 2e928c1b
......@@ -15,6 +15,8 @@ main.o: main.h util.h list.h args.h
util.o: util.h
args.o: args.h main.h util.h
$(BIN): $(OBJECTS)
$(CC) $(CFLAGS) -o $(BIN) $(OBJECTS) $(LDFLAGS)
......
......@@ -11,6 +11,7 @@
* GNU General Public License for more details.
*/
#include "main.h"
#include "list.h"
#include "util.h"
#include "args.h"
......@@ -20,20 +21,6 @@
#include <stdlib.h>
#include <string.h>
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
/* The header that fwcutter puts in to every .fw file */
struct fw_header {
/* Type of the firmware data */
uint8_t type;
/* Version number of the firmware data format */
uint8_t ver;
uint8_t __padding[2];
/* Size of the data. For ucode and PCM this is in bytes.
* For IV this is in number-of-ivs. */
uint32_t size;
} __attribute__ ((__packed__));
struct bin_instruction {
unsigned int opcode;
......@@ -699,11 +686,11 @@ static int read_input(struct disassembler_context *ctx)
fprintf(stderr, "Corrupt input file (not fwcutter output)\n");
goto err_close;
}
if (hdr.type != 'u') {
if (hdr.type != FW_TYPE_UCODE) {
fprintf(stderr, "Corrupt input file. Not a microcode image.\n");
goto err_close;
}
if (hdr.ver != 1) {
if (hdr.ver != FW_HDR_VER) {
fprintf(stderr, "Invalid input file header version.\n");
goto err_close;
}
......
......@@ -3,6 +3,28 @@
#include <stdio.h>
#include "util.h"
/* The header that fwcutter also puts in to every .fw file */
struct fw_header {
/* Type of the firmware data */
uint8_t type;
/* Version number of the firmware data format */
uint8_t ver;
uint8_t __padding[2];
/* Size of the data. For ucode and PCM this is in bytes.
* For IV this is in number-of-ivs. (big-endian!) */
be32_t size;
} __attribute__ ((__packed__));
/* struct fw_header -> type */
#define FW_TYPE_UCODE 'u'
#define FW_TYPE_PCM 'p'
#define FW_TYPE_IV 'i'
/* struct fw_header -> ver */
#define FW_HDR_VER 0x01
FILE *infile;
FILE *outfile;
......
......@@ -2,6 +2,10 @@
#define BCM43xx_DASM_UTIL_H_
#include <stdlib.h>
#include <stdint.h>
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
void dump(const char *data,
......@@ -13,4 +17,8 @@ void * xmalloc(size_t size);
char * xstrdup(const char *str);
void * xrealloc(void *in, size_t size);
typedef _Bool bool;
typedef uint32_t be32_t;
#endif /* BCM43xx_DASM_UTIL_H_ */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment