]> git.proxmox.com Git - mirror_edk2.git/blob - MdePkg/Include/Protocol/RamDisk.h
MdePkg: Fix typos in comments
[mirror_edk2.git] / MdePkg / Include / Protocol / RamDisk.h
1 /** @file
2 This file defines the EFI RAM Disk Protocol.
3
4 Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 @par Revision Reference:
14 This Protocol is introduced in UEFI Specification 2.6
15
16 **/
17
18 #ifndef __RAM_DISK_PROTOCOL_H__
19 #define __RAM_DISK_PROTOCOL_H__
20
21 //
22 // EFI RAM Disk Protocol GUID value
23 //
24 #define EFI_RAM_DISK_PROTOCOL_GUID \
25 { 0xab38a0df, 0x6873, 0x44a9, { 0x87, 0xe6, 0xd4, 0xeb, 0x56, 0x14, 0x84, 0x49 }};
26
27 //
28 // Forward reference for pure ANSI compatability
29 //
30 typedef struct _EFI_RAM_DISK_PROTOCOL EFI_RAM_DISK_PROTOCOL;
31
32 /**
33 Register a RAM disk with specified address, size and type.
34
35 @param[in] RamDiskBase The base address of registered RAM disk.
36 @param[in] RamDiskSize The size of registered RAM disk.
37 @param[in] RamDiskType The type of registered RAM disk. The GUID can be
38 any of the values defined in section 9.3.6.9, or a
39 vendor defined GUID.
40 @param[in] ParentDevicePath
41 Pointer to the parent device path. If there is no
42 parent device path then ParentDevicePath is NULL.
43 @param[out] DevicePath On return, points to a pointer to the device path
44 of the RAM disk device.
45 If ParentDevicePath is not NULL, the returned
46 DevicePath is created by appending a RAM disk node
47 to the parent device path. If ParentDevicePath is
48 NULL, the returned DevicePath is a RAM disk device
49 path without appending. This function is
50 responsible for allocating the buffer DevicePath
51 with the boot service AllocatePool().
52
53 @retval EFI_SUCCESS The RAM disk is registered successfully.
54 @retval EFI_INVALID_PARAMETER DevicePath or RamDiskType is NULL.
55 RamDiskSize is 0.
56 @retval EFI_ALREADY_STARTED A Device Path Protocol instance to be created
57 is already present in the handle database.
58 @retval EFI_OUT_OF_RESOURCES The RAM disk register operation fails due to
59 resource limitation.
60
61 **/
62 typedef
63 EFI_STATUS
64 (EFIAPI *EFI_RAM_DISK_REGISTER_RAMDISK) (
65 IN UINT64 RamDiskBase,
66 IN UINT64 RamDiskSize,
67 IN EFI_GUID *RamDiskType,
68 IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,
69 OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
70 );
71
72 /**
73 Unregister a RAM disk specified by DevicePath.
74
75 @param[in] DevicePath A pointer to the device path that describes a RAM
76 Disk device.
77
78 @retval EFI_SUCCESS The RAM disk is unregistered successfully.
79 @retval EFI_INVALID_PARAMETER DevicePath is NULL.
80 @retval EFI_UNSUPPORTED The device specified by DevicePath is not a
81 valid ramdisk device path and not supported
82 by the driver.
83 @retval EFI_NOT_FOUND The RAM disk pointed by DevicePath doesn't
84 exist.
85
86 **/
87 typedef
88 EFI_STATUS
89 (EFIAPI *EFI_RAM_DISK_UNREGISTER_RAMDISK) (
90 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
91 );
92
93 ///
94 /// RAM Disk Protocol structure.
95 ///
96 struct _EFI_RAM_DISK_PROTOCOL {
97 EFI_RAM_DISK_REGISTER_RAMDISK Register;
98 EFI_RAM_DISK_UNREGISTER_RAMDISK Unregister;
99 };
100
101 ///
102 /// RAM Disk Protocol GUID variable.
103 ///
104 extern EFI_GUID gEfiRamDiskProtocolGuid;
105
106 #endif