#ifndef __ASM_I386_STRING_H #define __ASM_I386_STRING_H /* * We don't do inline string functions, since the * optimised inline asm versions are not small. */ #undef __HAVE_ARCH_STRNCPY extern char *strncpy(char *__dest, __const__ char *__src, __kernel_size_t __n); #undef __HAVE_ARCH_STRRCHR extern char *strrchr(const char *s, int c); #undef __HAVE_ARCH_STRCHR extern char *strchr(const char *s, int c); /* * Our assembly routines do not work on in 64-bit mode and we don't do a lot of * copying in SPL, so code size is more important there. */ #if defined(CONFIG_SPL_BUILD) || !IS_ENABLED(CONFIG_X86_32BIT_INIT) #undef __HAVE_ARCH_MEMCPY extern void *memcpy(void *, const void *, __kernel_size_t); #undef __HAVE_ARCH_MEMMOVE extern void *memmove(void *, const void *, __kernel_size_t); #undef __HAVE_ARCH_MEMSET extern void *memset(void *, int, __kernel_size_t); #else #define __HAVE_ARCH_MEMCPY extern void *memcpy(void *, const void *, __kernel_size_t); #define __HAVE_ARCH_MEMMOVE extern void *memmove(void *, const void *, __kernel_size_t); #define __HAVE_ARCH_MEMSET extern void *memset(void *, int, __kernel_size_t); #endif /* CONFIG_X86_64 */ #undef __HAVE_ARCH_MEMCHR extern void *memchr(const void *, int, __kernel_size_t); #undef __HAVE_ARCH_MEMZERO extern void memzero(void *ptr, __kernel_size_t n); #endif