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