audk/MdeModulePkg/Include/Protocol/NonDiscoverableDevice.h
Michael D Kinney 9d510e61fc MdeModulePkg: Replace BSD License with BSD+Patent License
https://bugzilla.tianocore.org/show_bug.cgi?id=1373

Replace BSD 2-Clause License with BSD+Patent License.  This change is
based on the following emails:

  https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html
  https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html

RFCs with detailed process for the license change:

  V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html
  V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html
  V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
Reviewed-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Jian J Wang <jian.j.wang@intel.com>
2019-04-09 10:58:08 -07:00

72 lines
1.7 KiB
C

/** @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