4.3BSD says that bcopy and bzero are defined in strings.h, not string.h
[people/xl0/gpxe.git] / src / include / string.h
1 /*
2  *  Copyright (C) 1991, 1992  Linus Torvalds
3  *  Copyright (C) 2004 Tobias Lorenz
4  *
5  *  string handling functions
6  *  based on linux/include/linux/ctype.h
7  *       and linux/include/linux/string.h
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License version 2 as
11  * published by the Free Software Foundation.
12  */
13
14 #ifndef ETHERBOOT_STRING_H
15 #define ETHERBOOT_STRING_H
16
17 #include "stddef.h"
18 #include "bits/string.h"
19
20
21 /* *** FROM ctype.h *** */
22
23 #define isdigit(c)      ((c & 0x04) != 0)
24 #define islower(c)      ((c & 0x02) != 0)
25 //#define isspace(c)    ((c & 0x20) != 0)
26 #define isupper(c)      ((c & 0x01) != 0)
27
28 static inline unsigned char tolower(unsigned char c)
29 {
30         if (isupper(c))
31                 c -= 'A'-'a';
32         return c;
33 }
34
35 static inline unsigned char toupper(unsigned char c)
36 {
37         if (islower(c))
38                 c -= 'a'-'A';
39         return c;
40 }
41
42
43 /* *** FROM string.h *** */
44
45 int strnicmp(const char *s1, const char *s2, size_t len);
46 char * strcpy(char * dest,const char *src);
47 char * strncpy(char * dest,const char *src,size_t count);
48 char * strcat(char * dest, const char * src);
49 char * strncat(char *dest, const char *src, size_t count);
50 int __attribute__ (( pure )) strcmp(const char * cs,const char * ct);
51 int __attribute__ (( pure )) strncmp(const char * cs,const char * ct,
52                                      size_t count);
53 char * strchr(const char * s, int c);
54 char * strrchr(const char * s, int c);
55 size_t strlen(const char * s);
56 size_t strnlen(const char * s, size_t count);
57 size_t strspn(const char *s, const char *accept);
58 char * strpbrk(const char * cs,const char * ct);
59 char * strtok(char * s,const char * ct);
60 char * strsep(char **s, const char *ct);
61 void * memset(void * s,int c,size_t count);
62 void * memmove(void * dest,const void *src,size_t count);
63 int __attribute__ (( pure )) memcmp(const void * cs,const void * ct,
64                                     size_t count);
65 void * memscan(void * addr, int c, size_t size);
66 char * strstr(const char * s1,const char * s2);
67 void * memchr(const void *s, int c, size_t n);
68 char * strdup(const char *s);
69
70 extern const char * strerror ( int errno );
71
72 #endif /* ETHERBOOT_STRING */