/** @file | |
Protocol to describe devices that are not on a discoverable bus | |
Copyright (c) 2016, Linaro, Ltd. All rights reserved.<BR> | |
This program and the accompanying materials | |
are licensed and made available under the terms and conditions of the BSD License | |
which accompanies this distribution. The full text of the license may be found at | |
http://opensource.org/licenses/bsd-license.php | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
**/ | |
#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 |