mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-10-30 23:50:23 +00:00 
			
		
		
		
	 9344f09215
			
		
	
	
		9344f09215
		
	
	
	
	
		
			
			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: Liming Gao <liming.gao@intel.com>
		
			
				
	
	
		
			101 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   This file defines the EFI RAM Disk Protocol.
 | |
| 
 | |
|   Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
|   @par Revision Reference:
 | |
|   This Protocol is introduced in UEFI Specification 2.6
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __RAM_DISK_PROTOCOL_H__
 | |
| #define __RAM_DISK_PROTOCOL_H__
 | |
| 
 | |
| //
 | |
| // EFI RAM Disk Protocol GUID value
 | |
| //
 | |
| #define EFI_RAM_DISK_PROTOCOL_GUID \
 | |
|   { 0xab38a0df, 0x6873, 0x44a9, { 0x87, 0xe6, 0xd4, 0xeb, 0x56, 0x14, 0x84, 0x49 }};
 | |
| 
 | |
| //
 | |
| // Forward reference for pure ANSI compatability
 | |
| //
 | |
| typedef struct _EFI_RAM_DISK_PROTOCOL  EFI_RAM_DISK_PROTOCOL;
 | |
| 
 | |
| /**
 | |
|   Register a RAM disk with specified address, size and type.
 | |
| 
 | |
|   @param[in]  RamDiskBase    The base address of registered RAM disk.
 | |
|   @param[in]  RamDiskSize    The size of registered RAM disk.
 | |
|   @param[in]  RamDiskType    The type of registered RAM disk. The GUID can be
 | |
|                              any of the values defined in section 9.3.6.9, or a
 | |
|                              vendor defined GUID.
 | |
|   @param[in]  ParentDevicePath
 | |
|                              Pointer to the parent device path. If there is no
 | |
|                              parent device path then ParentDevicePath is NULL.
 | |
|   @param[out] DevicePath     On return, points to a pointer to the device path
 | |
|                              of the RAM disk device.
 | |
|                              If ParentDevicePath is not NULL, the returned
 | |
|                              DevicePath is created by appending a RAM disk node
 | |
|                              to the parent device path. If ParentDevicePath is
 | |
|                              NULL, the returned DevicePath is a RAM disk device
 | |
|                              path without appending. This function is
 | |
|                              responsible for allocating the buffer DevicePath
 | |
|                              with the boot service AllocatePool().
 | |
| 
 | |
|   @retval EFI_SUCCESS             The RAM disk is registered successfully.
 | |
|   @retval EFI_INVALID_PARAMETER   DevicePath or RamDiskType is NULL.
 | |
|                                   RamDiskSize is 0.
 | |
|   @retval EFI_ALREADY_STARTED     A Device Path Protocol instance to be created
 | |
|                                   is already present in the handle database.
 | |
|   @retval EFI_OUT_OF_RESOURCES    The RAM disk register operation fails due to
 | |
|                                   resource limitation.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_RAM_DISK_REGISTER_RAMDISK) (
 | |
|   IN UINT64                       RamDiskBase,
 | |
|   IN UINT64                       RamDiskSize,
 | |
|   IN EFI_GUID                     *RamDiskType,
 | |
|   IN EFI_DEVICE_PATH              *ParentDevicePath     OPTIONAL,
 | |
|   OUT EFI_DEVICE_PATH_PROTOCOL    **DevicePath
 | |
|   );
 | |
| 
 | |
| /**
 | |
|   Unregister a RAM disk specified by DevicePath.
 | |
| 
 | |
|   @param[in] DevicePath      A pointer to the device path that describes a RAM
 | |
|                              Disk device.
 | |
| 
 | |
|   @retval EFI_SUCCESS             The RAM disk is unregistered successfully.
 | |
|   @retval EFI_INVALID_PARAMETER   DevicePath is NULL.
 | |
|   @retval EFI_UNSUPPORTED         The device specified by DevicePath is not a
 | |
|                                   valid ramdisk device path and not supported
 | |
|                                   by the driver.
 | |
|   @retval EFI_NOT_FOUND           The RAM disk pointed by DevicePath doesn't
 | |
|                                   exist.
 | |
| 
 | |
| **/
 | |
| typedef
 | |
| EFI_STATUS
 | |
| (EFIAPI *EFI_RAM_DISK_UNREGISTER_RAMDISK) (
 | |
|   IN  EFI_DEVICE_PATH_PROTOCOL    *DevicePath
 | |
|   );
 | |
| 
 | |
| ///
 | |
| /// RAM Disk Protocol structure.
 | |
| ///
 | |
| struct _EFI_RAM_DISK_PROTOCOL {
 | |
|   EFI_RAM_DISK_REGISTER_RAMDISK        Register;
 | |
|   EFI_RAM_DISK_UNREGISTER_RAMDISK      Unregister;
 | |
| };
 | |
| 
 | |
| ///
 | |
| /// RAM Disk Protocol GUID variable.
 | |
| ///
 | |
| extern EFI_GUID gEfiRamDiskProtocolGuid;
 | |
| 
 | |
| #endif
 |