| /** @file | |
| Protocol to describe devices that are not on a discoverable bus | |
| Copyright (c) 2016, Linaro, Ltd. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef __NON_DISCOVERABLE_DEVICE_H__ | |
| #define __NON_DISCOVERABLE_DEVICE_H__ | |
| #include <IndustryStandard/Acpi.h> | |
| #define EDKII_NON_DISCOVERABLE_DEVICE_PROTOCOL_GUID \ | |
| { 0x0d51905b, 0xb77e, 0x452a, {0xa2, 0xc0, 0xec, 0xa0, 0xcc, 0x8d, 0x51, 0x4a } } | |
| // | |
| // Protocol interface structure | |
| // | |
| typedef struct _NON_DISCOVERABLE_DEVICE NON_DISCOVERABLE_DEVICE; | |
| // | |
| // Data Types | |
| // | |
| typedef enum { | |
| NonDiscoverableDeviceDmaTypeCoherent, | |
| NonDiscoverableDeviceDmaTypeNonCoherent, | |
| NonDiscoverableDeviceDmaTypeMax, | |
| } NON_DISCOVERABLE_DEVICE_DMA_TYPE; | |
| // | |
| // Function Prototypes | |
| // | |
| /** | |
| Perform device specific initialization before the device is started | |
| @param This The non-discoverable device protocol pointer | |
| @retval EFI_SUCCESS Initialization successful, the device may be used | |
| @retval Other Initialization failed, device should not be started | |
| **/ | |
| typedef | |
| EFI_STATUS | |
| (EFIAPI *NON_DISCOVERABLE_DEVICE_INIT)( | |
| IN NON_DISCOVERABLE_DEVICE *This | |
| ); | |
| struct _NON_DISCOVERABLE_DEVICE { | |
| // | |
| // The type of device | |
| // | |
| CONST EFI_GUID *Type; | |
| // | |
| // Whether this device is DMA coherent | |
| // | |
| NON_DISCOVERABLE_DEVICE_DMA_TYPE DmaType; | |
| // | |
| // Initialization function for the device | |
| // | |
| NON_DISCOVERABLE_DEVICE_INIT Initialize; | |
| // | |
| // The MMIO and I/O regions owned by the device | |
| // | |
| EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Resources; | |
| }; | |
| extern EFI_GUID gEdkiiNonDiscoverableDeviceProtocolGuid; | |
| #endif |