Add -Werror to help us keep the code clean.
Change sizes from unsigned int to int. Clean up some usage and parameter checking. Signed-off-by: Myles Watson <mylesgw@gmail.com> Acked-by: Ronald G. Minnich <rminnich@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4262 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
83b8f0c485
commit
475aeda9d6
|
@ -9,7 +9,7 @@ OBJ=$(COMMANDS) cbfstool.o util.o fs.o
|
||||||
INC=cbfstool.h cbfs.h
|
INC=cbfstool.h cbfs.h
|
||||||
|
|
||||||
CC=gcc
|
CC=gcc
|
||||||
CFLAGS=-g -Wall # -W -Werror
|
CFLAGS=-g -Wall -W -Werror
|
||||||
|
|
||||||
DESTDIR ?= /usr/local/bin
|
DESTDIR ?= /usr/local/bin
|
||||||
|
|
||||||
|
|
|
@ -205,25 +205,25 @@ static int add_blob(struct rom *rom, const char *filename,
|
||||||
|
|
||||||
void add_usage(void)
|
void add_usage(void)
|
||||||
{
|
{
|
||||||
printf("add [FILE] [NAME] [TYPE]\tAdd a component\n");
|
printf("add FILE NAME TYPE\tAdd a component\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void add_stage_usage(void)
|
void add_stage_usage(void)
|
||||||
{
|
{
|
||||||
printf("add-stage [FILE] [NAME] [OPTIONS]\tAdd a stage to the ROM\n");
|
printf("add-stage FILE NAME [OPTIONS]\tAdd a stage to the ROM\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void add_payload_usage(void)
|
void add_payload_usage(void)
|
||||||
{
|
{
|
||||||
printf
|
printf
|
||||||
("add-payload [FILE] [NAME] [OPTIONS]\tAdd a payload to the ROM\n");
|
("add-payload FILE NAME [OPTIONS]\tAdd a payload to the ROM\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int add_handler(struct rom *rom, int argc, char **argv)
|
int add_handler(struct rom *rom, int argc, char **argv)
|
||||||
{
|
{
|
||||||
unsigned int type = CBFS_COMPONENT_NULL;
|
unsigned int type = CBFS_COMPONENT_NULL;
|
||||||
|
|
||||||
if (argc < 2) {
|
if (argc != 3) {
|
||||||
add_usage();
|
add_usage();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -235,15 +235,13 @@ int add_handler(struct rom *rom, int argc, char **argv)
|
||||||
|
|
||||||
/* There are two ways to specify the type - a string or a number */
|
/* There are two ways to specify the type - a string or a number */
|
||||||
|
|
||||||
if (argc == 3) {
|
if (isdigit(*(argv[2])))
|
||||||
if (isdigit(*(argv[2])))
|
type = strtoul(argv[2], 0, 0);
|
||||||
type = strtoul(argv[2], 0, 0);
|
else {
|
||||||
|
ERROR("String types (%s) aren't implemented yet.\n", argv[2]);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type == CBFS_COMPONENT_NULL)
|
|
||||||
WARN("No file type was given for %s - using default\n",
|
|
||||||
argv[0]);
|
|
||||||
|
|
||||||
return add_blob(rom, argv[0], argv[1], type);
|
return add_blob(rom, argv[0], argv[1], type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ struct {
|
||||||
"extract", extract_handler, extract_usage}, {
|
"extract", extract_handler, extract_usage}, {
|
||||||
"print", print_handler, print_usage}, {
|
"print", print_handler, print_usage}, {
|
||||||
"resize", resize_handler, resize_usage}, {
|
"resize", resize_handler, resize_usage}, {
|
||||||
"", NULL},};
|
"", NULL, NULL},};
|
||||||
|
|
||||||
static struct rom rom;
|
static struct rom rom;
|
||||||
|
|
||||||
|
|
|
@ -67,15 +67,15 @@ int add_bootblock(struct rom *rom, const char *filename);
|
||||||
|
|
||||||
/* fs.c */
|
/* fs.c */
|
||||||
|
|
||||||
struct cbfs_file *rom_find(struct rom *rom, unsigned int offset);
|
struct cbfs_file *rom_find(struct rom *rom, int offset);
|
||||||
struct cbfs_file *rom_find_first(struct rom *);
|
struct cbfs_file *rom_find_first(struct rom *);
|
||||||
struct cbfs_file *rom_find_next(struct rom *, struct cbfs_file *);
|
struct cbfs_file *rom_find_next(struct rom *, struct cbfs_file *);
|
||||||
int rom_add(struct rom *rom, const char *name, void *, int size, int type);
|
int rom_add(struct rom *rom, const char *name, void *, int size, int type);
|
||||||
int rom_set_header(struct rom *rom, struct cbfs_file *c,
|
int rom_set_header(struct rom *rom, struct cbfs_file *c,
|
||||||
const char*name, int size, int type);
|
const char*name, int size, int type);
|
||||||
int rom_extract(struct rom *rom, const char *name, void **buf, unsigned long *size);
|
int rom_extract(struct rom *rom, const char *name, void **buf, int *size);
|
||||||
int rom_remove(struct rom *rom, const char *name);
|
int rom_remove(struct rom *rom, const char *name);
|
||||||
unsigned int rom_used_space(struct rom *rom);
|
int rom_used_space(struct rom *rom);
|
||||||
int rom_exists(struct rom *rom);
|
int rom_exists(struct rom *rom);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
|
|
||||||
void create_usage(void)
|
void create_usage(void)
|
||||||
{
|
{
|
||||||
printf("create SIZE BOOTBLOCKSIZE [ALIGN] [BOOTBLOCK]\tCreate a ROM file\n");
|
printf("create SIZE BOOTBLOCKSIZE BOOTBLOCK [ALIGN]\tCreate a ROM file\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
int create_handler(struct rom *rom, int argc, char **argv)
|
int create_handler(struct rom *rom, int argc, char **argv)
|
||||||
|
@ -33,7 +33,7 @@ int create_handler(struct rom *rom, int argc, char **argv)
|
||||||
char *bootblock = NULL;
|
char *bootblock = NULL;
|
||||||
int bootblocksize;
|
int bootblocksize;
|
||||||
|
|
||||||
if (argc < 2) {
|
if (argc < 3) {
|
||||||
create_usage();
|
create_usage();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -42,11 +42,10 @@ int create_handler(struct rom *rom, int argc, char **argv)
|
||||||
|
|
||||||
bootblocksize = get_size(argv[1]);
|
bootblocksize = get_size(argv[1]);
|
||||||
|
|
||||||
if (argc == 3) {
|
bootblock = argv[2];
|
||||||
bootblock = argv[2];
|
|
||||||
} else if (argc >= 4) {
|
if (argc >= 4) {
|
||||||
align = strtoul(argv[2], NULL, 0);
|
align = strtoul(argv[3], NULL, 0);
|
||||||
bootblock = argv[3];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size < bootblocksize) {
|
if (size < bootblocksize) {
|
||||||
|
|
|
@ -28,7 +28,7 @@ static int extract_blob(struct rom *rom, const char *filename, const char *name)
|
||||||
{
|
{
|
||||||
void *buf;
|
void *buf;
|
||||||
int fd, ret;
|
int fd, ret;
|
||||||
unsigned long size;
|
int size;
|
||||||
|
|
||||||
ret = rom_extract(rom, name, &buf, &size);
|
ret = rom_extract(rom, name, &buf, &size);
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ static int extract_blob(struct rom *rom, const char *filename, const char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (write(fd, buf, size) != size) {
|
if (write(fd, buf, size) != size) {
|
||||||
ERROR("Couldn't write %ld bytes!\n", size);
|
ERROR("Couldn't write %d bytes!\n", size);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -152,7 +152,7 @@ struct cbfs_file * rom_alloc(struct rom *rom, unsigned long size)
|
||||||
return ((struct cbfs_file *)ROM_PTR(rom, ret));
|
return ((struct cbfs_file *)ROM_PTR(rom, ret));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct cbfs_file *rom_find(struct rom *rom, unsigned int offset)
|
struct cbfs_file *rom_find(struct rom *rom, int offset)
|
||||||
{
|
{
|
||||||
while (offset < rom->fssize) {
|
while (offset < rom->fssize) {
|
||||||
struct cbfs_file *c =
|
struct cbfs_file *c =
|
||||||
|
@ -195,7 +195,7 @@ struct cbfs_file *rom_find_by_name(struct rom *rom, const char *name)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int rom_used_space(struct rom *rom)
|
int rom_used_space(struct rom *rom)
|
||||||
{
|
{
|
||||||
struct cbfs_file *c = rom_find_first(rom);
|
struct cbfs_file *c = rom_find_first(rom);
|
||||||
unsigned int ret = 0;
|
unsigned int ret = 0;
|
||||||
|
@ -235,7 +235,7 @@ int rom_remove(struct rom *rom, const char *name)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int rom_extract(struct rom *rom, const char *name, void** buf, unsigned long *size )
|
int rom_extract(struct rom *rom, const char *name, void** buf, int *size )
|
||||||
{
|
{
|
||||||
struct cbfs_file *c = rom_find_by_name(rom, name);
|
struct cbfs_file *c = rom_find_by_name(rom, name);
|
||||||
unsigned int csize;
|
unsigned int csize;
|
||||||
|
@ -265,8 +265,8 @@ int rom_extract(struct rom *rom, const char *name, void** buf, unsigned long *si
|
||||||
int rom_add(struct rom *rom, const char *name, void *buffer, int size, int type)
|
int rom_add(struct rom *rom, const char *name, void *buffer, int size, int type)
|
||||||
{
|
{
|
||||||
struct cbfs_file *c = rom_alloc(rom, size);
|
struct cbfs_file *c = rom_alloc(rom, size);
|
||||||
unsigned int offset;
|
int offset;
|
||||||
unsigned int csize;
|
int csize;
|
||||||
|
|
||||||
if (rom_find_by_name(rom, name)) {
|
if (rom_find_by_name(rom, name)) {
|
||||||
ERROR("Component %s already exists in this rom\n", name);
|
ERROR("Component %s already exists in this rom\n", name);
|
||||||
|
|
|
@ -27,6 +27,9 @@ void print_usage(void)
|
||||||
|
|
||||||
int print_handler(struct rom *rom, int argc, char **argv)
|
int print_handler(struct rom *rom, int argc, char **argv)
|
||||||
{
|
{
|
||||||
|
if (argc > 0 || argv[1] != NULL)
|
||||||
|
printf("print\t\t\t\tShow the contents of the ROM\n");
|
||||||
|
|
||||||
printf("%s: %d kB, bootblocksize %d, romsize %d, offset 0x%x\n", rom->name, rom->size / 1024,
|
printf("%s: %d kB, bootblocksize %d, romsize %d, offset 0x%x\n", rom->name, rom->size / 1024,
|
||||||
ntohl(rom->header->bootblocksize), ntohl(rom->header->romsize), ntohl(rom->header->offset));
|
ntohl(rom->header->bootblocksize), ntohl(rom->header->romsize), ntohl(rom->header->offset));
|
||||||
printf("Alignment: %d bytes\n\n", ntohl(rom->header->align));
|
printf("Alignment: %d bytes\n\n", ntohl(rom->header->align));
|
||||||
|
@ -48,6 +51,9 @@ int print_handler(struct rom *rom, int argc, char **argv)
|
||||||
case CBFS_COMPONENT_OPTIONROM:
|
case CBFS_COMPONENT_OPTIONROM:
|
||||||
strcpy(type, "optionrom");
|
strcpy(type, "optionrom");
|
||||||
break;
|
break;
|
||||||
|
case CBFS_COMPONENT_NULL:
|
||||||
|
strcpy(type, "free");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
sprintf(type, "0x%8.8x", htonl(c->type));
|
sprintf(type, "0x%8.8x", htonl(c->type));
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -32,7 +32,8 @@ void resize_usage(void)
|
||||||
|
|
||||||
int resize_handler(struct rom *rom, int argc, char **argv)
|
int resize_handler(struct rom *rom, int argc, char **argv)
|
||||||
{
|
{
|
||||||
unsigned int size, align, offset;
|
unsigned int align, offset;
|
||||||
|
int size;
|
||||||
char null = '\0';
|
char null = '\0';
|
||||||
int bootblocksize = ntohl(rom->header->bootblocksize);
|
int bootblocksize = ntohl(rom->header->bootblocksize);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
tobj ?= $(shell pwd)
|
tobj ?= $(shell pwd)
|
||||||
tsrc ?= $(shell pwd)
|
tsrc ?= $(shell pwd)
|
||||||
|
|
||||||
|
CFLAGS=-g -Wall
|
||||||
|
|
||||||
TARGETS += $(tobj)/cbfs-mkstage $(tobj)/cbfs-mkpayload
|
TARGETS += $(tobj)/cbfs-mkstage $(tobj)/cbfs-mkpayload
|
||||||
|
|
||||||
tools: $(tobj)/cbfs-mkstage $(tobj)/cbfs-mkpayload
|
tools: $(tobj)/cbfs-mkstage $(tobj)/cbfs-mkpayload
|
||||||
|
|
Loading…
Reference in New Issue