]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BasePeCoffLib/BasePeCoffLibInternals.h
MdePkg/BasePeCoff: Add RISC-V PE/Coff related code.
[mirror_edk2.git] / MdePkg / Library / BasePeCoffLib / BasePeCoffLibInternals.h
index b2aa0d1bd415deee4c7c0b0374a1b2cf13d1b3c8..3ee56e0e5f56ea21a1de48bdd3103dbd2e2655f8 100644 (file)
@@ -1,14 +1,9 @@
 /** @file\r
   Declaration of internal functions in PE/COFF Lib.\r
 \r
-  Copyright (c) 2006 -2010, Intel Corporation. All rights reserved.<BR>\r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php.\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
+  Portions Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
 #include <Library/PeCoffExtraActionLib.h>\r
 #include <IndustryStandard/PeImage.h>\r
 \r
+//\r
+// Macro definitions for RISC-V architecture.\r
+//\r
+#define RV_X(x, s, n) (((x) >> (s)) & ((1<<(n))-1))\r
+#define RISCV_IMM_BITS 12\r
+#define RISCV_IMM_REACH (1LL<<RISCV_IMM_BITS)\r
+#define RISCV_CONST_HIGH_PART(VALUE) \\r
+  (((VALUE) + (RISCV_IMM_REACH/2)) & ~(RISCV_IMM_REACH-1))\r
 \r
 \r
 /**\r
@@ -116,8 +119,9 @@ PeCoffLoaderGetPeHeader (
 /**\r
   Converts an image address to the loaded address.\r
 \r
-  @param  ImageContext  The context of the image being loaded.\r
-  @param  Address       The address to be converted to the loaded address.\r
+  @param  ImageContext      The context of the image being loaded.\r
+  @param  Address           The address to be converted to the loaded address.\r
+  @param  TeStrippedOffset  Stripped offset for TE image.\r
 \r
   @return The converted address or NULL if the address can not be converted.\r
 \r
@@ -125,7 +129,8 @@ PeCoffLoaderGetPeHeader (
 VOID *\r
 PeCoffLoaderImageAddress (\r
   IN OUT PE_COFF_LOADER_IMAGE_CONTEXT          *ImageContext,\r
-  IN     UINTN                                 Address\r
+  IN     UINTN                                 Address,\r
+  IN     UINTN                                 TeStrippedOffset\r
   );\r
 \r
 #endif\r