Index: sys/dev/acpica/acpi.c =================================================================== --- sys/dev/acpica/acpi.c +++ sys/dev/acpica/acpi.c @@ -2402,6 +2402,16 @@ } /* + * Check if an acpi method exists within a device handle. + */ +BOOLEAN +acpi_HasMethod(ACPI_HANDLE h, char *method) +{ + ACPI_HANDLE tmp; + return ACPI_SUCCESS(acpi_GetHandleInScope(h, method, &tmp)); +} + +/* * Allocate a buffer with a preset data size. */ ACPI_BUFFER * Index: sys/dev/acpica/acpivar.h =================================================================== --- sys/dev/acpica/acpivar.h +++ sys/dev/acpica/acpivar.h @@ -336,6 +336,7 @@ BOOLEAN acpi_BatteryIsPresent(device_t dev); ACPI_STATUS acpi_GetHandleInScope(ACPI_HANDLE parent, char *path, ACPI_HANDLE *result); +BOOLEAN acpi_HasMethod(ACPI_HANDLE h, char *method); ACPI_BUFFER *acpi_AllocBuffer(int size); ACPI_STATUS acpi_ConvertBufferToInteger(ACPI_BUFFER *bufp, UINT32 *number);