2 Protocol to describe devices that are not on a discoverable bus
4 Copyright (c) 2016, Linaro, Ltd. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
10 #ifndef __NON_DISCOVERABLE_DEVICE_H__
11 #define __NON_DISCOVERABLE_DEVICE_H__
13 #include <IndustryStandard/Acpi.h>
15 #define EDKII_NON_DISCOVERABLE_DEVICE_PROTOCOL_GUID \
16 { 0x0d51905b, 0xb77e, 0x452a, {0xa2, 0xc0, 0xec, 0xa0, 0xcc, 0x8d, 0x51, 0x4a } }
19 // Protocol interface structure
21 typedef struct _NON_DISCOVERABLE_DEVICE NON_DISCOVERABLE_DEVICE
;
27 NonDiscoverableDeviceDmaTypeCoherent
,
28 NonDiscoverableDeviceDmaTypeNonCoherent
,
29 NonDiscoverableDeviceDmaTypeMax
,
30 } NON_DISCOVERABLE_DEVICE_DMA_TYPE
;
33 // Function Prototypes
37 Perform device specific initialization before the device is started
39 @param This The non-discoverable device protocol pointer
41 @retval EFI_SUCCESS Initialization successful, the device may be used
42 @retval Other Initialization failed, device should not be started
46 (EFIAPI
*NON_DISCOVERABLE_DEVICE_INIT
) (
47 IN NON_DISCOVERABLE_DEVICE
*This
50 struct _NON_DISCOVERABLE_DEVICE
{
56 // Whether this device is DMA coherent
58 NON_DISCOVERABLE_DEVICE_DMA_TYPE DmaType
;
60 // Initialization function for the device
62 NON_DISCOVERABLE_DEVICE_INIT Initialize
;
64 // The MMIO and I/O regions owned by the device
66 EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR
*Resources
;
69 extern EFI_GUID gEdkiiNonDiscoverableDeviceProtocolGuid
;