]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseLib/BitField.c
Synchronize function comment in MdePkg\Library\BaseLib.h with the instance of this...
[mirror_edk2.git] / MdePkg / Library / BaseLib / BitField.c
index 9c9981e31457b26ebb7cf1350cbc4b165dde6464..533a07564641cb01f1b0ccb2e25e01e2f37a0121 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Bit field functions of BaseLib.\r
 \r
-  Copyright (c) 2006, Intel Corporation<BR>\r
+  Copyright (c) 2006 - 2008, Intel Corporation<BR>\r
   All rights reserved. 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
   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
 \r
-  Module Name:  BitField.c\r
-\r
 **/\r
 \r
-//\r
-// Include common header file for this module.\r
-//\r
-#include "CommonHeader.h"\r
-\r
 #include "BaseLibInternals.h"\r
 \r
 /**\r
   @return The bit field read.\r
 \r
 **/\r
-unsigned int\r
+UINTN\r
+EFIAPI\r
 BitFieldReadUint (\r
-  IN      unsigned int              Operand,\r
+  IN      UINTN                     Operand,\r
   IN      UINTN                     StartBit,\r
   IN      UINTN                     EndBit\r
   )\r
 {\r
   //\r
-  // ~((unsigned int)-2 << EndBit) is a mask in which bit[0] thru bit[EndBit]\r
+  // ~((UINTN)-2 << EndBit) is a mask in which bit[0] thru bit[EndBit]\r
   // are 1's while bit[EndBit + 1] thru the most significant bit are 0's.\r
   //\r
-  return (Operand & ~((unsigned int)-2 << EndBit)) >> StartBit;\r
+  return (Operand & ~((UINTN)-2 << EndBit)) >> StartBit;\r
 }\r
 \r
 /**\r
@@ -63,19 +57,20 @@ BitFieldReadUint (
   @return The new value.\r
 \r
 **/\r
-unsigned int\r
+UINTN\r
+EFIAPI\r
 BitFieldOrUint (\r
-  IN      unsigned int              Operand,\r
+  IN      UINTN                     Operand,\r
   IN      UINTN                     StartBit,\r
   IN      UINTN                     EndBit,\r
-  IN      unsigned int              OrData\r
+  IN      UINTN                     OrData\r
   )\r
 {\r
   //\r
-  // ~((unsigned int)-2 << EndBit) is a mask in which bit[0] thru bit[EndBit]\r
+  // ~((UINTN)-2 << EndBit) is a mask in which bit[0] thru bit[EndBit]\r
   // are 1's while bit[EndBit + 1] thru the most significant bit are 0's.\r
   //\r
-  return Operand | ((OrData << StartBit) & ~((unsigned int) -2 << EndBit));\r
+  return Operand | ((OrData << StartBit) & ~((UINTN) -2 << EndBit));\r
 }\r
 \r
 /**\r
@@ -94,19 +89,20 @@ BitFieldOrUint (
   @return The new value.\r
 \r
 **/\r
