-\r
-/**\r
- Reads a bit field from a 16-bit value, performs a bitwise OR, and returns the\r
- result.\r
-\r
- Performs a bitwise inclusive OR between the bit field specified by StartBit\r
- and EndBit in Operand and the value specified by OrData. All other bits in\r
- Operand are preserved. The new 16-bit value is returned.\r
-\r
- If 16-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 15, then ASSERT().\r
- If EndBit is greater than 15, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..15.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..15.\r
- @param OrData The value to OR with the read value from the value\r
-\r
- @return The new 16-bit value.\r
-\r
-**/\r
-UINT16\r
-EFIAPI\r
-BitFieldOr16 (\r
- IN UINT16 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit,\r
- IN UINT16 OrData\r
- );\r
-\r
-\r
-/**\r
- Reads a bit field from a 16-bit value, performs a bitwise AND, and returns\r
- the result.\r
-\r
- Performs a bitwise AND between the bit field specified by StartBit and EndBit\r
- in Operand and the value specified by AndData. All other bits in Operand are\r
- preserved. The new 16-bit value is returned.\r
-\r
- If 16-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 15, then ASSERT().\r
- If EndBit is greater than 15, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..15.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..15.\r
- @param AndData The value to AND with the read value from the value\r
-\r
- @return The new 16-bit value.\r
-\r
-**/\r
-UINT16\r
-EFIAPI\r
-BitFieldAnd16 (\r
- IN UINT16 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit,\r
- IN UINT16 AndData\r
- );\r
-\r
-\r
-/**\r
- Reads a bit field from a 16-bit value, performs a bitwise AND followed by a\r
- bitwise OR, and returns the result.\r
-\r
- Performs a bitwise AND between the bit field specified by StartBit and EndBit\r
- in Operand and the value specified by AndData, followed by a bitwise\r
- inclusive OR with value specified by OrData. All other bits in Operand are\r
- preserved. The new 16-bit value is returned.\r
-\r
- If 16-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 15, then ASSERT().\r
- If EndBit is greater than 15, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..15.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..15.\r
- @param AndData The value to AND with the read value from the value.\r
- @param OrData The value to OR with the result of the AND operation.\r
-\r
- @return The new 16-bit value.\r
-\r
-**/\r
-UINT16\r
-EFIAPI\r
-BitFieldAndThenOr16 (\r
- IN UINT16 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit,\r
- IN UINT16 AndData,\r
- IN UINT16 OrData\r
- );\r
-\r
-\r
-/**\r
- Returns a bit field from a 32-bit value.\r
-\r
- Returns the bitfield specified by the StartBit and the EndBit from Operand.\r
-\r
- If 32-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 31, then ASSERT().\r
- If EndBit is greater than 31, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..31.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..31.\r
-\r
- @return The bit field read.\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-BitFieldRead32 (\r
- IN UINT32 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit\r
- );\r
-\r
-\r
-/**\r
- Writes a bit field to a 32-bit value, and returns the result.\r
-\r
- Writes Value to the bit field specified by the StartBit and the EndBit in\r
- Operand. All other bits in Operand are preserved. The new 32-bit value is\r
- returned.\r
-\r
- If 32-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 31, then ASSERT().\r
- If EndBit is greater than 31, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..31.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..31.\r
- @param Value New value of the bit field.\r
-\r
- @return The new 32-bit value.\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-BitFieldWrite32 (\r
- IN UINT32 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit,\r
- IN UINT32 Value\r
- );\r
-\r
-\r
-/**\r
- Reads a bit field from a 32-bit value, performs a bitwise OR, and returns the\r
- result.\r
-\r
- Performs a bitwise inclusive OR between the bit field specified by StartBit\r
- and EndBit in Operand and the value specified by OrData. All other bits in\r
- Operand are preserved. The new 32-bit value is returned.\r
-\r
- If 32-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 31, then ASSERT().\r
- If EndBit is greater than 31, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..31.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..31.\r
- @param OrData The value to OR with the read value from the value\r
-\r
- @return The new 32-bit value.\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-BitFieldOr32 (\r
- IN UINT32 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit,\r
- IN UINT32 OrData\r
- );\r
-\r
-\r
-/**\r
- Reads a bit field from a 32-bit value, performs a bitwise AND, and returns\r
- the result.\r
-\r
- Performs a bitwise AND between the bit field specified by StartBit and EndBit\r
- in Operand and the value specified by AndData. All other bits in Operand are\r
- preserved. The new 32-bit value is returned.\r
-\r
- If 32-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 31, then ASSERT().\r
- If EndBit is greater than 31, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..31.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..31.\r
- @param AndData The value to AND with the read value from the value\r
-\r
- @return The new 32-bit value.\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-BitFieldAnd32 (\r
- IN UINT32 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit,\r
- IN UINT32 AndData\r
- );\r
-\r
-\r
-/**\r
- Reads a bit field from a 32-bit value, performs a bitwise AND followed by a\r
- bitwise OR, and returns the result.\r
-\r
- Performs a bitwise AND between the bit field specified by StartBit and EndBit\r
- in Operand and the value specified by AndData, followed by a bitwise\r
- inclusive OR with value specified by OrData. All other bits in Operand are\r
- preserved. The new 32-bit value is returned.\r
-\r
- If 32-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 31, then ASSERT().\r
- If EndBit is greater than 31, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..31.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..31.\r
- @param AndData The value to AND with the read value from the value.\r
- @param OrData The value to OR with the result of the AND operation.\r
-\r
- @return The new 32-bit value.\r
-\r
-**/\r
-UINT32\r
-EFIAPI\r
-BitFieldAndThenOr32 (\r
- IN UINT32 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit,\r
- IN UINT32 AndData,\r
- IN UINT32 OrData\r
- );\r
-\r
-\r
-/**\r
- Returns a bit field from a 64-bit value.\r
-\r
- Returns the bitfield specified by the StartBit and the EndBit from Operand.\r
-\r
- If 64-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 63, then ASSERT().\r
- If EndBit is greater than 63, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..63.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..63.\r
-\r
- @return The bit field read.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-BitFieldRead64 (\r
- IN UINT64 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit\r
- );\r
-\r
-\r
-/**\r
- Writes a bit field to a 64-bit value, and returns the result.\r
-\r
- Writes Value to the bit field specified by the StartBit and the EndBit in\r
- Operand. All other bits in Operand are preserved. The new 64-bit value is\r
- returned.\r
-\r
- If 64-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 63, then ASSERT().\r
- If EndBit is greater than 63, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..63.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..63.\r
- @param Value New value of the bit field.\r
-\r
- @return The new 64-bit value.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-BitFieldWrite64 (\r
- IN UINT64 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit,\r
- IN UINT64 Value\r
- );\r
-\r
-\r
-/**\r
- Reads a bit field from a 64-bit value, performs a bitwise OR, and returns the\r
- result.\r
-\r
- Performs a bitwise inclusive OR between the bit field specified by StartBit\r
- and EndBit in Operand and the value specified by OrData. All other bits in\r
- Operand are preserved. The new 64-bit value is returned.\r
-\r
- If 64-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 63, then ASSERT().\r
- If EndBit is greater than 63, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..63.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..63.\r
- @param OrData The value to OR with the read value from the value\r
-\r
- @return The new 64-bit value.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-BitFieldOr64 (\r
- IN UINT64 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit,\r
- IN UINT64 OrData\r
- );\r
-\r
-\r
-/**\r
- Reads a bit field from a 64-bit value, performs a bitwise AND, and returns\r
- the result.\r
-\r
- Performs a bitwise AND between the bit field specified by StartBit and EndBit\r
- in Operand and the value specified by AndData. All other bits in Operand are\r
- preserved. The new 64-bit value is returned.\r
-\r
- If 64-bit operations are not supported, then ASSERT().\r
- If StartBit is greater than 63, then ASSERT().\r
- If EndBit is greater than 63, then ASSERT().\r
- If EndBit is less than StartBit, then ASSERT().\r
-\r
- @param Operand Operand on which to perform the bitfield operation.\r
- @param StartBit The ordinal of the least significant bit in the bit field.\r
- Range 0..63.\r
- @param EndBit The ordinal of the most significant bit in the bit field.\r
- Range 0..63.\r
- @param AndData The value to AND with the read value from the value\r
-\r
- @return The new 64-bit value.\r
-\r
-**/\r
-UINT64\r
-EFIAPI\r
-BitFieldAnd64 (\r
- IN UINT64 Operand,\r
- IN UINTN StartBit,\r
- IN UINTN EndBit,\r
- IN UINT64 AndData\r
- );\r
-\r
-\r