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>
		
			
				
	
	
		
			72 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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
 |