]> git.proxmox.com Git - mirror_edk2.git/blame - UnixPkg/Library/UnixBaseLib/SwapBytes32.c
MdePkg/BaseSynchronizationLib: Added ARM Aarch64 architecture support
[mirror_edk2.git] / UnixPkg / Library / UnixBaseLib / SwapBytes32.c
CommitLineData
5fc3b5d6 1/** @file\r
2 Math worker functions.\r
3\r
4 Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR>\r
5 This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php.\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15\r
16\r
17\r
18#include "BaseLibInternals.h"\r
19\r
20/**\r
21 Switches the endianess of a 32-bit integer.\r
22\r
23 This function swaps the bytes in a 32-bit unsigned value to switch the value\r
24 from little endian to big endian or vice versa. The byte swapped value is\r
25 returned.\r
26\r
27 @param Value A 32-bit unsigned value.\r
28\r
29 @return The byte swapped Value.\r
30\r
31**/\r
32UINT32\r
33EFIAPI\r
34SwapBytes32 (\r
35 IN UINT32 Value\r
36 )\r
37{\r
38 UINT32 LowerBytes;\r
39 UINT32 HigherBytes;\r
40\r
41 LowerBytes = (UINT32) SwapBytes16 ((UINT16) Value);\r
42 HigherBytes = (UINT32) SwapBytes16 ((UINT16) (Value >> 16));\r
43\r
44 return (LowerBytes << 16 | HigherBytes);\r
45}\r