]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/Protocol/NonDiscoverableDevice.h
MdeModulePkg/ResetSystemRuntimeDxe: Add platform filter and handler
[mirror_edk2.git] / MdeModulePkg / Include / Protocol / NonDiscoverableDevice.h
1 /** @file
2 Protocol to describe devices that are not on a discoverable bus
3
4 Copyright (c) 2016, Linaro, Ltd. All rights reserved.<BR>
5
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef __NON_DISCOVERABLE_DEVICE_H__
17 #define __NON_DISCOVERABLE_DEVICE_H__
18
19 #include <IndustryStandard/Acpi.h>
20
21 #define EDKII_NON_DISCOVERABLE_DEVICE_PROTOCOL_GUID \
22 { 0x0d51905b, 0xb77e, 0x452a, {0xa2, 0xc0, 0xec, 0xa0, 0xcc, 0x8d, 0x51, 0x4a } }
23
24 //
25 // Protocol interface structure
26 //
27 typedef struct _NON_DISCOVERABLE_DEVICE NON_DISCOVERABLE_DEVICE;
28
29 //
30 // Data Types
31 //
32 typedef enum {
33 NonDiscoverableDeviceDmaTypeCoherent,
34 NonDiscoverableDeviceDmaTypeNonCoherent,
35 NonDiscoverableDeviceDmaTypeMax,
36 } NON_DISCOVERABLE_DEVICE_DMA_TYPE;
37
38 //
39 // Function Prototypes
40 //
41
42 /**
43 Perform device specific initialization before the device is started
44
45 @param This The non-discoverable device protocol pointer
46
47 @retval EFI_SUCCESS Initialization successful, the device may be used
48 @retval Other Initialization failed, device should not be started
49 **/
50 typedef
51 EFI_STATUS
52 (EFIAPI *NON_DISCOVERABLE_DEVICE_INIT) (
53 IN NON_DISCOVERABLE_DEVICE *This
54 );
55
56 struct _NON_DISCOVERABLE_DEVICE {
57 //
58 // The type of device
59 //
60 CONST EFI_GUID *Type;
61 //
62 // Whether this device is DMA coherent
63 //
64 NON_DISCOVERABLE_DEVICE_DMA_TYPE DmaType;
65 //
66 // Initialization function for the device
67 //
68 NON_DISCOVERABLE_DEVICE_INIT Initialize;
69 //
70 // The MMIO and I/O regions owned by the device
71 //
72 EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Resources;
73 };
74
75 extern EFI_GUID gEdkiiNonDiscoverableDeviceProtocolGuid;
76
77 #endif