// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 /****************************************************************************** * * Module Name: psutils - Parser miscellaneous utilities (Parser only) * * Copyright (C) 2000 - 2023, Intel Corp. * *****************************************************************************/ #include <acpi/acpi.h> #include "accommon.h" #include "acparser.h" #include "amlcode.h" #include "acconvert.h" #define _COMPONENT … ACPI_MODULE_NAME("psutils") /******************************************************************************* * * FUNCTION: acpi_ps_create_scope_op * * PARAMETERS: None * * RETURN: A new Scope object, null on failure * * DESCRIPTION: Create a Scope and associated namepath op with the root name * ******************************************************************************/ union acpi_parse_object *acpi_ps_create_scope_op(u8 *aml) { … } /******************************************************************************* * * FUNCTION: acpi_ps_init_op * * PARAMETERS: op - A newly allocated Op object * opcode - Opcode to store in the Op * * RETURN: None * * DESCRIPTION: Initialize a parse (Op) object * ******************************************************************************/ void acpi_ps_init_op(union acpi_parse_object *op, u16 opcode) { … } /******************************************************************************* * * FUNCTION: acpi_ps_alloc_op * * PARAMETERS: opcode - Opcode that will be stored in the new Op * aml - Address of the opcode * * RETURN: Pointer to the new Op, null on failure * * DESCRIPTION: Allocate an acpi_op, choose op type (and thus size) based on * opcode. A cache of opcodes is available for the pure * GENERIC_OP, since this is by far the most commonly used. * ******************************************************************************/ union acpi_parse_object *acpi_ps_alloc_op(u16 opcode, u8 *aml) { … } /******************************************************************************* * * FUNCTION: acpi_ps_free_op * * PARAMETERS: op - Op to be freed * * RETURN: None. * * DESCRIPTION: Free an Op object. Either put it on the GENERIC_OP cache list * or actually free it. * ******************************************************************************/ void acpi_ps_free_op(union acpi_parse_object *op) { … } /******************************************************************************* * * FUNCTION: Utility functions * * DESCRIPTION: Low level character and object functions * ******************************************************************************/ /* * Is "c" a namestring lead character? */ u8 acpi_ps_is_leading_char(u32 c) { … } /* * Get op's name (4-byte name segment) or 0 if unnamed */ u32 acpi_ps_get_name(union acpi_parse_object * op) { … } /* * Set op's name */ void acpi_ps_set_name(union acpi_parse_object *op, u32 name) { … }