summaryrefslogtreecommitdiffstats
path: root/usr.sbin/acpi
diff options
context:
space:
mode:
authoriwasaki <iwasaki@FreeBSD.org>2000-09-20 22:53:39 +0000
committeriwasaki <iwasaki@FreeBSD.org>2000-09-20 22:53:39 +0000
commitde69fdf50b0c4a7db6616d494a19b5da4ca4a18b (patch)
treee22218c86c7a6fe332133772c59a1ad2fe59249a /usr.sbin/acpi
parentef70022f844efbe7329a5fe222fa0b475c9374cf (diff)
downloadFreeBSD-src-de69fdf50b0c4a7db6616d494a19b5da4ca4a18b.zip
FreeBSD-src-de69fdf50b0c4a7db6616d494a19b5da4ca4a18b.tar.gz
Add new function in AML interpreter; aml_invoke_method().
Also remove unneeded includes in aml_obj.c and aml_parse.c. This new function takes 'struct aml_name *' as a argument rather than 'char *' where aml_invoke_method_by_name() does. It's worth to have these two interfaces in many cases.
Diffstat (limited to 'usr.sbin/acpi')
-rw-r--r--usr.sbin/acpi/amldb/aml/aml_evalobj.c18
-rw-r--r--usr.sbin/acpi/amldb/aml/aml_evalobj.h2
-rw-r--r--usr.sbin/acpi/amldb/aml/aml_obj.c1
-rw-r--r--usr.sbin/acpi/amldb/aml/aml_parse.c1
4 files changed, 16 insertions, 6 deletions
diff --git a/usr.sbin/acpi/amldb/aml/aml_evalobj.c b/usr.sbin/acpi/amldb/aml/aml_evalobj.c
index 41916f6..b73ef70 100644
--- a/usr.sbin/acpi/amldb/aml/aml_evalobj.c
+++ b/usr.sbin/acpi/amldb/aml/aml_evalobj.c
@@ -55,7 +55,6 @@
#include "debug.h"
#else /* _KERNEL */
-#include <sys/bus.h>
#include <sys/systm.h>
#endif /* !_KERNEL */
@@ -378,10 +377,9 @@ aml_execute_method(struct aml_environ *env)
}
union aml_object *
-aml_invoke_method_by_name(char *method, int argc, union aml_object *argv)
+aml_invoke_method(struct aml_name *name, int argc, union aml_object *argv)
{
int i;
- struct aml_name *name;
struct aml_name *tmp;
struct aml_environ *env;
struct aml_local_stack *stack;
@@ -394,7 +392,6 @@ aml_invoke_method_by_name(char *method, int argc, union aml_object *argv)
return (NULL);
}
bzero(env, sizeof(struct aml_environ));
- name = aml_find_from_namespace(aml_get_rootname(), method);
if (name != NULL && name->property != NULL &&
name->property->type == aml_t_method) {
@@ -424,3 +421,16 @@ aml_invoke_method_by_name(char *method, int argc, union aml_object *argv)
memman_free(aml_memman, memid_aml_environ, env);
return (retval);
}
+
+union aml_object *
+aml_invoke_method_by_name(char *method, int argc, union aml_object *argv)
+{
+ struct aml_name *name;
+
+ name = aml_find_from_namespace(aml_get_rootname(), method);
+ if (name == NULL) {
+ return (NULL);
+ }
+
+ return (aml_invoke_method(name, argc, argv));
+}
diff --git a/usr.sbin/acpi/amldb/aml/aml_evalobj.h b/usr.sbin/acpi/amldb/aml/aml_evalobj.h
index 884f301..9b3de0a 100644
--- a/usr.sbin/acpi/amldb/aml/aml_evalobj.h
+++ b/usr.sbin/acpi/amldb/aml/aml_evalobj.h
@@ -40,6 +40,8 @@ int aml_eval_name_simple(struct aml_name *, va_list);
int aml_objtonum(struct aml_environ *,
union aml_object *);
struct aml_name *aml_execute_method(struct aml_environ *);
+union aml_object *aml_invoke_method(struct aml_name *,
+ int, union aml_object *);
union aml_object *aml_invoke_method_by_name(char *,
int, union aml_object *);
diff --git a/usr.sbin/acpi/amldb/aml/aml_obj.c b/usr.sbin/acpi/amldb/aml/aml_obj.c
index 6634d43..62c443f 100644
--- a/usr.sbin/acpi/amldb/aml/aml_obj.c
+++ b/usr.sbin/acpi/amldb/aml/aml_obj.c
@@ -48,7 +48,6 @@
#include <stdlib.h>
#include <string.h>
#else /* _KERNEL */
-#include <sys/bus.h>
#include <sys/systm.h>
#endif /* !_KERNEL */
diff --git a/usr.sbin/acpi/amldb/aml/aml_parse.c b/usr.sbin/acpi/amldb/aml/aml_parse.c
index 560c910..f98977d 100644
--- a/usr.sbin/acpi/amldb/aml/aml_parse.c
+++ b/usr.sbin/acpi/amldb/aml/aml_parse.c
@@ -54,7 +54,6 @@
#include "debug.h"
#else /* _KERNEL */
-#include <sys/bus.h>
#include <sys/systm.h>
#endif /* !_KERNEL */
OpenPOWER on IntegriCloud