[coreboot] libpayload: libc/ctype.c rewrite/finishing

Jordan Crouse jordan.crouse at amd.com
Fri Apr 11 21:13:01 CEST 2008


On 11/04/08 21:03 +0200, Uwe Hermann wrote:
> See patch.
> 
> 
> Uwe.
> -- 
> http://www.hermann-uwe.de  | http://www.holsham-traders.de
> http://www.crazy-hacks.org | http://www.unmaintained-free-software.org

> Rewrite and filling of libc/ctype.c (thus adjusting copyright line).
> 
> Use a simple one-liner for each of the functions. You can surely optimize
> the code some more, but I chose not to do that in order to keep it readable.
> When compiling with -Os the size differences are minimal.
> 
> Signed-off-by: Uwe Hermann <uwe at hermann-uwe.de>
Acked-by: Jordan Crouse <jordan.crouse at amd.com>

Also acknowledge the rewrite and the change in copyright.

> Index: include/libpayload.h
> ===================================================================
> --- include/libpayload.h	(Revision 3234)
> +++ include/libpayload.h	(Arbeitskopie)
> @@ -103,9 +103,21 @@
>  #define havechar havekey
>  
>  /* libc/ctype.c */
> +int isalnum(int c);
> +int isalpha(int c);
> +int isascii(int c);
> +int isblank(int c);
> +int iscntrl(int c);
> +int isdigit(int c);
> +int isgraph(int c);
> +int islower(int c);
> +int isprint(int c);
> +int ispunct(int c);
>  int isspace(int c);
> -int isdigit(int c);
> +int isupper(int c);
> +int isxdigit(int c);
>  int tolower(int c);
> +int toupper(int c);
>  
>  /* libc/ipchecksum.c */
>  unsigned short ipchksum(const unsigned short *ptr, unsigned long nbytes);
> Index: libc/ctype.c
> ===================================================================
> --- libc/ctype.c	(Revision 3234)
> +++ libc/ctype.c	(Arbeitskopie)
> @@ -1,7 +1,7 @@
>  /*
>   * This file is part of the libpayload project.
>   *
> - * Copyright (C) 2008 Advanced Micro Devices, Inc.
> + * Copyright (C) 2008 Uwe Hermann <uwe at hermann-uwe.de>
>   *
>   * Redistribution and use in source and binary forms, with or without
>   * modification, are permitted provided that the following conditions
> @@ -29,34 +29,78 @@
>  
>  #include <libpayload.h>
>  
> -int isspace(int c)
> +int isalpha(int c)
>  {
> -	switch (c) {
> -	case ' ':
> -	case '\f':
> -	case '\n':
> -	case '\r':
> -	case '\t':
> -	case '\v':
> -		return 1;
> -	default:
> -		return 0;
> -	}
> +	return ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
>  }
>  
> +int isascii(int c)
> +{
> +	return (c >= 0 && c <= 127);
> +}
> +
> +int isblank(int c)
> +{
> +	return (c == ' ' || c == '\t');
> +}
> +
> +int iscntrl(int c)
> +{
> +	return (c <= 31 || c == 127);
> +}
> +
>  int isdigit(int c)
>  {
> -	switch (c) {
> -	case '0'...'9':
> -		return 1;
> -	default:
> -		return 0;
> -	}
> +	return (c >= '0' && c <= '9');
>  }
>  
> +int isalnum(int c)
> +{
> +	return isalpha(c) || isdigit(c);
> +}
> +
> +int isgraph(int c)
> +{
> +	return (c >= 33 && c <= 126);
> +}
> +
> +int islower(int c)
> +{
> +	return (c >= 'a' && c <= 'z');
> +}
> +
> +int isprint(int c)
> +{
> +	return (c >= 32 && c <= 126);
> +}
> +
> +int ispunct(int c)
> +{
> +	return isprint(c) && !isspace(c) && !isalnum(c);
> +}
> +
> +int isspace(int c)
> +{
> +	return (c == ' ' || (c >= '\t' || c <= '\r'));
> +}
> +
> +int isupper(int c)
> +{
> +	return (c >= 'A' && c <= 'Z');
> +}
> +
> +int isxdigit(int c)
> +{
> +	return isdigit(c) || (tolower(c) >= 'a' && tolower(c) <= 'z');
> +}
> +
>  int tolower(int c)
>  {
> -	if (c >= 'A' && c <= 'Z')
> -		return c - 'A' + 'a';
> -	return c;
> +	return (c >= 'A' && c <= 'Z') ? (c + 32) : c;
>  }
> +
> +int toupper(int c)
> +{
> +	return (c >= 'a' && c <= 'z') ? (c - 32) : c;
> +}
> +

> -- 
> coreboot mailing list
> coreboot at coreboot.org
> http://www.coreboot.org/mailman/listinfo/coreboot

-- 
Jordan Crouse
Systems Software Development Engineer 
Advanced Micro Devices, Inc.





More information about the coreboot mailing list