]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Library/CompilerIntrinsicsLib/memcpy.c
e1d0b72782d7d9407676b9783f966c007b5a4b04
[mirror_edk2.git] / ArmPkg / Library / CompilerIntrinsicsLib / memcpy.c
1 //------------------------------------------------------------------------------
2 //
3 // Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>
4 // Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
5 //
6 // SPDX-License-Identifier: BSD-2-Clause-Patent
7 //
8 //------------------------------------------------------------------------------
9
10 typedef __SIZE_TYPE__ size_t;
11
12 static void __memcpy(void *dest, const void *src, size_t n)
13 {
14 unsigned char *d;
15 unsigned char const *s;
16
17 d = dest;
18 s = src;
19
20 while (n-- != 0) {
21 *d++ = *s++;
22 }
23 }
24
25 void *memcpy(void *dest, const void *src, size_t n)
26 {
27 __memcpy(dest, src, n);
28 return dest;
29 }
30
31 #ifdef __arm__
32
33 __attribute__((__alias__("__memcpy")))
34 void __aeabi_memcpy(void *dest, const void *src, size_t n);
35
36 __attribute__((__alias__("__memcpy")))
37 void __aeabi_memcpy4(void *dest, const void *src, size_t n);
38
39 __attribute__((__alias__("__memcpy")))
40 void __aeabi_memcpy8(void *dest, const void *src, size_t n);
41
42 #endif