Add function to walk through children.

Without losing my sanity that is.
ACPI API refactoring will happen some day.
This commit is contained in:
Fredrik Holmqvist
2014-09-10 21:39:46 +02:00
parent 669e389c33
commit 15d8a434d0
3 changed files with 15 additions and 0 deletions
+2
View File
@@ -236,6 +236,8 @@ struct acpi_module_info {
status_t (*get_next_entry)(uint32 objectType, const char *base,
char *result, size_t length, void **_counter);
status_t (*get_next_object)(uint32 objectType, acpi_handle parent,
acpi_handle* currentChild);
status_t (*get_device)(const char *hid, uint32 index, char *result,
size_t resultLength);
@@ -202,6 +202,8 @@ status_t remove_fixed_event_handler(uint32 event, acpi_event_handler handler);
status_t get_next_entry(uint32 object_type, const char* base, char* result,
size_t length, void** _counter);
status_t get_next_object(uint32 object_type, acpi_handle parent,
acpi_handle* currentChild);
status_t get_device(const char* hid, uint32 index, char* result,
size_t resultLength);
@@ -505,6 +505,16 @@ get_next_entry(uint32 objectType, const char *base, char *result,
}
status_t
get_next_object(uint32 objectType, acpi_handle parent,
acpi_handle* currentChild)
{
acpi_handle child = *currentChild;
return AcpiGetNextObject(objectType, parent, child, currentChild) == AE_OK ?
B_OK : B_ERROR;
}
status_t
get_device(const char* hid, uint32 index, char* result, size_t resultLength)
{
@@ -829,6 +839,7 @@ struct acpi_module_info gACPIModule = {
install_fixed_event_handler,
remove_fixed_event_handler,
get_next_entry,
get_next_object,
get_device,
get_device_hid,
get_object_type,