summaryrefslogtreecommitdiffstats
path: root/sys/contrib/dev/acpica/amlcode.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/dev/acpica/amlcode.h')
-rw-r--r--sys/contrib/dev/acpica/amlcode.h88
1 files changed, 54 insertions, 34 deletions
diff --git a/sys/contrib/dev/acpica/amlcode.h b/sys/contrib/dev/acpica/amlcode.h
index 763f160..effe2ca 100644
--- a/sys/contrib/dev/acpica/amlcode.h
+++ b/sys/contrib/dev/acpica/amlcode.h
@@ -3,7 +3,7 @@
* Name: amlcode.h - Definitions for AML, as included in "definition blocks"
* Declarations and definitions contained herein are derived
* directly from the ACPI specification.
- * $Revision: 58 $
+ * $Revision: 62 $
*
*****************************************************************************/
@@ -358,8 +358,8 @@
#define OPGRP_BYTELIST 0x04
-/*
- * Opcode information
+/*
+ * Opcode information
*/
/* Opcode flags */
@@ -433,8 +433,8 @@
#define AML_TYPE_BOGUS 0x19
-/*
- * Opcode classes
+/*
+ * Opcode classes
*/
#define AML_CLASS_EXECUTE 0x00
#define AML_CLASS_CREATE 0x01
@@ -481,52 +481,76 @@ typedef enum
#define MAX_MATCH_OPERATOR 5
-/* Field Access Types */
+/*
+ * FieldFlags
+ *
+ * This byte is extracted from the AML and includes three separate
+ * pieces of information about the field:
+ * 1) The field access type
+ * 2) The field update rule
+ * 3) The lock rule for the field
+ *
+ * Bits 00 - 03 : AccessType (AnyAcc, ByteAcc, etc.)
+ * 04 : LockRule (1 == Lock)
+ * 05 - 06 : UpdateRule
+ */
+#define AML_FIELD_ACCESS_TYPE_MASK 0x0F
+#define AML_FIELD_LOCK_RULE_MASK 0x10
+#define AML_FIELD_UPDATE_RULE_MASK 0x60
+
-#define ACCESS_TYPE_MASK 0x0f
-#define ACCESS_TYPE_SHIFT 0
+/* 1) Field Access Types */
typedef enum
{
- ACCESS_ANY_ACC = 0,
- ACCESS_BYTE_ACC = 1,
- ACCESS_WORD_ACC = 2,
- ACCESS_DWORD_ACC = 3,
- ACCESS_QWORD_ACC = 4, /* ACPI 2.0 */
- ACCESS_BLOCK_ACC = 4,
- ACCESS_SMBSEND_RECV_ACC = 5,
- ACCESS_SMBQUICK_ACC = 6
+ AML_FIELD_ACCESS_ANY = 0x00,
+ AML_FIELD_ACCESS_BYTE = 0x01,
+ AML_FIELD_ACCESS_WORD = 0x02,
+ AML_FIELD_ACCESS_DWORD = 0x03,
+ AML_FIELD_ACCESS_QWORD = 0x04, /* ACPI 2.0 */
+ AML_FIELD_ACCESS_BUFFER = 0x05, /* ACPI 2.0 */
} AML_ACCESS_TYPE;
-/* Field Lock Rules */
-
-#define LOCK_RULE_MASK 0x10
-#define LOCK_RULE_SHIFT 4
+/* 2) Field Lock Rules */
typedef enum
{
- GLOCK_NEVER_LOCK = 0,
- GLOCK_ALWAYS_LOCK = 1
+ AML_FIELD_LOCK_NEVER = 0x00,
+ AML_FIELD_LOCK_ALWAYS = 0x10,
} AML_LOCK_RULE;
-/* Field Update Rules */
-
-#define UPDATE_RULE_MASK 0x060
-#define UPDATE_RULE_SHIFT 5
+/* 3) Field Update Rules */
typedef enum
{
- UPDATE_PRESERVE = 0,
- UPDATE_WRITE_AS_ONES = 1,
- UPDATE_WRITE_AS_ZEROS = 2
+ AML_FIELD_UPDATE_PRESERVE = 0x00,
+ AML_FIELD_UPDATE_WRITE_AS_ONES = 0x20,
+ AML_FIELD_UPDATE_WRITE_AS_ZEROS = 0x40,
} AML_UPDATE_RULE;
+/*
+ * Field Access Attributes.
+ * This byte is extracted from the AML via the
+ * AccessAs keyword
+ */
+typedef enum
+{
+ AML_FIELD_ATTRIB_SMB_QUICK = 0x02,
+ AML_FIELD_ATTRIB_SMB_SEND_RCV = 0x04,
+ AML_FIELD_ATTRIB_SMB_BYTE = 0x06,
+ AML_FIELD_ATTRIB_SMB_WORD = 0x08,
+ AML_FIELD_ATTRIB_SMB_BLOCK = 0x0A,
+ AML_FIELD_ATTRIB_SMB_CALL = 0x0E,
+
+} AML_ACCESS_ATTRIBUTE;
+
+
/* bit fields in MethodFlags byte */
#define METHOD_FLAGS_ARG_COUNT 0x07
@@ -536,15 +560,11 @@ typedef enum
/* Array sizes. Used for range checking also */
-#define NUM_REGION_TYPES 7
-#define NUM_ACCESS_TYPES 7
+#define NUM_ACCESS_TYPES 6
#define NUM_UPDATE_RULES 3
#define NUM_MATCH_OPS 7
#define NUM_OPCODES 256
#define NUM_FIELD_NAMES 2
-#define USER_REGION_BEGIN 0x80
-
-
#endif /* __AMLCODE_H__ */
OpenPOWER on IntegriCloud