Source
// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
/*******************************************************************************
*
* Module Name: utxfmutex - external AML mutex access functions
*
******************************************************************************/
ACPI_MODULE_NAME("utxfmutex")
/* Local prototypes */
static acpi_status
acpi_ut_get_mutex_object(acpi_handle handle,
acpi_string pathname,
union acpi_operand_object **ret_obj);
/*******************************************************************************
*
* FUNCTION: acpi_ut_get_mutex_object
*
* PARAMETERS: handle - Mutex or prefix handle (optional)
* pathname - Mutex pathname (optional)
* ret_obj - Where the mutex object is returned
*
* RETURN: Status
*
* DESCRIPTION: Get an AML mutex object. The mutex node is pointed to by
* Handle:Pathname. Either Handle or Pathname can be NULL, but
* not both.
*
******************************************************************************/
static acpi_status
acpi_ut_get_mutex_object(acpi_handle handle,
acpi_string pathname,
union acpi_operand_object **ret_obj)
{
struct acpi_namespace_node *mutex_node;
union acpi_operand_object *mutex_obj;
acpi_status status;
/* Parameter validation */
if (!ret_obj || (!handle && !pathname)) {
return (AE_BAD_PARAMETER);
}
/* Get a the namespace node for the mutex */
mutex_node = handle;
if (pathname != NULL) {
status =
acpi_get_handle(handle, pathname,
ACPI_CAST_PTR(acpi_handle, &mutex_node));
if (ACPI_FAILURE(status)) {
return (status);
}
}