/******************************************************************************* * * FUNCTION: acpi_ut_push_generic_state * * PARAMETERS: list_head - Head of the state stack * state - State object to push * * RETURN: None * * DESCRIPTION: Push a state object onto a state stack *
******************************************************************************/ void
acpi_ut_push_generic_state(union acpi_generic_state **list_head, union acpi_generic_state *state)
{
ACPI_FUNCTION_ENTRY();
/* Push the state object onto the front of the list (stack) */
/******************************************************************************* * * FUNCTION: acpi_ut_pop_generic_state * * PARAMETERS: list_head - Head of the state stack * * RETURN: The popped state object * * DESCRIPTION: Pop a state object from a state stack *
******************************************************************************/
union acpi_generic_state *acpi_ut_pop_generic_state(union acpi_generic_state
**list_head)
{ union acpi_generic_state *state;
ACPI_FUNCTION_ENTRY();
/* Remove the state object at the head of the list (stack) */
state = *list_head; if (state) {
/* Update the list head */
*list_head = state->common.next;
}
return (state);
}
/******************************************************************************* * * FUNCTION: acpi_ut_create_generic_state * * PARAMETERS: None * * RETURN: The new state object. NULL on failure. * * DESCRIPTION: Create a generic state object. Attempt to obtain one from * the global state cache; If none available, create a new one. *
******************************************************************************/
union acpi_generic_state *acpi_ut_create_generic_state(void)
{ union acpi_generic_state *state;
ACPI_FUNCTION_ENTRY();
state = acpi_os_acquire_object(acpi_gbl_state_cache); if (state) {
/******************************************************************************* * * FUNCTION: acpi_ut_create_thread_state * * PARAMETERS: None * * RETURN: New Thread State. NULL on failure * * DESCRIPTION: Create a "Thread State" - a flavor of the generic state used * to track per-thread info during method execution *
******************************************************************************/
struct acpi_thread_state *acpi_ut_create_thread_state(void)
{ union acpi_generic_state *state;
ACPI_FUNCTION_ENTRY();
/* Create the generic state object */
state = acpi_ut_create_generic_state(); if (!state) { return (NULL);
}
/* Check for invalid thread ID - zero is very bad, it will break things */
if (!state->thread.thread_id) {
ACPI_ERROR((AE_INFO, "Invalid zero ID from AcpiOsGetThreadId"));
state->thread.thread_id = (acpi_thread_id) 1;
}
return ((struct acpi_thread_state *)state);
}
/******************************************************************************* * * FUNCTION: acpi_ut_create_update_state * * PARAMETERS: object - Initial Object to be installed in the state * action - Update action to be performed * * RETURN: New state object, null on failure * * DESCRIPTION: Create an "Update State" - a flavor of the generic state used * to update reference counts and delete complex objects such * as packages. *
******************************************************************************/
union acpi_generic_state *acpi_ut_create_update_state(union acpi_operand_object
*object, u16 action)
{ union acpi_generic_state *state;
ACPI_FUNCTION_ENTRY();
/* Create the generic state object */
state = acpi_ut_create_generic_state(); if (!state) { return (NULL);
}
/******************************************************************************* * * FUNCTION: acpi_ut_create_pkg_state * * PARAMETERS: object - Initial Object to be installed in the state * action - Update action to be performed * * RETURN: New state object, null on failure * * DESCRIPTION: Create a "Package State" *
******************************************************************************/
union acpi_generic_state *acpi_ut_create_pkg_state(void *internal_object, void *external_object,
u32 index)
{ union acpi_generic_state *state;
ACPI_FUNCTION_ENTRY();
/* Create the generic state object */
state = acpi_ut_create_generic_state(); if (!state) { return (NULL);
}
/******************************************************************************* * * FUNCTION: acpi_ut_create_control_state * * PARAMETERS: None * * RETURN: New state object, null on failure * * DESCRIPTION: Create a "Control State" - a flavor of the generic state used * to support nested IF/WHILE constructs in the AML. *
******************************************************************************/
union acpi_generic_state *acpi_ut_create_control_state(void)
{ union acpi_generic_state *state;
ACPI_FUNCTION_ENTRY();
/* Create the generic state object */
state = acpi_ut_create_generic_state(); if (!state) { return (NULL);
}
/******************************************************************************* * * FUNCTION: acpi_ut_delete_generic_state * * PARAMETERS: state - The state object to be deleted * * RETURN: None * * DESCRIPTION: Release a state object to the state cache. NULL state objects * are ignored. *
******************************************************************************/
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.