-unsigned int\r
+UINTN\r
+EFIAPI\r
 BitFieldAndUint (\r
-  IN      unsigned int              Operand,\r
+  IN      UINTN                     Operand,\r
   IN      UINTN                     StartBit,\r
   IN      UINTN                     EndBit,\r
-  IN      unsigned int              AndData\r
+  IN      UINTN                     AndData\r
   )\r
 {\r
   //\r
-  // ~((unsigned int)-2 << EndBit) is a mask in which bit[0] thru bit[EndBit]\r
+  // ~((UINTN)-2 << EndBit) is a mask in which bit[0] thru bit[EndBit]\r
   // are 1's while bit[EndBit + 1] thru the most significant bit are 0's.\r
   //\r
-  return Operand & ~((~AndData << StartBit) & ~((unsigned int) -2 << EndBit));\r
+  return Operand & ~((~AndData << StartBit) & ~((UINTN)-2 << EndBit));\r
 }\r
 \r
 /**\r
@@ -136,7 +132,7 @@ BitFieldRead8 (
   IN      UINTN                     EndBit\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 8);\r
   ASSERT (StartBit <= EndBit);\r
   return (UINT8)BitFieldReadUint (Operand, StartBit, EndBit);\r
 }\r
@@ -172,7 +168,7 @@ BitFieldWrite8 (
   IN      UINT8                     Value\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 8);\r
   ASSERT (StartBit <= EndBit);\r
   return BitFieldAndThenOr8 (Operand, StartBit, EndBit, 0, Value);\r
 }\r
@@ -209,7 +205,7 @@ BitFieldOr8 (
   IN      UINT8                     OrData\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 8);\r
   ASSERT (StartBit <= EndBit);\r
   return (UINT8)BitFieldOrUint (Operand, StartBit, EndBit, OrData);\r
 }\r
@@ -246,7 +242,7 @@ BitFieldAnd8 (
   IN      UINT8                     AndData\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 8);\r
   ASSERT (StartBit <= EndBit);\r
   return (UINT8)BitFieldAndUint (Operand, StartBit, EndBit, AndData);\r
 }\r
@@ -286,7 +282,7 @@ BitFieldAndThenOr8 (
   IN      UINT8                     OrData\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 8);\r
   ASSERT (StartBit <= EndBit);\r
   return BitFieldOr8 (\r
            BitFieldAnd8 (Operand, StartBit, EndBit, AndData),\r
@@ -323,7 +319,7 @@ BitFieldRead16 (
   IN      UINTN                     EndBit\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 16);\r
   ASSERT (StartBit <= EndBit);\r
   return (UINT16)BitFieldReadUint (Operand, StartBit, EndBit);\r
 }\r
@@ -359,7 +355,7 @@ BitFieldWrite16 (
   IN      UINT16                    Value\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 16);\r
   ASSERT (StartBit <= EndBit);\r
   return BitFieldAndThenOr16 (Operand, StartBit, EndBit, 0, Value);\r
 }\r
@@ -396,7 +392,7 @@ BitFieldOr16 (
   IN      UINT16                    OrData\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 16);\r
   ASSERT (StartBit <= EndBit);\r
   return (UINT16)BitFieldOrUint (Operand, StartBit, EndBit, OrData);\r
 }\r
@@ -433,7 +429,7 @@ BitFieldAnd16 (
   IN      UINT16                    AndData\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 16);\r
   ASSERT (StartBit <= EndBit);\r
   return (UINT16)BitFieldAndUint (Operand, StartBit, EndBit, AndData);\r
 }\r
@@ -473,7 +469,7 @@ BitFieldAndThenOr16 (
   IN      UINT16                    OrData\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 16);\r
   ASSERT (StartBit <= EndBit);\r
   return BitFieldOr16 (\r
            BitFieldAnd16 (Operand, StartBit, EndBit, AndData),\r
@@ -510,7 +506,7 @@ BitFieldRead32 (
   IN      UINTN                     EndBit\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 32);\r
   ASSERT (StartBit <= EndBit);\r
   return (UINT32)BitFieldReadUint (Operand, StartBit, EndBit);\r
 }\r
@@ -546,7 +542,7 @@ BitFieldWrite32 (
   IN      UINT32                    Value\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 32);\r
   ASSERT (StartBit <= EndBit);\r
   return BitFieldAndThenOr32 (Operand, StartBit, EndBit, 0, Value);\r
 }\r
@@ -583,7 +579,7 @@ BitFieldOr32 (
   IN      UINT32                    OrData\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 32);\r
   ASSERT (StartBit <= EndBit);\r
   return (UINT32)BitFieldOrUint (Operand, StartBit, EndBit, OrData);\r
 }\r
@@ -620,7 +616,7 @@ BitFieldAnd32 (
   IN      UINT32                    AndData\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 32);\r
   ASSERT (StartBit <= EndBit);\r
   return (UINT32)BitFieldAndUint (Operand, StartBit, EndBit, AndData);\r
 }\r
@@ -660,7 +656,7 @@ BitFieldAndThenOr32 (
   IN      UINT32                    OrData\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 32);\r
   ASSERT (StartBit <= EndBit);\r
   return BitFieldOr32 (\r
            BitFieldAnd32 (Operand, StartBit, EndBit, AndData),\r
@@ -697,7 +693,7 @@ BitFieldRead64 (
   IN      UINTN                     EndBit\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 64);\r
   ASSERT (StartBit <= EndBit);\r
   return RShiftU64 (Operand & ~LShiftU64 ((UINT64)-2, EndBit), StartBit);\r
 }\r
@@ -733,7 +729,7 @@ BitFieldWrite64 (
   IN      UINT64                    Value\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 64);\r
   ASSERT (StartBit <= EndBit);\r
   return BitFieldAndThenOr64 (Operand, StartBit, EndBit, 0, Value);\r
 }\r
@@ -773,7 +769,7 @@ BitFieldOr64 (
   UINT64  Value1;\r
   UINT64  Value2;\r
 \r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 64);\r
   ASSERT (StartBit <= EndBit);\r
 \r
   Value1 = LShiftU64 (OrData, StartBit);\r
@@ -817,7 +813,7 @@ BitFieldAnd64 (
   UINT64  Value1;\r
   UINT64  Value2;\r
   \r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 64);\r
   ASSERT (StartBit <= EndBit);\r
 \r
   Value1 = LShiftU64 (~AndData, StartBit);\r
@@ -861,7 +857,7 @@ BitFieldAndThenOr64 (
   IN      UINT64                    OrData\r
   )\r
 {\r
-  ASSERT (EndBit < sizeof (Operand) * 8);\r
+  ASSERT (EndBit < 64);\r
   ASSERT (StartBit <= EndBit);\r
   return BitFieldOr64 (\r
            BitFieldAnd64 (Operand, StartBit, EndBit, AndData),\r