mirror of https://github.com/acidanthera/audk.git
60 lines
2.5 KiB
C
60 lines
2.5 KiB
C
|
/** @file
|
||
|
AML Resource Data Code Generation.
|
||
|
|
||
|
Copyright (c) 2019 - 2020, Arm Limited. All rights reserved.<BR>
|
||
|
|
||
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||
|
**/
|
||
|
|
||
|
#ifndef AML_RESOURCE_DATA_CODE_GEN_H_
|
||
|
#define AML_RESOURCE_DATA_CODE_GEN_H_
|
||
|
|
||
|
/** Code generation for the "Interrupt ()" ASL function.
|
||
|
|
||
|
This function creates a Resource Data element corresponding to the
|
||
|
"Interrupt ()" ASL function and stores it in an AML Data Node.
|
||
|
|
||
|
The Resource Data effectively created is an Extended Interrupt Resource
|
||
|
Data. See ACPI 6.3 specification, s6.4.3.6 "Extended Interrupt Descriptor"
|
||
|
for more information about Extended Interrupt Resource Data.
|
||
|
|
||
|
This function allocates memory to create a data node. It is the caller's
|
||
|
responsibility to either:
|
||
|
- attach this node to an AML tree;
|
||
|
- delete this node.
|
||
|
|
||
|
@param [in] ResourceConsumer The device consumes the specified interrupt
|
||
|
or produces it for use by a child device.
|
||
|
@param [in] EdgeTriggered The interrupt is edge triggered or
|
||
|
level triggered.
|
||
|
@param [in] ActiveLow The interrupt is active-high or active-low.
|
||
|
@param [in] Shared The interrupt can be shared with other
|
||
|
devices or not (Exclusive).
|
||
|
@param [in] IrqList Interrupt list. Must be non-NULL.
|
||
|
@param [in] IrqCount Interrupt count. Must be non-zero.
|
||
|
@param [in] ParentNode If not NULL, add the generated node
|
||
|
to the end of the variable list of
|
||
|
argument of the ParentNode, but
|
||
|
before the "End Tag" Resource Data.
|
||
|
Must be a BufferOpNode.
|
||
|
@param [out] NewRdNode If success, contains the generated node.
|
||
|
|
||
|
@retval EFI_SUCCESS The function completed successfully.
|
||
|
@retval EFI_INVALID_PARAMETER Invalid parameter.
|
||
|
@retval EFI_OUT_OF_RESOURCES Could not allocate memory.
|
||
|
**/
|
||
|
EFI_STATUS
|
||
|
EFIAPI
|
||
|
AmlCodeGenInterrupt (
|
||
|
IN BOOLEAN ResourceConsumer,
|
||
|
IN BOOLEAN EdgeTriggered,
|
||
|
IN BOOLEAN ActiveLow,
|
||
|
IN BOOLEAN Shared,
|
||
|
IN UINT32 * IrqList,
|
||
|
IN UINT8 IrqCount,
|
||
|
IN AML_OBJECT_NODE * ParentNode, OPTIONAL
|
||
|
OUT AML_DATA_NODE ** NewRdNode OPTIONAL
|
||
|
);
|
||
|
|
||
|
#endif // AML_RESOURCE_DATA_CODE_GEN_H_
|