1 #ifndef __ASM_I386_STRING_H 2 #define __ASM_I386_STRING_H 3 4 /* 5 * We don't do inline string functions, since the 6 * optimised inline asm versions are not small. 7 */ 8 #undef __HAVE_ARCH_STRNCPY 9 extern char *strncpy(char *__dest, __const__ char *__src, __kernel_size_t __n); 10 11 #undef __HAVE_ARCH_STRRCHR 12 extern char *strrchr(const char *s, int c); 13 14 #undef __HAVE_ARCH_STRCHR 15 extern char *strchr(const char *s, int c); 16 17 /* 18 * Our assembly routines do not work on in 64-bit mode and we don't do a lot of 19 * copying in SPL, so code size is more important there. 20 */ 21 #if defined(CONFIG_SPL_BUILD) || !IS_ENABLED(CONFIG_X86_32BIT_INIT) 22 23 #undef __HAVE_ARCH_MEMCPY 24 extern void *memcpy(void *, const void *, __kernel_size_t); 25 26 #undef __HAVE_ARCH_MEMMOVE 27 extern void *memmove(void *, const void *, __kernel_size_t); 28 29 #undef __HAVE_ARCH_MEMSET 30 extern void *memset(void *, int, __kernel_size_t); 31 32 #else 33 34 #define __HAVE_ARCH_MEMCPY 35 extern void *memcpy(void *, const void *, __kernel_size_t); 36 37 #define __HAVE_ARCH_MEMMOVE 38 extern void *memmove(void *, const void *, __kernel_size_t); 39 40 #define __HAVE_ARCH_MEMSET 41 extern void *memset(void *, int, __kernel_size_t); 42 43 #endif /* CONFIG_X86_64 */ 44 45 #undef __HAVE_ARCH_MEMCHR 46 extern void *memchr(const void *, int, __kernel_size_t); 47 48 #undef __HAVE_ARCH_MEMZERO 49 extern void memzero(void *ptr, __kernel_size_t n); 50 51 #endif 52