Skip to content

Commit

Permalink
Pass a handle to evaluate_object as start point.
Browse files Browse the repository at this point in the history
  • Loading branch information
tqh committed Dec 15, 2012
1 parent 4ef95cb commit 92d766d
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 10 deletions.
4 changes: 2 additions & 2 deletions headers/os/drivers/ACPI.h
Expand Up @@ -236,8 +236,8 @@ struct acpi_module_info {

/* Control method execution and data acquisition */

status_t (*evaluate_object)(const char* object,
acpi_object_type *returnValue, size_t bufferLength);
status_t (*evaluate_object)(acpi_handle handle, const char* object,
acpi_objects *args, acpi_object_type *returnValue, size_t bufferLength);
status_t (*evaluate_method)(acpi_handle handle, const char *method,
acpi_objects *args, acpi_data *returnValue);

Expand Down
9 changes: 5 additions & 4 deletions src/add-ons/kernel/bus_managers/acpi/ACPIPrivate.h
Expand Up @@ -115,8 +115,9 @@ typedef struct acpi_root_info {

/* Control method execution and data acquisition */

status_t (*evaluate_object)(const char* object,
acpi_object_type *returnValue, size_t bufferLength);
status_t (*evaluate_object)(acpi_handle handle, const char* object,
acpi_objects *args, acpi_object_type *returnValue,
size_t bufferLength);
status_t (*evaluate_method)(acpi_handle handle, const char *method,
acpi_objects *args, acpi_data *returnValue);

Expand Down Expand Up @@ -203,8 +204,8 @@ status_t get_object_typed(const char* path, acpi_object_type** _returnValue,
uint32 object_type);
status_t ns_handle_to_pathname(acpi_handle targetHandle, acpi_data* buffer);

status_t evaluate_object(const char* object, acpi_object_type* returnValue,
size_t bufferLength);
status_t evaluate_object(acpi_handle handle, const char* object,
acpi_objects* args, acpi_object_type* returnValue, size_t bufferLength);
status_t evaluate_method(acpi_handle handle, const char* method,
acpi_objects* args, acpi_data* returnValue);

Expand Down
8 changes: 4 additions & 4 deletions src/add-ons/kernel/bus_managers/acpi/BusManager.cpp
Expand Up @@ -554,17 +554,17 @@ ns_handle_to_pathname(acpi_handle targetHandle, acpi_data *buffer)


status_t
evaluate_object(const char* object, acpi_object_type* returnValue,
size_t bufferLength)
evaluate_object(acpi_handle handle, const char* object, acpi_objects *args,
acpi_object_type* returnValue, size_t bufferLength)
{
ACPI_BUFFER buffer;
ACPI_STATUS status;

buffer.Pointer = returnValue;
buffer.Length = bufferLength;

status = AcpiEvaluateObject(NULL, (ACPI_STRING)object, NULL,
returnValue != NULL ? &buffer : NULL);
status = AcpiEvaluateObject(handle, (ACPI_STRING)object,
(ACPI_OBJECT_LIST*)args, returnValue != NULL ? &buffer : NULL);
if (status == AE_BUFFER_OVERFLOW)
dprintf("evaluate_object: the passed buffer is too small!\n");

Expand Down

0 comments on commit 92d766d

Please sign in to comment.