X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_string.h;h=2e57bf97db0fcb52263266b2e51de6abe064167d;hb=e23a867d9dcecc70fc76adc0f89404dbc50e5b78;hp=7246cef7af7e63b9a81220610e934f044ac7f896;hpb=af355c370ac80f8e19d6375cb3070213c29a92eb;p=palacios.git diff --git a/palacios/include/palacios/vmm_string.h b/palacios/include/palacios/vmm_string.h index 7246cef..2e57bf9 100644 --- a/palacios/include/palacios/vmm_string.h +++ b/palacios/include/palacios/vmm_string.h @@ -1,18 +1,41 @@ -/* - * String library +/* * String library * Copyright (c) 2001,2004 David H. Hovemeyer - * $Revision: 1.2 $ - * - * This is free software. You are permitted to use, - * redistribute, and modify it as specified in the file "COPYING". + * Copyright (c) 2003, Jeffrey K. Hollingsworth + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without restriction, + * including without limitation the rights to use, copy, modify, merge, + * publish, distribute, sublicense, and/or sell copies of the Software, + * and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF + * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED + * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A + * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT + * SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE + * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR + * THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef STRING_H -#define STRING_H +/* Modifications: + * 2008, Jack Lange + * 2008, Lei Xia + */ + +#ifndef __VMM_STRING_H__ +#define __VMM_STRING_H__ #ifdef __V3VEE__ -#include +#include + void* memset(void* s, int c, size_t n); void* memcpy(void *dst, const void* src, size_t n); @@ -23,6 +46,7 @@ size_t strnlen(const char *s, size_t maxlen); int strcmp(const char* s1, const char* s2); int strncmp(const char* s1, const char* s2, size_t limit); char *strcat(char *s1, const char *s2); +char *strncat(char *s1, const char *s2, size_t limit); char *strcpy(char *dest, const char *src); char *strncpy(char *dest, const char *src, size_t limit); char *strdup(const char *s1); @@ -32,7 +56,22 @@ char *strrchr(const char *s, int c); char *strpbrk(const char *s, const char *accept); -double ceil(double x); + + + +#define isspace(c) (c == ' ' || c == '\f' || c == '\n' || c == '\r' || c == '\t' || c == '\v') +#define isascii(c) (((c) & ~0x7f) == 0) +#define isupper(c) ((c) >= 'A' && (c) <= 'Z') +#define islower(c) ((c) >= 'a' && (c) <= 'z') +#define isalpha(c) (isupper(c) || islower(c)) +#define isdigit(c) ((c) >= '0' && (c) <= '9') +#define isxdigit(c) (isdigit(c) \ + || ((c) >= 'A' && (c) <= 'F') \ + || ((c) >= 'a' && (c) <= 'f')) +#define isprint(c) ((c) >= ' ' && (c) <= '~') + +#define toupper(c) ((c) - 0x20 * (((c) >= 'a') && ((c) <= 'z'))) +#define tolower(c) ((c) + 0x20 * (((c) >= 'A') && ((c) <= 'Z'))) #endif // !__V3VEE__