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