From 7f96583f0f6b9829f73fb8afbb6f367323446030 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 21 Apr 2011 18:57:16 +0200 Subject: [PATCH] Reduce warnings/errors in libpayload when using picky compiler options The new build system uses quite a few more -W flags for the compiler by default than the old one. And that's for the better. Change-Id: Ia8e3d28fb35c56760c2bd0983046c7067e8c5dd6 Signed-off-by: Patrick Georgi Reviewed-on: http://review.coreboot.org/72 Tested-by: build bot (Jenkins) Reviewed-by: Uwe Hermann --- payloads/libpayload/Config.in | 4 ++++ payloads/libpayload/arch/i386/coreboot.c | 2 +- payloads/libpayload/arch/i386/main.c | 1 + payloads/libpayload/arch/i386/multiboot.c | 4 ++-- payloads/libpayload/arch/i386/virtual.c | 1 + payloads/libpayload/arch/powerpc/coreboot.c | 2 +- payloads/libpayload/arch/powerpc/main.c | 1 + payloads/libpayload/arch/powerpc/virtual.c | 1 + payloads/libpayload/curses/keyboard.c | 20 ++++++++++---------- payloads/libpayload/curses/tinycurses.c | 2 +- payloads/libpayload/drivers/keyboard.c | 16 ++++++++-------- payloads/libpayload/drivers/serial.c | 2 +- payloads/libpayload/drivers/usb/uhci.c | 2 +- payloads/libpayload/drivers/usb/usbhid.c | 12 ++++++------ payloads/libpayload/include/libpayload.h | 1 + payloads/libpayload/libc/getopt_long.c | 4 +--- payloads/libpayload/libc/printf.c | 2 +- payloads/libpayload/libc/strings.c | 2 ++ payloads/libpayload/libc/sysinfo.c | 2 -- payloads/libpayload/libpci/libpci.c | 10 ++++++---- 20 files changed, 50 insertions(+), 41 deletions(-) diff --git a/payloads/libpayload/Config.in b/payloads/libpayload/Config.in index 0a9265d73..fe534001b 100644 --- a/payloads/libpayload/Config.in +++ b/payloads/libpayload/Config.in @@ -73,6 +73,10 @@ config TARGET_POWERPC endchoice +config MEMMAP_RAM_ONLY + bool "Only consider RAM entries in memory map for further processing" + default n + config MULTIBOOT bool "Multiboot header support" depends on TARGET_I386 diff --git a/payloads/libpayload/arch/i386/coreboot.c b/payloads/libpayload/arch/i386/coreboot.c index 8441903e7..e3c944d44 100644 --- a/payloads/libpayload/arch/i386/coreboot.c +++ b/payloads/libpayload/arch/i386/coreboot.c @@ -57,7 +57,7 @@ static void cb_parse_memory(unsigned char *ptr, struct sysinfo_t *info) struct cb_memory_range *range = (struct cb_memory_range *)MEM_RANGE_PTR(mem, i); -#if MEMMAP_RAM_ONLY +#ifdef CONFIG_MEMMAP_RAM_ONLY if (range->type != CB_MEM_RAM) continue; #endif diff --git a/payloads/libpayload/arch/i386/main.c b/payloads/libpayload/arch/i386/main.c index 48d6ef549..378c6f387 100644 --- a/payloads/libpayload/arch/i386/main.c +++ b/payloads/libpayload/arch/i386/main.c @@ -41,6 +41,7 @@ char *main_argv[MAX_ARGC_COUNT]; * This is our C entry function - set up the system * and jump into the payload entry point. */ +void start_main(void); void start_main(void) { extern int main(int argc, char **argv); diff --git a/payloads/libpayload/arch/i386/multiboot.c b/payloads/libpayload/arch/i386/multiboot.c index 82736b14f..fa0c576dc 100644 --- a/payloads/libpayload/arch/i386/multiboot.c +++ b/payloads/libpayload/arch/i386/multiboot.c @@ -45,7 +45,7 @@ static void mb_parse_mmap(struct multiboot_header *table, while(ptr < (start + table->mmap_length)) { struct multiboot_mmap *mmap = (struct multiboot_mmap *) ptr; -#if MEMMAP_RAM_ONLY +#ifdef CONFIG_MEMMAP_RAM_ONLY /* 1 == normal RAM. Ignore everything else for now */ if (mmap->type == 1) { @@ -56,7 +56,7 @@ static void mb_parse_mmap(struct multiboot_header *table, if (++info->n_memranges == SYSINFO_MAX_MEM_RANGES) return; -#if MEMMAP_RAM_ONLY +#ifdef CONFIG_MEMMAP_RAM_ONLY } #endif diff --git a/payloads/libpayload/arch/i386/virtual.c b/payloads/libpayload/arch/i386/virtual.c index 256bfc25f..59768dbd6 100644 --- a/payloads/libpayload/arch/i386/virtual.c +++ b/payloads/libpayload/arch/i386/virtual.c @@ -27,6 +27,7 @@ * SUCH DAMAGE. */ +#include unsigned long virtual_offset = 0; diff --git a/payloads/libpayload/arch/powerpc/coreboot.c b/payloads/libpayload/arch/powerpc/coreboot.c index 95d8f16f7..ee1842c82 100644 --- a/payloads/libpayload/arch/powerpc/coreboot.c +++ b/payloads/libpayload/arch/powerpc/coreboot.c @@ -57,7 +57,7 @@ static void cb_parse_memory(unsigned char *ptr, struct sysinfo_t *info) struct cb_memory_range *range = (struct cb_memory_range *)MEM_RANGE_PTR(mem, i); -#if MEMMAP_RAM_ONLY +#ifdef CONFIG_MEMMAP_RAM_ONLY if (range->type != CB_MEM_RAM) continue; #endif diff --git a/payloads/libpayload/arch/powerpc/main.c b/payloads/libpayload/arch/powerpc/main.c index 48d6ef549..378c6f387 100644 --- a/payloads/libpayload/arch/powerpc/main.c +++ b/payloads/libpayload/arch/powerpc/main.c @@ -41,6 +41,7 @@ char *main_argv[MAX_ARGC_COUNT]; * This is our C entry function - set up the system * and jump into the payload entry point. */ +void start_main(void); void start_main(void) { extern int main(int argc, char **argv); diff --git a/payloads/libpayload/arch/powerpc/virtual.c b/payloads/libpayload/arch/powerpc/virtual.c index 6312ae13c..6ff588c50 100644 --- a/payloads/libpayload/arch/powerpc/virtual.c +++ b/payloads/libpayload/arch/powerpc/virtual.c @@ -27,6 +27,7 @@ * SUCH DAMAGE. */ +#include unsigned long virtual_offset = 0; diff --git a/payloads/libpayload/curses/keyboard.c b/payloads/libpayload/curses/keyboard.c index a75067599..7ebb04f11 100644 --- a/payloads/libpayload/curses/keyboard.c +++ b/payloads/libpayload/curses/keyboard.c @@ -71,7 +71,7 @@ static int getkeyseq(char *buffer, int len, int max) } static struct { - char *seq; + const char *seq; int key; } escape_codes[] = { { "[A", KEY_UP }, @@ -109,7 +109,7 @@ static int handle_escape(void) return 27; for(i = 0; escape_codes[i].seq != NULL; i++) { - char *p = escape_codes[i].seq; + const char *p = escape_codes[i].seq; for(t = 0; t < len; t++) { if (!*p || *p != buffer[t]) @@ -144,7 +144,7 @@ static int cook_serial(unsigned char ch) /* ================ Keyboard ================ */ -static int curses_getchar(int delay) +static int curses_getchar(int _delay) { #if defined(CONFIG_USB_HID) || defined(CONFIG_PC_KEYBOARD) || defined(CONFIG_SERIAL_CONSOLE) unsigned short c; @@ -175,12 +175,12 @@ static int curses_getchar(int delay) } #endif - if (delay == 0) + if (_delay == 0) break; - if (delay > 0) { + if (_delay > 0) { mdelay(1); - delay--; + _delay--; } @@ -193,14 +193,14 @@ static int curses_getchar(int delay) int wgetch(WINDOW *win) { - int delay = -1; + int _delay = -1; if (_halfdelay) - delay = _halfdelay; + _delay = _halfdelay; else - delay = win->_delay; + _delay = win->_delay; - return curses_getchar(delay); + return curses_getchar(_delay); } int nodelay(WINDOW *win, NCURSES_BOOL flag) diff --git a/payloads/libpayload/curses/tinycurses.c b/payloads/libpayload/curses/tinycurses.c index cb1d69593..4d3e8e1be 100644 --- a/payloads/libpayload/curses/tinycurses.c +++ b/payloads/libpayload/curses/tinycurses.c @@ -971,7 +971,7 @@ int wsetscrreg(WINDOW *win, int top, int bottom) } // void wsyncdown (WINDOW *) {} // void wsyncup (WINDOW *) {} -/* D */ void wtimeout(WINDOW *win, int delay) { win->_delay = delay; } +/* D */ void wtimeout(WINDOW *win, int _delay) { win->_delay = _delay; } /* D */ int wtouchln(WINDOW *win, int y, int n, int changed) { int i; diff --git a/payloads/libpayload/drivers/keyboard.c b/payloads/libpayload/drivers/keyboard.c index 2b2ac2685..0663f47bc 100644 --- a/payloads/libpayload/drivers/keyboard.c +++ b/payloads/libpayload/drivers/keyboard.c @@ -37,8 +37,8 @@ #define I8042_MODE_XLATE 0x40 struct layout_maps { - char *country; - unsigned short map[4][0x57]; + const char *country; + const unsigned short map[4][0x57]; }; static struct layout_maps *map; @@ -261,22 +261,22 @@ int keyboard_getchar(void) static int keyboard_wait_read(void) { - int timeout = 10000; + int retries = 10000; - while(timeout-- && !(inb(0x64) & 0x01)) + while(retries-- && !(inb(0x64) & 0x01)) udelay(50); - return (timeout <= 0) ? -1 : 0; + return (retries <= 0) ? -1 : 0; } static int keyboard_wait_write(void) { - int timeout = 10000; + int retries = 10000; - while(timeout-- && (inb(0x64) & 0x02)) + while(retries-- && (inb(0x64) & 0x02)) udelay(50); - return (timeout <= 0) ? -1 : 0; + return (retries <= 0) ? -1 : 0; } static unsigned char keyboard_get_mode(void) diff --git a/payloads/libpayload/drivers/serial.c b/payloads/libpayload/drivers/serial.c index 0674ec8c3..c6804d2b2 100644 --- a/payloads/libpayload/drivers/serial.c +++ b/payloads/libpayload/drivers/serial.c @@ -195,7 +195,7 @@ int serial_getchar(void) /* A vt100 doesn't do color, setaf/setab below are from xterm-color. */ #define VT100_SET_COLOR "\e[3%d;4%dm" -static void serial_putcmd(char *str) +static void serial_putcmd(const char *str) { while(*str) serial_putchar(*(str++)); diff --git a/payloads/libpayload/drivers/usb/uhci.c b/payloads/libpayload/drivers/usb/uhci.c index 721fde00f..1f80c6a3c 100644 --- a/payloads/libpayload/drivers/usb/uhci.c +++ b/payloads/libpayload/drivers/usb/uhci.c @@ -65,7 +65,7 @@ static void td_dump (td_t *td) { char td_value[3]; - char *td_type; + const char *td_type; switch (td->pid) { case UHCI_SETUP: td_type="SETUP"; diff --git a/payloads/libpayload/drivers/usb/usbhid.c b/payloads/libpayload/drivers/usb/usbhid.c index 84de0c8af..bf3ec1e40 100644 --- a/payloads/libpayload/drivers/usb/usbhid.c +++ b/payloads/libpayload/drivers/usb/usbhid.c @@ -62,7 +62,7 @@ static int keycount; #define KEYBOARD_BUFFER_SIZE 16 static short keybuffer[KEYBOARD_BUFFER_SIZE]; -char *countries[36][2] = { +const char *countries[36][2] = { { "not supported", "us" }, { "Arabic", "ae" }, { "Belgian", "be" }, @@ -105,13 +105,13 @@ char *countries[36][2] = { struct layout_maps { - char *country; - short map[4][0x80]; + const char *country; + const short map[4][0x80]; }; -static struct layout_maps *map; +static const struct layout_maps *map; -static struct layout_maps keyboard_layouts[] = { +static const struct layout_maps keyboard_layouts[] = { // #ifdef CONFIG_PC_KEYBOARD_LAYOUT_US { .country = "us", .map = { { /* No modifier */ @@ -378,7 +378,7 @@ static struct console_input_driver cons = { }; -int usb_hid_set_layout (char *country) +static int usb_hid_set_layout (const char *country) { /* FIXME should be per keyboard */ int i; diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h index 74fb79a4a..6ce7548b3 100644 --- a/payloads/libpayload/include/libpayload.h +++ b/payloads/libpayload/include/libpayload.h @@ -272,6 +272,7 @@ typedef struct { void SHA1Init(SHA1_CTX *context); void SHA1Transform(u32 state[5], const u8 buffer[SHA1_BLOCK_LENGTH]); void SHA1Update(SHA1_CTX *context, const u8 *data, size_t len); +void SHA1Pad(SHA1_CTX *context); void SHA1Final(u8 digest[SHA1_DIGEST_LENGTH], SHA1_CTX *context); u8 *sha1(const u8 *data, size_t len, u8 *buf); /** @} */ diff --git a/payloads/libpayload/libc/getopt_long.c b/payloads/libpayload/libc/getopt_long.c index 493df4d3b..365bc4a85 100644 --- a/payloads/libpayload/libc/getopt_long.c +++ b/payloads/libpayload/libc/getopt_long.c @@ -57,10 +57,8 @@ #include #include #define warnx(x...) printf(x) -/* #include #include -*/ #define REPLACE_GETOPT /* use this getopt as the system getopt(3) */ #ifdef REPLACE_GETOPT @@ -84,7 +82,7 @@ int posixly_correct = 0; #define BADARG ((*options == ':') ? (int)':' : (int)'?') #define INORDER (int)1 -#define EMSG "" +#define EMSG (char*)"" static int getopt_internal(int, char * const *, const char *, const struct option *, int *, int); diff --git a/payloads/libpayload/libc/printf.c b/payloads/libpayload/libc/printf.c index 389d2277e..e3cf8bbb2 100644 --- a/payloads/libpayload/libc/printf.c +++ b/payloads/libpayload/libc/printf.c @@ -114,7 +114,7 @@ static int printf_putstr(const char *str, struct printf_spec *ps) size_t count; if (str == NULL) { - char *nullstr = "(NULL)"; + const char *nullstr = "(NULL)"; return printf_putnchars(nullstr, strlen(nullstr), ps); } diff --git a/payloads/libpayload/libc/strings.c b/payloads/libpayload/libc/strings.c index 9a56ba127..465ae4f12 100644 --- a/payloads/libpayload/libc/strings.c +++ b/payloads/libpayload/libc/strings.c @@ -27,6 +27,8 @@ * SUCH DAMAGE. */ +#include + int ffs(int i) { int count = 1; diff --git a/payloads/libpayload/libc/sysinfo.c b/payloads/libpayload/libc/sysinfo.c index 73a9ab553..b1cad5030 100644 --- a/payloads/libpayload/libc/sysinfo.c +++ b/payloads/libpayload/libc/sysinfo.c @@ -30,8 +30,6 @@ #include #include -extern struct sysinfo_t lib_sysinfo; - int sysinfo_have_multiboot(unsigned long *addr) { *addr = (unsigned long) lib_sysinfo.mbtable; diff --git a/payloads/libpayload/libpci/libpci.c b/payloads/libpayload/libpci/libpci.c index 0b54ba338..203e770e4 100644 --- a/payloads/libpayload/libpci/libpci.c +++ b/payloads/libpayload/libpci/libpci.c @@ -96,6 +96,8 @@ void pci_filter_init(struct pci_access* pacc, struct pci_filter* pf) pf->device = -1; } +static char *invalid_pci_device_string = (char *)"invalid pci device string"; + /* parse domain:bus:dev.func (with all components but "dev" optional) * into filter. * Returns NULL on success, a string pointer to the error message otherwise. @@ -109,7 +111,7 @@ char *pci_filter_parse_slot(struct pci_filter* filter, const char* id) char *funcp = strrchr(id, '.'); if (funcp) { filter->func = strtoul(funcp+1, &endptr, 0); - if (endptr[0] != '\0') return "invalid pci device string"; + if (endptr[0] != '\0') return invalid_pci_device_string; } char *devp = strrchr(id, ':'); @@ -118,7 +120,7 @@ char *pci_filter_parse_slot(struct pci_filter* filter, const char* id) } else { filter->dev = strtoul(devp+1, &endptr, 0); } - if (endptr != funcp) return "invalid pci device string"; + if (endptr != funcp) return invalid_pci_device_string; if (!devp) return NULL; char *busp = strchr(id, ':'); @@ -127,11 +129,11 @@ char *pci_filter_parse_slot(struct pci_filter* filter, const char* id) } else { filter->bus = strtoul(busp+1, &endptr, 0); } - if (endptr != funcp) return "invalid pci device string"; + if (endptr != funcp) return invalid_pci_device_string; if (busp == devp) return NULL; filter->domain = strtoul(id, &endptr, 0); - if (endptr != busp) return "invalid pci device string"; + if (endptr != busp) return invalid_pci_device_string; return NULL; } -- 2.25.1