+++ /dev/null
-/** @file\r
- This file declares EFI PCI Hot Plug Init Protocol\r
-\r
- Copyright (c) 2006, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
- Module Name: PciHotPlugInit.h\r
-\r
- @par Revision Reference:\r
- This protocol is defined in Framework of EFI Hot Plug Pci Initialization Protocol Spec\r
- Version 0.9\r
-\r
-**/\r
-\r
-#ifndef __EFI_PCI_HOT_PLUG_INIT_H_\r
-#define __EFI_PCI_HOT_PLUG_INIT_H_\r
-\r
-//\r
-// Global ID for the PCI Hot Plug Protocol\r
-//\r
-#define EFI_PCI_HOT_PLUG_INIT_PROTOCOL_GUID \\r
- { 0xaa0e8bc1, 0xdabc, 0x46b0, {0xa8, 0x44, 0x37, 0xb8, 0x16, 0x9b, 0x2b, 0xea } }\r
-\r
- \r
-typedef struct _EFI_PCI_HOT_PLUG_INIT_PROTOCOL EFI_PCI_HOT_PLUG_INIT_PROTOCOL;\r
-\r
-#define EFI_HPC_STATE_INITIALIZED 0x01\r
-#define EFI_HPC_STATE_ENABLED 0x02\r
-\r
-typedef UINT16 EFI_HPC_STATE;\r
-\r
-\r
-typedef struct{\r
- EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath;\r
- EFI_DEVICE_PATH_PROTOCOL *HpbDevicePath;\r
-} EFI_HPC_LOCATION;\r
-\r
-\r
-typedef enum{\r
- EfiPaddingPciBus,\r
- EfiPaddingPciRootBridge\r
-} EFI_HPC_PADDING_ATTRIBUTES;\r
-\r
-/**\r
- Returns a list of root Hot Plug Controllers (HPCs) that require initialization \r
- during the boot process.\r
-\r
- @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.\r
- @param HpcCount The number of root HPCs that were returned.\r
- @param HpcList The list of root HPCs. HpcCount defines the number of\r
- elements in this list.\r
-\r
- @retval EFI_SUCCESS HpcList was returned.\r
- @retval EFI_OUT_OF_RESOURCES HpcList was not returned due to insufficient resources.\r
- @retval EFI_INVALID_PARAMETER HpcCount is NULL or HpcList is NULL.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_ROOT_HPC_LIST) (\r
- IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This,\r
- OUT UINTN *HpcCount,\r
- OUT EFI_HPC_LOCATION **HpcList\r
-);\r
-\r
-/**\r
- Initializes one root Hot Plug Controller (HPC). This process may causes \r
- initialization of its subordinate buses. \r
-\r
- @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.\r
- @param HpcDevicePath The device path to the HPC that is being initialized.\r
- @param HpcPciAddress The address of the HPC function on the PCI bus.\r
- @param Event The event that should be signaled when the HPC initialization\r
- is complete.\r
- @param HpcState The state of the HPC hardware.\r
-\r
- @retval EFI_SUCCESS If Event is NULL, the specific HPC was successfully\r
- initialized. If Event is not NULL, Event will be signaled at a later time\r
- when initialization is complete.\r
- @retval EFI_UNSUPPORTED This instance of EFI_PCI_HOT_PLUG_INIT_PROTOCOL\r
- does not support the specified HPC.\r
- @retval EFI_OUT_OF_RESOURCES Initialization failed due to insufficient\r
- resources.\r
- @retval EFI_INVALID_PARAMETER HpcState is NULL.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_INITIALIZE_ROOT_HPC) (\r
- IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This,\r
- IN EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath,\r
- IN UINT64 HpcPciAddress,\r
- IN EFI_EVENT Event, OPTIONAL\r
- OUT EFI_HPC_STATE *HpcState\r
-);\r
-\r
-/**\r
- Returns the resource padding that is required by the PCI bus that is controlled \r
- by the specified Hot Plug Controller (HPC).\r
-\r
- @param This Pointer to the EFI_PCI_HOT_PLUG_INIT_PROTOCOL instance.\r
- @param HpcDevicePath The device path to the HPC.\r
- @param HpcPciAddress The address of the HPC function on the PCI bus.\r
- @param HpcState The state of the HPC hardware.\r
- @param Padding The amount of resource padding that is required by the\r
- PCI bus under the control of the specified HPC.\r
- @param Attributes Describes how padding is accounted for. The padding\r
- is returned in the form of ACPI 2.0 resource descriptors.\r
-\r
- @retval EFI_SUCCESS The resource padding was successfully returned.\r
- @retval EFI_UNSUPPORTED This instance of the EFI_PCI_HOT_PLUG_INIT_PROTOCOL\r
- does not support the specified HPC.\r
- @retval EFI_NOT_READY This function was called before HPC initialization is complete.\r
- @retval EFI_INVALID_PARAMETER HpcState or Padding or Attributes is NULL.\r
- @retval EFI_OUT_OF_RESOURCES ACPI 2.0 resource descriptors for Padding\r
- cannot be allocated due to insufficient resources.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_PCI_HOT_PLUG_PADDING) (\r
- IN EFI_PCI_HOT_PLUG_INIT_PROTOCOL *This,\r
- IN EFI_DEVICE_PATH_PROTOCOL *HpcDevicePath,\r
- IN UINT64 HpcPciAddress,\r
- OUT EFI_HPC_STATE *HpcState,\r
- OUT VOID **Padding,\r
- OUT EFI_HPC_PADDING_ATTRIBUTES *Attributes\r
-); \r
-\r
-\r
-//\r
-// Prototypes for the PCI Hot Plug Init Protocol\r
-//\r
-\r
-/**\r
- @par Protocol Description:\r
- This protocol provides the necessary functionality to initialize the \r
- Hot Plug Controllers (HPCs) and the buses that they control. This protocol \r
- also provides information regarding resource padding. \r
-\r
- @param GetRootHpcList\r
- Returns a list of root HPCs and the buses that they control.\r
-\r
- @param InitializeRootHpc\r
- Initializes the specified root HPC.\r
-\r
- @param GetResourcePadding\r
- Returns the resource padding that is required by the HPC.\r
-\r
-**/\r
-struct _EFI_PCI_HOT_PLUG_INIT_PROTOCOL {\r
- EFI_GET_ROOT_HPC_LIST GetRootHpcList;\r
- EFI_INITIALIZE_ROOT_HPC InitializeRootHpc;\r
- EFI_GET_PCI_HOT_PLUG_PADDING GetResourcePadding;\r
-};\r
-\r
-extern EFI_GUID gEfiPciHotPlugInitProtocolGuid;\r
-\r
-#endif\r
[Protocols.common]\r
gEfiIsaAcpiProtocolGuid = { 0x64a892dc, 0x5561, 0x4536, { 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55 }}\r
gEfiVgaMiniPortProtocolGuid = { 0xc7735a2f, 0x88f5, 0x4882, { 0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 }}\r
- gEfiPciHotPlugInitProtocolGuid = { 0xAA0E8BC1, 0xDABC, 0x46B0, { 0xA8, 0x44, 0x37, 0xB8, 0x16, 0x9B, 0x2B, 0xEA }}\r
gEfiPciHotPlugRequestProtocolGuid = { 0x19CB87AB, 0x2CB9, 0x4665, { 0x83, 0x60, 0xDD, 0xCF, 0x60, 0x54, 0xF7, 0x9D }}\r
gEfiIsaIoProtocolGuid = { 0x7ee2bd44, 0x3da0, 0x11d4, { 0x9a, 0x38, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d }}\r
gEfiPs2PolicyProtocolGuid = { 0x4DF19259, 0xDC71, 0x4D46, { 0xBE, 0xF1, 0x35, 0x7B, 0xB5, 0x78, 0xC4, 0x18 }}\r