[coreboot] [PATCH]libpayload: libc-style headers, some more functions

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Wed Jun 16 09:35:38 CEST 2010


On 15.06.2010 21:25, Patrick Georgi wrote:
> attached patch moves functions out of the huge libpayload.h into headers
> according to libc/posix traditions, to simplify porting applications to
> payloads.
>   

Very much appreciated. This makes working with libpayload a lot easier.


> It also adds a couple of functions:
> strcasecmp, strncasecmp, strcat, strtol, strspn, strcspn, strtok_r,
> strtok, perror, exit, getpagesize
>   

Could you make perror() a wrapper for strerror()? flashrom will move to
strerror() soon to behave more like a library.


> Signed-off-by: Patrick Georgi <patrick.georgi at coresystems.de>
>   

I didn't review the code in depth, so my comments may be incomplete.
Did you write those functions from scratch, or did you merge proven code
from a BSD licensed codebase?


> +int strtol(const char *ptr, char **endptr, int base)
>   

strtol is long int, not int.


> +char *strcat(char *d, const char *s)
>   

What about more descriptive argument names?
char *strcat(char *dest, const char *src);


> +size_t strspn(const char *s, const char *a)
>   

size_t strspn(const char *s, const char *accept);


> +size_t strcspn(const char *s, const char *a)
>   

size_t strcspn(const char *s, const char *reject);


> +char* strtok_r(char *str, const char *delim, char **ptr)

char *strtok_r(char *str, const char *delim, char **saveptr);


> Index: include/pci.h
> ===================================================================
> --- include/pci.h	(Revision 5631)
> +++ include/pci.h	(Arbeitskopie)
> @@ -36,8 +36,11 @@
>  
>  #define REG_VENDOR_ID   0x00
>  #define REG_COMMAND     0x04
> +#define REG_CLASS_DEV   0x0A
>  #define REG_HEADER_TYPE 0x0E
>  #define REG_PRIMARY_BUS 0x18
> +#define REG_SUBSYS_VENDOR_ID	0x2C
> +#define REG_SUBSYS_ID	0x2E
>  
>  #define REG_COMMAND_BM  (1 << 2)
>  
>   

Here is seems you're using both spaces and tabs between the identifier
and the value. Apart from that, I found that some places use spaces for
indentation instead of tabs.


> Index: libc/lib.c
> ===================================================================
> --- libc/lib.c	(Revision 5631)
> +++ libc/lib.c	(Arbeitskopie)
> @@ -113,3 +113,13 @@
>  	halt();
>  }
>  
> +void exit(int status)
> +{
> +	printf("exited with status %d\n", status);
> +	halt();
> +}
> +
> +int getpagesize(void)
> +{
> +	return 4096;
>   

Maybe wrap that in a check for x86. OTOH, if this function is used to
determine mmap granularity, it should return 1 instead of 4096.


Regards,
Carl-Daniel

-- 
http://www.hailfinger.org/





More information about the coreboot mailing list