xref: /llvm-project/libc/AOR_v20.02/string/include/stringlib.h (revision 0928368f623a0f885894f9c3ef1b740b060c0d9c)
1*0928368fSKristof Beyls /*
2*0928368fSKristof Beyls  * Public API.
3*0928368fSKristof Beyls  *
4*0928368fSKristof Beyls  * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*0928368fSKristof Beyls  * See https://llvm.org/LICENSE.txt for license information.
6*0928368fSKristof Beyls  * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*0928368fSKristof Beyls  */
8*0928368fSKristof Beyls 
9*0928368fSKristof Beyls #include <stddef.h>
10*0928368fSKristof Beyls 
11*0928368fSKristof Beyls /* restrict is not needed, but kept for documenting the interface contract.  */
12*0928368fSKristof Beyls #ifndef __restrict
13*0928368fSKristof Beyls # define __restrict
14*0928368fSKristof Beyls #endif
15*0928368fSKristof Beyls 
16*0928368fSKristof Beyls #if __aarch64__
17*0928368fSKristof Beyls void *__memcpy_aarch64 (void *__restrict, const void *__restrict, size_t);
18*0928368fSKristof Beyls void *__memmove_aarch64 (void *, const void *, size_t);
19*0928368fSKristof Beyls void *__memset_aarch64 (void *, int, size_t);
20*0928368fSKristof Beyls void *__memchr_aarch64 (const void *, int, size_t);
21*0928368fSKristof Beyls int __memcmp_aarch64 (const void *, const void *, size_t);
22*0928368fSKristof Beyls char *__strcpy_aarch64 (char *__restrict, const char *__restrict);
23*0928368fSKristof Beyls char *__stpcpy_aarch64 (char *__restrict, const char *__restrict);
24*0928368fSKristof Beyls int __strcmp_aarch64 (const char *, const char *);
25*0928368fSKristof Beyls char *__strchr_aarch64 (const char *, int);
26*0928368fSKristof Beyls char *__strrchr_aarch64 (const char *, int);
27*0928368fSKristof Beyls char *__strchrnul_aarch64 (const char *, int );
28*0928368fSKristof Beyls size_t __strlen_aarch64 (const char *);
29*0928368fSKristof Beyls size_t __strnlen_aarch64 (const char *, size_t);
30*0928368fSKristof Beyls int __strncmp_aarch64 (const char *, const char *, size_t);
31*0928368fSKristof Beyls char *__strchr_aarch64_mte (const char *, int);
32*0928368fSKristof Beyls size_t __strlen_aarch64_mte (const char *);
33*0928368fSKristof Beyls #if __ARM_NEON
34*0928368fSKristof Beyls void *__memcpy_aarch64_simd (void *__restrict, const void *__restrict, size_t);
35*0928368fSKristof Beyls void *__memmove_aarch64_simd (void *, const void *, size_t);
36*0928368fSKristof Beyls #endif
37*0928368fSKristof Beyls # if __ARM_FEATURE_SVE
38*0928368fSKristof Beyls void *__memchr_aarch64_sve (const void *, int, size_t);
39*0928368fSKristof Beyls int __memcmp_aarch64_sve (const void *, const void *, size_t);
40*0928368fSKristof Beyls char *__strchr_aarch64_sve (const char *, int);
41*0928368fSKristof Beyls char *__strrchr_aarch64_sve (const char *, int);
42*0928368fSKristof Beyls char *__strchrnul_aarch64_sve (const char *, int );
43*0928368fSKristof Beyls int __strcmp_aarch64_sve (const char *, const char *);
44*0928368fSKristof Beyls char *__strcpy_aarch64_sve (char *__restrict, const char *__restrict);
45*0928368fSKristof Beyls char *__stpcpy_aarch64_sve (char *__restrict, const char *__restrict);
46*0928368fSKristof Beyls size_t __strlen_aarch64_sve (const char *);
47*0928368fSKristof Beyls size_t __strnlen_aarch64_sve (const char *, size_t);
48*0928368fSKristof Beyls int __strncmp_aarch64_sve (const char *, const char *, size_t);
49*0928368fSKristof Beyls # endif
50*0928368fSKristof Beyls #elif __arm__
51*0928368fSKristof Beyls void *__memcpy_arm (void *__restrict, const void *__restrict, size_t);
52*0928368fSKristof Beyls void *__memset_arm (void *, int, size_t);
53*0928368fSKristof Beyls void *__memchr_arm (const void *, int, size_t);
54*0928368fSKristof Beyls char *__strcpy_arm (char *__restrict, const char *__restrict);
55*0928368fSKristof Beyls int __strcmp_arm (const char *, const char *);
56*0928368fSKristof Beyls int __strcmp_armv6m (const char *, const char *);
57*0928368fSKristof Beyls size_t __strlen_armv6t2 (const char *);
58*0928368fSKristof Beyls #endif
59