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