summaryrefslogtreecommitdiffstats
path: root/source/include/acmacros.h
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2012-08-16 17:26:22 +0000
committerjkim <jkim@FreeBSD.org>2012-08-16 17:26:22 +0000
commit08e6f22ac3350a67c38e9b42b5dce2a7d5fa08b4 (patch)
treea28a9676fa0b9e969cfd83d7a508660c754c8b3e /source/include/acmacros.h
parentdbd90a99cde8c4a942a41f095faa72f479694173 (diff)
downloadFreeBSD-src-08e6f22ac3350a67c38e9b42b5dce2a7d5fa08b4.zip
FreeBSD-src-08e6f22ac3350a67c38e9b42b5dce2a7d5fa08b4.tar.gz
Import ACPICA 20120816.
Diffstat (limited to 'source/include/acmacros.h')
-rw-r--r--source/include/acmacros.h29
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
OpenPOWER on IntegriCloud