]> git.proxmox.com Git - mirror_edk2.git/blob - IntelFrameworkModulePkg/Include/Protocol/PciHotPlugRequest.h
996b5b3265bed955d072bf2e7cb1553194612286
[mirror_edk2.git] / IntelFrameworkModulePkg / Include / Protocol / PciHotPlugRequest.h
1 /** @file
2 This protocol is used to add or remove all PCI child devices on the PCI root bridge.
3
4 Copyright (c) 2006 - 2009, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #ifndef __PCI_HOTPLUG_REQUEST_H_
16 #define __PCI_HOTPLUG_REQUEST_H_
17
18 #define EFI_PCI_HOTPLUG_REQUEST_PROTOCOL_GUID \
19 {0x19cb87ab,0x2cb9,{0x4665,0x83,0x60,0xdd,0xcf,0x60,0x54,0xf7,0x9d}}
20
21 typedef enum {
22 EfiPciHotPlugRequestAdd,
23 EfiPciHotplugRequestRemove
24 } EFI_PCI_HOTPLUG_OPERATION;
25
26 typedef struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL EFI_PCI_HOTPLUG_REQUEST_PROTOCOL;
27
28 /**
29 Hot plug request notify.
30
31 @param This A pointer to the hot plug request protocol.
32 @param Operation The operation.
33 @param Controller A pointer to the controller.
34 @param RemainingDevicePath A pointer to the device path.
35 @param NumberOfChildren A the number of child handle in the ChildHandleBuffer.
36 @param ChildHandleBuffer A pointer to the array contain the child handle.
37
38 @retval EFI_NOT_FOUND Can not find bridge according to controller handle.
39 @retval EFI_SUCCESS Success operating.
40 **/
41 typedef
42 EFI_STATUS
43 (EFIAPI *EFI_PCI_HOTPLUG_REQUEST_NOTIFY) (
44 IN EFI_PCI_HOTPLUG_REQUEST_PROTOCOL *This,
45 IN EFI_PCI_HOTPLUG_OPERATION Operation,
46 IN EFI_HANDLE Controller,
47 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL,
48 IN OUT UINT8 *NumberOfChildren,
49 IN OUT EFI_HANDLE *ChildHandleBuffer
50 );
51
52
53
54 struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL {
55 EFI_PCI_HOTPLUG_REQUEST_NOTIFY Notify;
56 };
57
58 extern EFI_GUID gEfiPciHotPlugRequestProtocolGuid;
59
60 #endif