1/* 2 * Public API. 3 * 4 * Copyright (c) 2019-2021, Arm Limited. 5 * SPDX-License-Identifier: MIT 6 */ 7 8#include <stddef.h> 9 10/* restrict is not needed, but kept for documenting the interface contract. */ 11#ifndef __restrict 12# define __restrict 13#endif 14 15#if __aarch64__ 16void *__memcpy_aarch64 (void *__restrict, const void *__restrict, size_t); 17void *__memmove_aarch64 (void *, const void *, size_t); 18void *__memset_aarch64 (void *, int, size_t); 19void *__memchr_aarch64 (const void *, int, size_t); 20void *__memrchr_aarch64 (const void *, int, size_t); 21int __memcmp_aarch64 (const void *, const void *, size_t); 22char *__strcpy_aarch64 (char *__restrict, const char *__restrict); 23char *__stpcpy_aarch64 (char *__restrict, const char *__restrict); 24int __strcmp_aarch64 (const char *, const char *); 25char *__strchr_aarch64 (const char *, int); 26char *__strrchr_aarch64 (const char *, int); 27char *__strchrnul_aarch64 (const char *, int ); 28size_t __strlen_aarch64 (const char *); 29size_t __strnlen_aarch64 (const char *, size_t); 30int __strncmp_aarch64 (const char *, const char *, size_t); 31void * __memchr_aarch64_mte (const void *, int, size_t); 32char *__strcpy_aarch64_mte (char *__restrict, const char *__restrict); 33char *__stpcpy_aarch64_mte (char *__restrict, const char *__restrict); 34char *__strchr_aarch64_mte (const char *, int); 35char * __strchrnul_aarch64_mte (const char *, int ); 36size_t __strlen_aarch64_mte (const char *); 37char *__strrchr_aarch64_mte (const char *, int); 38int __strcmp_aarch64_mte (const char *, const char *); 39int __strncmp_aarch64_mte (const char *, const char *, size_t); 40#if __ARM_NEON 41void *__memcpy_aarch64_simd (void *__restrict, const void *__restrict, size_t); 42void *__memmove_aarch64_simd (void *, const void *, size_t); 43#endif 44# if __ARM_FEATURE_SVE 45void *__memchr_aarch64_sve (const void *, int, size_t); 46int __memcmp_aarch64_sve (const void *, const void *, size_t); 47char *__strchr_aarch64_sve (const char *, int); 48char *__strrchr_aarch64_sve (const char *, int); 49char *__strchrnul_aarch64_sve (const char *, int ); 50int __strcmp_aarch64_sve (const char *, const char *); 51char *__strcpy_aarch64_sve (char *__restrict, const char *__restrict); 52char *__stpcpy_aarch64_sve (char *__restrict, const char *__restrict); 53size_t __strlen_aarch64_sve (const char *); 54size_t __strnlen_aarch64_sve (const char *, size_t); 55int __strncmp_aarch64_sve (const char *, const char *, size_t); 56# endif 57# if __ARM_FEATURE_MEMORY_TAGGING 58void *__mtag_tag_region (void *, size_t); 59void *__mtag_tag_zero_region (void *, size_t); 60# endif 61#elif __arm__ 62void *__memcpy_arm (void *__restrict, const void *__restrict, size_t); 63void *__memset_arm (void *, int, size_t); 64void *__memchr_arm (const void *, int, size_t); 65char *__strcpy_arm (char *__restrict, const char *__restrict); 66int __strcmp_arm (const char *, const char *); 67int __strcmp_armv6m (const char *, const char *); 68size_t __strlen_armv6t2 (const char *); 69#endif 70