// SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 /******************************************************************************* * * Module Name: rscreate - Create resource lists/tables * ******************************************************************************/ #include <acpi/acpi.h> #include "accommon.h" #include "acresrc.h" #include "acnamesp.h" #define _COMPONENT … ACPI_MODULE_NAME("rscreate") /******************************************************************************* * * FUNCTION: acpi_buffer_to_resource * * PARAMETERS: aml_buffer - Pointer to the resource byte stream * aml_buffer_length - Length of the aml_buffer * resource_ptr - Where the converted resource is returned * * RETURN: Status * * DESCRIPTION: Convert a raw AML buffer to a resource list * ******************************************************************************/ acpi_status acpi_buffer_to_resource(u8 *aml_buffer, u16 aml_buffer_length, struct acpi_resource **resource_ptr) { … } ACPI_EXPORT_SYMBOL(…) /******************************************************************************* * * FUNCTION: acpi_rs_create_resource_list * * PARAMETERS: aml_buffer - Pointer to the resource byte stream * output_buffer - Pointer to the user's buffer * * RETURN: Status: AE_OK if okay, else a valid acpi_status code * If output_buffer is not large enough, output_buffer_length * indicates how large output_buffer should be, else it * indicates how may u8 elements of output_buffer are valid. * * DESCRIPTION: Takes the byte stream returned from a _CRS, _PRS control method * execution and parses the stream to create a linked list * of device resources. * ******************************************************************************/ acpi_status acpi_rs_create_resource_list(union acpi_operand_object *aml_buffer, struct acpi_buffer *output_buffer) { … } /******************************************************************************* * * FUNCTION: acpi_rs_create_pci_routing_table * * PARAMETERS: package_object - Pointer to a package containing one * of more ACPI_OPERAND_OBJECTs * output_buffer - Pointer to the user's buffer * * RETURN: Status AE_OK if okay, else a valid acpi_status code. * If the output_buffer is too small, the error will be * AE_BUFFER_OVERFLOW and output_buffer->Length will point * to the size buffer needed. * * DESCRIPTION: Takes the union acpi_operand_object package and creates a * linked list of PCI interrupt descriptions * * NOTE: It is the caller's responsibility to ensure that the start of the * output buffer is aligned properly (if necessary). * ******************************************************************************/ acpi_status acpi_rs_create_pci_routing_table(union acpi_operand_object *package_object, struct acpi_buffer *output_buffer) { … } /******************************************************************************* * * FUNCTION: acpi_rs_create_aml_resources * * PARAMETERS: resource_list - Pointer to the resource list buffer * output_buffer - Where the AML buffer is returned * * RETURN: Status AE_OK if okay, else a valid acpi_status code. * If the output_buffer is too small, the error will be * AE_BUFFER_OVERFLOW and output_buffer->Length will point * to the size buffer needed. * * DESCRIPTION: Converts a list of device resources to an AML bytestream * to be used as input for the _SRS control method. * ******************************************************************************/ acpi_status acpi_rs_create_aml_resources(struct acpi_buffer *resource_list, struct acpi_buffer *output_buffer) { … }