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