/** @file Copyright (c) 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _IIO_SYSTEM_PROTOCOL_H_ #define _IIO_SYSTEM_PROTOCOL_H_ #include #include // // IIO System driver Protocol GUID // // {DDC3080A-2740-4ec2-9AA5-A0ADEFD6FF9C} #define EFI_IIO_SYSTEM_GUID \ { \ 0xDDC3080A, 0x2740, 0x4ec2, 0x9A, 0xA5, 0xA0, 0xAD, 0xEF, 0xD6, 0xFF, 0x9C \ } extern EFI_GUID gEfiIioSystemProtocolGuid; typedef struct _PORT_DESCRIPTOR{ UINT8 Bus; UINT8 Device; UINT8 Function; }PORT_DESCRIPTOR; typedef struct _PORT_ATTRIB{ UINT8 PortWidth; UINT8 PortSpeed; }PORT_ATTRIB; EFI_STATUS IioGetCpuUplinkPort ( UINT8 IioIndex, PORT_DESCRIPTOR *PortDescriptor, //Bus, Device, function BOOLEAN *PortStatus, //TRUE if enabled else disabled PORT_ATTRIB *PortAttrib //width and speed ); typedef EFI_STATUS (EFIAPI *IIO_GET_CPU_UPLINK_PORT) ( IN UINT8 IioIndex, OUT PORT_DESCRIPTOR *PortDescriptor, OUT BOOLEAN *PortStatus, OUT PORT_ATTRIB *PortAttrib ); typedef struct _EFI_IIO_SYSTEM_PROTOCOL{ IIO_GLOBALS *IioGlobalData; IIO_GET_CPU_UPLINK_PORT IioGetCpuUplinkPort; } EFI_IIO_SYSTEM_PROTOCOL; #endif //_IIO_SYSTEM_PROTOCOL_H_