diff options
author | jkim <jkim@FreeBSD.org> | 2012-08-16 17:26:22 +0000 |
---|---|---|
committer | jkim <jkim@FreeBSD.org> | 2012-08-16 17:26:22 +0000 |
commit | 08e6f22ac3350a67c38e9b42b5dce2a7d5fa08b4 (patch) | |
tree | a28a9676fa0b9e969cfd83d7a508660c754c8b3e /source/include/acmacros.h | |
parent | dbd90a99cde8c4a942a41f095faa72f479694173 (diff) | |
download | FreeBSD-src-08e6f22ac3350a67c38e9b42b5dce2a7d5fa08b4.zip FreeBSD-src-08e6f22ac3350a67c38e9b42b5dce2a7d5fa08b4.tar.gz |
Import ACPICA 20120816.
Diffstat (limited to 'source/include/acmacros.h')
-rw-r--r-- | source/include/acmacros.h | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/source/include/acmacros.h b/source/include/acmacros.h index 591bb6b..92cd7a2 100644 --- a/source/include/acmacros.h +++ b/source/include/acmacros.h @@ -268,10 +268,33 @@ /* Bitfields within ACPI registers */ -#define ACPI_REGISTER_PREPARE_BITS(Val, Pos, Mask) ((Val << Pos) & Mask) -#define ACPI_REGISTER_INSERT_VALUE(Reg, Pos, Mask, Val) Reg = (Reg & (~(Mask))) | ACPI_REGISTER_PREPARE_BITS(Val, Pos, Mask) +#define ACPI_REGISTER_PREPARE_BITS(Val, Pos, Mask) \ + ((Val << Pos) & Mask) -#define ACPI_INSERT_BITS(Target, Mask, Source) Target = ((Target & (~(Mask))) | (Source & Mask)) +#define ACPI_REGISTER_INSERT_VALUE(Reg, Pos, Mask, Val) \ + Reg = (Reg & (~(Mask))) | ACPI_REGISTER_PREPARE_BITS(Val, Pos, Mask) + +#define ACPI_INSERT_BITS(Target, Mask, Source) \ + Target = ((Target & (~(Mask))) | (Source & Mask)) + +/* Generic bitfield macros and masks */ + +#define ACPI_GET_BITS(SourcePtr, Position, Mask) \ + ((*SourcePtr >> Position) & Mask) + +#define ACPI_SET_BITS(TargetPtr, Position, Mask, Value) \ + (*TargetPtr |= ((Value & Mask) << Position)) + +#define ACPI_1BIT_MASK 0x00000001 +#define ACPI_2BIT_MASK 0x00000003 +#define ACPI_3BIT_MASK 0x00000007 +#define ACPI_4BIT_MASK 0x0000000F +#define ACPI_5BIT_MASK 0x0000001F +#define ACPI_6BIT_MASK 0x0000003F +#define ACPI_7BIT_MASK 0x0000007F +#define ACPI_8BIT_MASK 0x000000FF +#define ACPI_16BIT_MASK 0x0000FFFF +#define ACPI_24BIT_MASK 0x00FFFFFF /* * An object of type ACPI_NAMESPACE_NODE can appear in some contexts |