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