summaryrefslogtreecommitdiff
path: root/sys/dev/acpi/amltypes.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/acpi/amltypes.h')
-rw-r--r--sys/dev/acpi/amltypes.h42
1 files changed, 41 insertions, 1 deletions
diff --git a/sys/dev/acpi/amltypes.h b/sys/dev/acpi/amltypes.h
index e7d7913868f..54fd887a99d 100644
--- a/sys/dev/acpi/amltypes.h
+++ b/sys/dev/acpi/amltypes.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: amltypes.h,v 1.25 2007/02/06 18:56:31 jordan Exp $ */
+/* $OpenBSD: amltypes.h,v 1.26 2008/05/13 09:05:06 jordan Exp $ */
/*
* Copyright (c) 2005 Jordan Hargrave <jordan@openbsd.org>
*
@@ -181,6 +181,8 @@ enum aml_objecttype {
AML_OBJTYPE_NAMEREF = 0x100,
AML_OBJTYPE_OBJREF,
+ AML_OBJTYPE_SCOPE,
+ AML_OBJTYPE_NOTARGET,
AML_OBJTYPE_STATICINT=AML_OBJTYPE_INTEGER|AML_STATIC,
};
@@ -211,6 +213,17 @@ enum aml_objecttype {
#define AML_ARG_TERMOBJLIST 'T'
#define AML_ARG_TERMOBJ 't'
+#define AML_ARG_IFELSE 'I'
+#define AML_ARG_WHILE 'W'
+#define AML_ARG_BUFFER 'B'
+#define AML_ARG_SEARCHNAME 'n'
+#define AML_ARG_CREATENAME 'N'
+#define AML_ARG_STKARG 'A'
+#define AML_ARG_STKLOCAL 'L'
+#define AML_ARG_DEBUG 'D'
+#define AML_ARG_CONST 'c'
+#define AML_ARG_TARGET 'r'
+
#define AML_METHOD_ARGCOUNT(v) (((v) >> 0) & 0x7)
#define AML_METHOD_SERIALIZED(v) (((v) >> 3) & 0x1)
#define AML_METHOD_SYNCLEVEL(v) (((v) >> 4) & 0xF)
@@ -239,6 +252,13 @@ enum aml_objecttype {
struct aml_scope;
struct aml_node;
+struct aml_waitq
+{
+ struct aml_scope *scope;
+ SIMPLEQ_ENTRY(aml_waitq) link;
+};
+SIMPLEQ_HEAD(aml_waitq_head, aml_waitq);
+
/* AML Object Value */
struct aml_value {
int type;
@@ -261,6 +281,7 @@ struct aml_value {
u_int8_t *start;
u_int8_t *end;
struct aml_value *(*fneval)(struct aml_scope *, struct aml_value *);
+ u_int8_t *base;
} vmethod;
struct {
u_int16_t type;
@@ -277,6 +298,7 @@ struct aml_value {
u_int8_t proc_len;
} vprocessor;
struct {
+ int type;
int index;
struct aml_value *ref;
} vobjref;
@@ -285,6 +307,22 @@ struct aml_value {
u_int16_t pwr_order;
} vpowerrsrc;
struct acpi_mutex *vmutex;
+ struct {
+ u_int8_t *name;
+ struct aml_node *node;
+ } vnameref;
+ struct {
+ int synclvl;
+ int savelvl;
+ int count;
+ char ownername[5];
+ struct aml_scope *owner;
+ struct aml_waitq_head waiters;
+ } Vmutex;
+ struct {
+ int state;
+ struct aml_waitq_head waiters;
+ } Vevent;
} _;
};
@@ -300,6 +338,8 @@ struct aml_value {
#define v_processor _.vprocessor
#define v_powerrsrc _.vpowerrsrc
#define v_mutex _.vmutex
+#define v_mtx _.Vmutex
+#define v_evt _.Vevent
#define xaml_intval(v) ((v)->v_integer)
#define aml_strlen(v) ((v)->length)