VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/FirmwareNew/MdePkg/Library/CompilerIntrinsicsLib/memmove_ms.c

Last change on this file was 108794, checked in by vboxsync, 4 weeks ago

Devices/EFI/FirmwareNew: Merge edk2-stable202502 from the vendor branch and make it build for the important platforms, bugref:4643

  • Property svn:eol-style set to native
File size: 881 bytes
Line 
1// ------------------------------------------------------------------------------
2//
3// Copyright (c) 2019, Pete Batard. All rights reserved.
4// Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
5//
6// SPDX-License-Identifier: BSD-2-Clause-Patent
7//
8// ------------------------------------------------------------------------------
9
10#if defined (_M_ARM64)
11typedef unsigned __int64 size_t;
12#else
13typedef unsigned __int32 size_t;
14#endif
15
16void *
17memmove (
18 void *,
19 const void *,
20 size_t
21 );
22
23#pragma intrinsic(memmove)
24#pragma function(memmove)
25void *
26memmove (
27 void *dest,
28 const void *src,
29 size_t n
30 )
31{
32 unsigned char *d;
33 unsigned char const *s;
34
35 d = dest;
36 s = src;
37
38 if (d < s) {
39 while (n-- != 0) {
40 *d++ = *s++;
41 }
42 } else {
43 d += n;
44 s += n;
45 while (n-- != 0) {
46 *--d = *--s;
47 }
48 }
49
50 return dest;
51}
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette