/** @file Prototype of the DxePchHdaNhltLib library. Copyright (c) 2021, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _DXE_HDA_NHLT_LIB_H_ #define _DXE_HDA_NHLT_LIB_H_ #include /** Returns pointer to Endpoint ENDPOINT_DESCRIPTOR structure. @param[in] *NhltTable Endpoint for which Format address is retrieved @param[in] FormatIndex Index of Format to be retrieved @retval Pointer to ENDPOINT_DESCRIPTOR structure with given index **/ ENDPOINT_DESCRIPTOR * GetNhltEndpoint ( IN CONST NHLT_ACPI_TABLE *NhltTable, IN CONST UINT8 EndpointIndex ); /** Returns pointer to Endpoint Specific Configuration SPECIFIC_CONFIG structure. @param[in] *Endpoint Endpoint for which config address is retrieved @retval Pointer to SPECIFIC_CONFIG structure with endpoint's capabilities **/ SPECIFIC_CONFIG * GetNhltEndpointDeviceCapabilities ( IN CONST ENDPOINT_DESCRIPTOR *Endpoint ); /** Returns pointer to all Formats Configuration FORMATS_CONFIG structure. @param[in] *Endpoint Endpoint for which Formats address is retrieved @retval Pointer to FORMATS_CONFIG structure **/ FORMATS_CONFIG * GetNhltEndpointFormatsConfig ( IN CONST ENDPOINT_DESCRIPTOR *Endpoint ); /** Returns pointer to Format Configuration FORMAT_CONFIG structure. @param[in] *Endpoint Endpoint for which Format address is retrieved @param[in] FormatIndex Index of Format to be retrieved @retval Pointer to FORMAT_CONFIG structure with given index **/ FORMAT_CONFIG * GetNhltEndpointFormat ( IN CONST ENDPOINT_DESCRIPTOR *Endpoint, IN CONST UINT8 FormatIndex ); /** Returns pointer to all Device Information DEVICES_INFO structure. @param[in] *Endpoint Endpoint for which DevicesInfo address is retrieved @retval Pointer to DEVICES_INFO structure **/ DEVICES_INFO * GetNhltEndpointDevicesInfo ( IN CONST ENDPOINT_DESCRIPTOR *Endpoint ); /** Returns pointer to Device Information DEVICES_INFO structure. @param[in] *Endpoint Endpoint for which Device Info address is retrieved @param[in] DeviceInfoIndex Index of Device Info to be retrieved @retval Pointer to DEVICE_INFO structure with given index **/ DEVICE_INFO * GetNhltEndpointDeviceInfo ( IN CONST ENDPOINT_DESCRIPTOR *Endpoint, IN CONST UINT8 DeviceInfoIndex ); /** Returns pointer to OED Configuration SPECIFIC_CONFIG structure. @param[in] *NhltTable NHLT table for which OED address is retrieved @retval Pointer to SPECIFIC_CONFIG structure with NHLT capabilities **/ SPECIFIC_CONFIG * GetNhltOedConfig ( IN CONST NHLT_ACPI_TABLE *NhltTable ); /** Prints Format configuration. @param[in] *Format Format to be printed @retval None **/ VOID NhltFormatDump ( IN CONST FORMAT_CONFIG *Format ); /** Prints Endpoint configuration. @param[in] *Endpoint Endpoint to be printed @retval None **/ VOID NhltEndpointDump ( IN CONST ENDPOINT_DESCRIPTOR *Endpoint ); /** Prints OED (Offload Engine Driver) configuration. @param[in] *OedConfig OED to be printed @retval None **/ VOID NhltOedConfigDump ( IN CONST SPECIFIC_CONFIG *OedConfig ); /** Prints NHLT (Non HDA-Link Table) to be exposed via ACPI (aka. OED (Offload Engine Driver) Configuration Table). @param[in] *NhltTable The NHLT table to print @retval None **/ VOID NhltAcpiTableDump ( IN NHLT_ACPI_TABLE *NhltTable ); #endif // _DXE_HDA_NHLT_LIB_H_