1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef _LINUX_STRING_H_ 2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define _LINUX_STRING_H_ 3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* We don't want strings.h stuff being user by user stuff by accident */ 5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __KERNEL__ 7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#include <linux/compiler.h> /* for inline */ 9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#include <linux/types.h> /* for size_t */ 10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#include <linux/stddef.h> /* for NULL */ 11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __cplusplus 13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern "C" { 14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char *strndup_user(const char __user *, long); 17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* 19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru * Include machine specific inline routines 20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru */ 21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#include <asm/string.h> 22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRCPY 24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strcpy(char *,const char *); 25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRNCPY 27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strncpy(char *,const char *, __kernel_size_t); 28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRLCPY 30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Querusize_t strlcpy(char *, const char *, size_t); 31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 32c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRCAT 33c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strcat(char *, const char *); 34c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 35c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRNCAT 36c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strncat(char *, const char *, __kernel_size_t); 37c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 38c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRLCAT 39c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern size_t strlcat(char *, const char *, __kernel_size_t); 40c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 41c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRCMP 42c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern int strcmp(const char *,const char *); 43c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 44c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRNCMP 45c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern int strncmp(const char *,const char *,__kernel_size_t); 46c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 47c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRNICMP 48c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern int strnicmp(const char *, const char *, __kernel_size_t); 49c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 50c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRCHR 51c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strchr(const char *,int); 52c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 53c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRNCHR 54c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strnchr(const char *, size_t, int); 55c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 56c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRRCHR 57c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strrchr(const char *,int); 58c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 59c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strstrip(char *); 60c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRSTR 61c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strstr(const char *,const char *); 62c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 63c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRLEN 64c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern __kernel_size_t strlen(const char *); 65c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 66c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRNLEN 67c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern __kernel_size_t strnlen(const char *,__kernel_size_t); 68c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 69c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRPBRK 70c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strpbrk(const char *,const char *); 71c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 72c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRSEP 73c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char * strsep(char **,const char *); 74c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 75c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRSPN 76c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern __kernel_size_t strspn(const char *,const char *); 77c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 78c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_STRCSPN 79c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern __kernel_size_t strcspn(const char *,const char *); 80c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 81c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 82c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_MEMSET 83c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern void * memset(void *,int,__kernel_size_t); 84c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 85c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_MEMCPY 86c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern void * memcpy(void *,const void *,__kernel_size_t); 87c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 88c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_MEMMOVE 89c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern void * memmove(void *,const void *,__kernel_size_t); 90c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 91c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_MEMSCAN 92c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern void * memscan(void *,int,__kernel_size_t); 93c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 94c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_MEMCMP 95c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern int memcmp(const void *,const void *,__kernel_size_t); 96c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 97c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef __HAVE_ARCH_MEMCHR 98c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern void * memchr(const void *,int,__kernel_size_t); 99c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 100c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 101c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queruextern char *kstrdup(const char *s, gfp_t gfp); 102c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 103c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __cplusplus 104c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru} 105c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 106c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru 107c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif 108c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif /* _LINUX_STRING_H_ */ 109