Patrick Georgi (patrick@georgi-clan.de) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/72
-gerrit
commit a7559fa5e8a7f587697191f61016527230d49857 Author: Patrick Georgi patrick@georgi-clan.de Date: Thu Apr 21 18:57:16 2011 +0200
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 patrick@georgi-clan.de --- 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 0a9265d..fe53400 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 8441903..e3c944d 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 48d6ef5..378c6f3 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 82736b1..fa0c576 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 256bfc2..59768db 100644 --- a/payloads/libpayload/arch/i386/virtual.c +++ b/payloads/libpayload/arch/i386/virtual.c @@ -27,6 +27,7 @@ * SUCH DAMAGE. */
+#include <unistd.h>
unsigned long virtual_offset = 0;
diff --git a/payloads/libpayload/arch/powerpc/coreboot.c b/payloads/libpayload/arch/powerpc/coreboot.c index 95d8f16..ee1842c 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 48d6ef5..378c6f3 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 6312ae1..6ff588c 100644 --- a/payloads/libpayload/arch/powerpc/virtual.c +++ b/payloads/libpayload/arch/powerpc/virtual.c @@ -27,6 +27,7 @@ * SUCH DAMAGE. */
+#include <unistd.h>
unsigned long virtual_offset = 0;
diff --git a/payloads/libpayload/curses/keyboard.c b/payloads/libpayload/curses/keyboard.c index a750675..7ebb04f 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 cb1d695..4d3e8e1 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 2b2ac26..0663f47 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 0674ec8..c6804d2 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 721fde0..1f80c6a 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 84de0c8..bf3ec1e 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 74fb79a..6ce7548 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 493df4d..365bc4a 100644 --- a/payloads/libpayload/libc/getopt_long.c +++ b/payloads/libpayload/libc/getopt_long.c @@ -57,10 +57,8 @@ #include <libpayload.h> #include <getopt.h> #define warnx(x...) printf(x) -/* #include <stdlib.h> #include <string.h> -*/ #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 389d227..e3cf8bb 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 9a56ba1..465ae4f 100644 --- a/payloads/libpayload/libc/strings.c +++ b/payloads/libpayload/libc/strings.c @@ -27,6 +27,8 @@ * SUCH DAMAGE. */
+#include <strings.h> + int ffs(int i) { int count = 1; diff --git a/payloads/libpayload/libc/sysinfo.c b/payloads/libpayload/libc/sysinfo.c index 73a9ab5..b1cad50 100644 --- a/payloads/libpayload/libc/sysinfo.c +++ b/payloads/libpayload/libc/sysinfo.c @@ -30,8 +30,6 @@ #include <libpayload.h> #include <sysinfo.h>
-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 0b54ba3..203e770 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; }