Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / include / libc / string.h
diff --git a/qemu/roms/openbios/include/libc/string.h b/qemu/roms/openbios/include/libc/string.h
new file mode 100644 (file)
index 0000000..0e72f8d
--- /dev/null
@@ -0,0 +1,105 @@
+/*
+ *   Creation Date: <2002/10/12 20:41:57 samuel>
+ *   Time-stamp: <2003/10/25 12:51:22 samuel>
+ *
+ *     <string.h>
+ *
+ *     string library functions
+ *
+ *   Copyright (C) 2002, 2003 Samuel Rydh (samuel@ibrium.se)
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation
+ *
+ */
+
+#ifndef _H_STRING
+#define _H_STRING
+
+#include "config.h"
+
+#define bzero(s,n)     memset( s, 0, n )
+#define atol(nptr)     strtol(nptr, NULL, 10 )
+
+extern long    strtol( const char *nptr, char **endptr, int base );
+extern long long int strtoll( const char *nptr, char **endptr, int base );
+
+
+extern int     strnicmp(const char *s1, const char *s2, size_t len);
+extern char    *strcpy(char * dest,const char *src);
+extern char    *strncpy(char * dest,const char *src,size_t count);
+extern char    *strcat(char * dest, const char * src);
+extern char    *strncat(char *dest, const char *src, size_t count);
+extern int     strcmp(const char * cs,const char * ct);
+extern int     strncmp(const char * cs,const char * ct,size_t count);
+extern char    *strchr(const char * s, int c);
+extern char    *strrchr(const char * s, int c);
+extern size_t  strlen(const char * s);
+extern size_t  strnlen(const char * s, size_t count);
+extern char    *strpbrk(const char * cs,const char * ct);
+extern char    *strsep(char **s, const char *ct);
+extern void    *memset(void * s,int c,size_t count);
+extern void    *memcpy(void * dest,const void *src,size_t count);
+extern void    *memmove(void * dest,const void *src,size_t count);
+extern int     memcmp(const void * cs,const void * ct,size_t count);
+
+extern char    *strdup( const char *str );
+extern int     strcasecmp( const char *cs, const char *ct );
+extern int     strncasecmp( const char *cs, const char *ct, size_t count );
+
+extern  char   *strncpy_nopad( char *dest, const char *src, size_t n );
+
+#define _U      0x01    /* upper */
+#define _L      0x02    /* lower */
+#define _D      0x04    /* digit */
+#define _C      0x08    /* cntrl */
+#define _P      0x10    /* punct */
+#define _S      0x20    /* white space (space/lf/tab) */
+#define _X      0x40    /* hex digit */
+#define _SP     0x80    /* hard space (0x20) */
+
+extern const unsigned char _ctype[];
+
+#define __ismask(x) (_ctype[(int)(unsigned char)(x)])
+
+#define isalnum(c)      ((__ismask(c)&(_U|_L|_D)) != 0)
+#define isalpha(c)      ((__ismask(c)&(_U|_L)) != 0)
+#define iscntrl(c)      ((__ismask(c)&(_C)) != 0)
+#define isdigit(c)      ((__ismask(c)&(_D)) != 0)
+#define isgraph(c)      ((__ismask(c)&(_P|_U|_L|_D)) != 0)
+#define islower(c)      ((__ismask(c)&(_L)) != 0)
+#define isprint(c)      ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
+#define ispunct(c)      ((__ismask(c)&(_P)) != 0)
+#define isspace(c)      ((__ismask(c)&(_S)) != 0)
+#define isupper(c)      ((__ismask(c)&(_U)) != 0)
+#define isxdigit(c)     ((__ismask(c)&(_D|_X)) != 0)
+
+#define isascii(c) (((unsigned char)(c))<=0x7f)
+#define toascii(c) (((unsigned char)(c))&0x7f)
+
+
+static inline unsigned char __tolower(unsigned char c) {
+        if (isupper(c))
+                c -= 'A'-'a';
+        return c;
+}
+
+static inline unsigned char __toupper(unsigned char c) {
+        if (islower(c))
+                c -= 'a'-'A';
+        return c;
+}
+
+#define tolower(c) __tolower(c)
+#define toupper(c) __toupper(c)
+
+extern int errno_int;
+
+// Propolice support
+extern long __guard[8];
+
+void __stack_smash_handler(const char *func, int damaged);
+void __stack_chk_fail(void);
+
+#endif   /* _H_STRING */