Prepare v2023.10
[platform/kernel/u-boot.git] / arch / x86 / include / asm / string.h
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