MdeModulePkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
committed by
mergify[bot]
parent
7c7184e201
commit
1436aea4d5
@@ -14,7 +14,7 @@
|
||||
//
|
||||
EFI_BLOCK_IO_PROTOCOL mRamDiskBlockIoTemplate = {
|
||||
EFI_BLOCK_IO_PROTOCOL_REVISION,
|
||||
(EFI_BLOCK_IO_MEDIA *) 0,
|
||||
(EFI_BLOCK_IO_MEDIA *)0,
|
||||
RamDiskBlkIoReset,
|
||||
RamDiskBlkIoReadBlocks,
|
||||
RamDiskBlkIoWriteBlocks,
|
||||
@@ -26,14 +26,13 @@ EFI_BLOCK_IO_PROTOCOL mRamDiskBlockIoTemplate = {
|
||||
// for newly registered RAM disks
|
||||
//
|
||||
EFI_BLOCK_IO2_PROTOCOL mRamDiskBlockIo2Template = {
|
||||
(EFI_BLOCK_IO_MEDIA *) 0,
|
||||
(EFI_BLOCK_IO_MEDIA *)0,
|
||||
RamDiskBlkIo2Reset,
|
||||
RamDiskBlkIo2ReadBlocksEx,
|
||||
RamDiskBlkIo2WriteBlocksEx,
|
||||
RamDiskBlkIo2FlushBlocksEx
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
Initialize the BlockIO & BlockIO2 protocol of a RAM disk device.
|
||||
|
||||
@@ -42,13 +41,13 @@ EFI_BLOCK_IO2_PROTOCOL mRamDiskBlockIo2Template = {
|
||||
**/
|
||||
VOID
|
||||
RamDiskInitBlockIo (
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData
|
||||
)
|
||||
{
|
||||
EFI_BLOCK_IO_PROTOCOL *BlockIo;
|
||||
EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
|
||||
EFI_BLOCK_IO_MEDIA *Media;
|
||||
UINT32 Remainder;
|
||||
EFI_BLOCK_IO_PROTOCOL *BlockIo;
|
||||
EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
|
||||
EFI_BLOCK_IO_MEDIA *Media;
|
||||
UINT32 Remainder;
|
||||
|
||||
BlockIo = &PrivateData->BlockIo;
|
||||
BlockIo2 = &PrivateData->BlockIo2;
|
||||
@@ -67,18 +66,19 @@ RamDiskInitBlockIo (
|
||||
|
||||
for (Media->BlockSize = RAM_DISK_DEFAULT_BLOCK_SIZE;
|
||||
Media->BlockSize >= 1;
|
||||
Media->BlockSize = Media->BlockSize >> 1) {
|
||||
Media->BlockSize = Media->BlockSize >> 1)
|
||||
{
|
||||
Media->LastBlock = DivU64x32Remainder (PrivateData->Size, Media->BlockSize, &Remainder) - 1;
|
||||
if (Remainder == 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ASSERT (Media->BlockSize != 0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Reset the Block Device.
|
||||
|
||||
@@ -93,14 +93,13 @@ RamDiskInitBlockIo (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIoReset (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
)
|
||||
{
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Read BufferSize bytes from Lba into Buffer.
|
||||
|
||||
@@ -129,15 +128,15 @@ RamDiskBlkIoReset (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIoReadBlocks (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
)
|
||||
{
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
UINTN NumberOfBlocks;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
UINTN NumberOfBlocks;
|
||||
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_BLKIO (This);
|
||||
|
||||
@@ -175,7 +174,6 @@ RamDiskBlkIoReadBlocks (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Write BufferSize bytes from Lba into Buffer.
|
||||
|
||||
@@ -204,15 +202,15 @@ RamDiskBlkIoReadBlocks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIoWriteBlocks (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
)
|
||||
{
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
UINTN NumberOfBlocks;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
UINTN NumberOfBlocks;
|
||||
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_BLKIO (This);
|
||||
|
||||
@@ -254,7 +252,6 @@ RamDiskBlkIoWriteBlocks (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Flush the Block Device.
|
||||
|
||||
@@ -269,13 +266,12 @@ RamDiskBlkIoWriteBlocks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIoFlushBlocks (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This
|
||||
)
|
||||
{
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Resets the block device hardware.
|
||||
|
||||
@@ -290,14 +286,13 @@ RamDiskBlkIoFlushBlocks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIo2Reset (
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
)
|
||||
{
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Reads the requested number of blocks from the device.
|
||||
|
||||
@@ -334,26 +329,26 @@ RamDiskBlkIo2Reset (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIo2ReadBlocksEx (
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
)
|
||||
{
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
EFI_STATUS Status;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
EFI_STATUS Status;
|
||||
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_BLKIO2 (This);
|
||||
|
||||
Status = RamDiskBlkIoReadBlocks (
|
||||
&PrivateData->BlockIo,
|
||||
MediaId,
|
||||
Lba,
|
||||
BufferSize,
|
||||
Buffer
|
||||
);
|
||||
&PrivateData->BlockIo,
|
||||
MediaId,
|
||||
Lba,
|
||||
BufferSize,
|
||||
Buffer
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
@@ -369,7 +364,6 @@ RamDiskBlkIo2ReadBlocksEx (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Writes a specified number of blocks to the device.
|
||||
|
||||
@@ -405,26 +399,26 @@ RamDiskBlkIo2ReadBlocksEx (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIo2WriteBlocksEx (
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
)
|
||||
{
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
EFI_STATUS Status;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
EFI_STATUS Status;
|
||||
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_BLKIO2 (This);
|
||||
|
||||
Status = RamDiskBlkIoWriteBlocks (
|
||||
&PrivateData->BlockIo,
|
||||
MediaId,
|
||||
Lba,
|
||||
BufferSize,
|
||||
Buffer
|
||||
);
|
||||
&PrivateData->BlockIo,
|
||||
MediaId,
|
||||
Lba,
|
||||
BufferSize,
|
||||
Buffer
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
@@ -440,7 +434,6 @@ RamDiskBlkIo2WriteBlocksEx (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Flushes all modified data to a physical block device.
|
||||
|
||||
@@ -463,11 +456,11 @@ RamDiskBlkIo2WriteBlocksEx (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIo2FlushBlocksEx (
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token
|
||||
)
|
||||
{
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_BLKIO2 (This);
|
||||
|
||||
|
@@ -34,7 +34,6 @@ LIST_ENTRY RegisteredRamDisks;
|
||||
EFI_ACPI_TABLE_PROTOCOL *mAcpiTableProtocol = NULL;
|
||||
EFI_ACPI_SDT_PROTOCOL *mAcpiSdtProtocol = NULL;
|
||||
|
||||
|
||||
/**
|
||||
Check whether EFI_ACPI_TABLE_PROTOCOL and EFI_ACPI_SDT_PROTOCOL are produced.
|
||||
If both protocols are produced, publish all the reserved memory type RAM
|
||||
@@ -48,13 +47,13 @@ EFI_ACPI_SDT_PROTOCOL *mAcpiSdtProtocol = NULL;
|
||||
VOID
|
||||
EFIAPI
|
||||
RamDiskAcpiCheck (
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Entry;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
EFI_STATUS Status;
|
||||
LIST_ENTRY *Entry;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
|
||||
gBS->CloseEvent (Event);
|
||||
|
||||
@@ -99,7 +98,6 @@ RamDiskAcpiCheck (
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
The entry point for RamDiskDxe driver.
|
||||
|
||||
@@ -116,14 +114,14 @@ RamDiskAcpiCheck (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskDxeEntryPoint (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
|
||||
VOID *DummyInterface;
|
||||
EFI_EVENT Event;
|
||||
EFI_STATUS Status;
|
||||
RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
|
||||
VOID *DummyInterface;
|
||||
EFI_EVENT Event;
|
||||
|
||||
//
|
||||
// If already started, return.
|
||||
@@ -194,7 +192,6 @@ ErrorExit:
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Unload the RamDiskDxe driver and its configuration form.
|
||||
|
||||
@@ -208,16 +205,16 @@ ErrorExit:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskDxeUnload (
|
||||
IN EFI_HANDLE ImageHandle
|
||||
IN EFI_HANDLE ImageHandle
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
|
||||
EFI_STATUS Status;
|
||||
RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
|
||||
|
||||
Status = gBS->HandleProtocol (
|
||||
mRamDiskHandle,
|
||||
&gEfiCallerIdGuid,
|
||||
(VOID **) &ConfigPrivate
|
||||
(VOID **)&ConfigPrivate
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
|
@@ -8,7 +8,6 @@
|
||||
|
||||
#include "RamDiskImpl.h"
|
||||
|
||||
|
||||
/**
|
||||
Helper function called as part of the code needed to allocate the proper
|
||||
sized buffer for various EFI interfaces.
|
||||
@@ -24,12 +23,12 @@
|
||||
**/
|
||||
BOOLEAN
|
||||
GrowBuffer (
|
||||
IN OUT EFI_STATUS *Status,
|
||||
IN OUT VOID **Buffer,
|
||||
IN UINTN BufferSize
|
||||
IN OUT EFI_STATUS *Status,
|
||||
IN OUT VOID **Buffer,
|
||||
IN UINTN BufferSize
|
||||
)
|
||||
{
|
||||
BOOLEAN TryAgain;
|
||||
BOOLEAN TryAgain;
|
||||
|
||||
//
|
||||
// If this is an initial request, buffer will be null with a new buffer size
|
||||
@@ -37,12 +36,12 @@ GrowBuffer (
|
||||
if ((*Buffer == NULL) && (BufferSize != 0)) {
|
||||
*Status = EFI_BUFFER_TOO_SMALL;
|
||||
}
|
||||
|
||||
//
|
||||
// If the status code is "buffer too small", resize the buffer
|
||||
//
|
||||
TryAgain = FALSE;
|
||||
if (*Status == EFI_BUFFER_TOO_SMALL) {
|
||||
|
||||
if (*Buffer != NULL) {
|
||||
FreePool (*Buffer);
|
||||
}
|
||||
@@ -55,6 +54,7 @@ GrowBuffer (
|
||||
*Status = EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// If there's an error, free the buffer
|
||||
//
|
||||
@@ -66,7 +66,6 @@ GrowBuffer (
|
||||
return TryAgain;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
This function gets the file information from an open file descriptor,
|
||||
and stores it in a buffer allocated from pool.
|
||||
@@ -78,23 +77,23 @@ GrowBuffer (
|
||||
**/
|
||||
EFI_FILE_INFO *
|
||||
FileInfo (
|
||||
IN EFI_FILE_HANDLE FHand
|
||||
IN EFI_FILE_HANDLE FHand
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_FILE_INFO *Buffer;
|
||||
UINTN BufferSize;
|
||||
EFI_STATUS Status;
|
||||
EFI_FILE_INFO *Buffer;
|
||||
UINTN BufferSize;
|
||||
|
||||
//
|
||||
// Initialize for GrowBuffer loop
|
||||
//
|
||||
Buffer = NULL;
|
||||
BufferSize = SIZE_OF_EFI_FILE_INFO + 200;
|
||||
Buffer = NULL;
|
||||
BufferSize = SIZE_OF_EFI_FILE_INFO + 200;
|
||||
|
||||
//
|
||||
// Call the real function
|
||||
//
|
||||
while (GrowBuffer (&Status, (VOID **) &Buffer, BufferSize)) {
|
||||
while (GrowBuffer (&Status, (VOID **)&Buffer, BufferSize)) {
|
||||
Status = FHand->GetInfo (
|
||||
FHand,
|
||||
&gEfiFileInfoGuid,
|
||||
|
@@ -12,7 +12,7 @@
|
||||
|
||||
CHAR16 mRamDiskStorageName[] = L"RAM_DISK_CONFIGURATION";
|
||||
|
||||
RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate = {
|
||||
RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate = {
|
||||
RAM_DISK_CONFIG_PRIVATE_DATA_SIGNATURE,
|
||||
{
|
||||
EFI_PAGE_SIZE,
|
||||
@@ -25,14 +25,14 @@ RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate = {
|
||||
}
|
||||
};
|
||||
|
||||
HII_VENDOR_DEVICE_PATH mRamDiskHiiVendorDevicePath = {
|
||||
HII_VENDOR_DEVICE_PATH mRamDiskHiiVendorDevicePath = {
|
||||
{
|
||||
{
|
||||
HARDWARE_DEVICE_PATH,
|
||||
HW_VENDOR_DP,
|
||||
{
|
||||
(UINT8) (sizeof (VENDOR_DEVICE_PATH)),
|
||||
(UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)
|
||||
(UINT8)(sizeof (VENDOR_DEVICE_PATH)),
|
||||
(UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
|
||||
}
|
||||
},
|
||||
RAM_DISK_FORM_SET_GUID
|
||||
@@ -41,13 +41,12 @@ HII_VENDOR_DEVICE_PATH mRamDiskHiiVendorDevicePath = {
|
||||
END_DEVICE_PATH_TYPE,
|
||||
END_ENTIRE_DEVICE_PATH_SUBTYPE,
|
||||
{
|
||||
(UINT8) (END_DEVICE_PATH_LENGTH),
|
||||
(UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)
|
||||
(UINT8)(END_DEVICE_PATH_LENGTH),
|
||||
(UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
This function publish the RAM disk configuration Form.
|
||||
|
||||
@@ -61,7 +60,7 @@ HII_VENDOR_DEVICE_PATH mRamDiskHiiVendorDevicePath = {
|
||||
**/
|
||||
EFI_STATUS
|
||||
InstallRamDiskConfigForm (
|
||||
IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
|
||||
IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -71,14 +70,14 @@ InstallRamDiskConfigForm (
|
||||
|
||||
DriverHandle = NULL;
|
||||
ConfigAccess = &ConfigPrivateData->ConfigAccess;
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
&DriverHandle,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
&mRamDiskHiiVendorDevicePath,
|
||||
&gEfiHiiConfigAccessProtocolGuid,
|
||||
ConfigAccess,
|
||||
NULL
|
||||
);
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
&DriverHandle,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
&mRamDiskHiiVendorDevicePath,
|
||||
&gEfiHiiConfigAccessProtocolGuid,
|
||||
ConfigAccess,
|
||||
NULL
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
@@ -112,7 +111,6 @@ InstallRamDiskConfigForm (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
This function removes RAM disk configuration Form.
|
||||
|
||||
@@ -122,7 +120,7 @@ InstallRamDiskConfigForm (
|
||||
**/
|
||||
VOID
|
||||
UninstallRamDiskConfigForm (
|
||||
IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
|
||||
IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
|
||||
)
|
||||
{
|
||||
//
|
||||
@@ -151,7 +149,6 @@ UninstallRamDiskConfigForm (
|
||||
FreePool (ConfigPrivateData);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Unregister all registered RAM disks.
|
||||
|
||||
@@ -161,11 +158,11 @@ UnregisterAllRamDisks (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *NextEntry;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *NextEntry;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
|
||||
if (!IsListEmpty(&RegisteredRamDisks)) {
|
||||
if (!IsListEmpty (&RegisteredRamDisks)) {
|
||||
BASE_LIST_FOR_EACH_SAFE (Entry, NextEntry, &RegisteredRamDisks) {
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
|
||||
|
||||
@@ -176,7 +173,7 @@ UnregisterAllRamDisks (
|
||||
&gEfiBlockIo2ProtocolGuid,
|
||||
&PrivateData->BlockIo2,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(EFI_DEVICE_PATH_PROTOCOL *) PrivateData->DevicePath,
|
||||
(EFI_DEVICE_PATH_PROTOCOL *)PrivateData->DevicePath,
|
||||
NULL
|
||||
);
|
||||
|
||||
@@ -188,7 +185,7 @@ UnregisterAllRamDisks (
|
||||
// driver is responsible for freeing the allocated memory for the
|
||||
// RAM disk.
|
||||
//
|
||||
FreePool ((VOID *)(UINTN) PrivateData->StartingAddr);
|
||||
FreePool ((VOID *)(UINTN)PrivateData->StartingAddr);
|
||||
}
|
||||
|
||||
FreePool (PrivateData->DevicePath);
|
||||
@@ -197,7 +194,6 @@ UnregisterAllRamDisks (
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
This function allows a caller to extract the current configuration for one
|
||||
or more named elements from the target driver.
|
||||
@@ -228,20 +224,20 @@ UnregisterAllRamDisks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskExtractConfig (
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN CONST EFI_STRING Request,
|
||||
OUT EFI_STRING *Progress,
|
||||
OUT EFI_STRING *Results
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN CONST EFI_STRING Request,
|
||||
OUT EFI_STRING *Progress,
|
||||
OUT EFI_STRING *Results
|
||||
)
|
||||
{
|
||||
if (Progress == NULL || Results == NULL) {
|
||||
if ((Progress == NULL) || (Results == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
*Progress = Request;
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
This function processes the results of changes in configuration.
|
||||
|
||||
@@ -263,12 +259,12 @@ RamDiskExtractConfig (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskRouteConfig (
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN CONST EFI_STRING Configuration,
|
||||
OUT EFI_STRING *Progress
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN CONST EFI_STRING Configuration,
|
||||
OUT EFI_STRING *Progress
|
||||
)
|
||||
{
|
||||
if (Configuration == NULL || Progress == NULL) {
|
||||
if ((Configuration == NULL) || (Progress == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
@@ -277,7 +273,6 @@ RamDiskRouteConfig (
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Allocate memory and register the RAM disk created within RamDiskDxe
|
||||
driver HII.
|
||||
@@ -295,18 +290,18 @@ RamDiskRouteConfig (
|
||||
**/
|
||||
EFI_STATUS
|
||||
HiiCreateRamDisk (
|
||||
IN UINT64 Size,
|
||||
IN EFI_FILE_HANDLE FileHandle,
|
||||
IN UINT8 MemoryType
|
||||
IN UINT64 Size,
|
||||
IN EFI_FILE_HANDLE FileHandle,
|
||||
IN UINT8 MemoryType
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
UINTN BufferSize;
|
||||
UINT64 *StartingAddr;
|
||||
EFI_INPUT_KEY Key;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
EFI_FILE_INFO *FileInformation;
|
||||
EFI_STATUS Status;
|
||||
UINTN BufferSize;
|
||||
UINT64 *StartingAddr;
|
||||
EFI_INPUT_KEY Key;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
EFI_FILE_INFO *FileInformation;
|
||||
|
||||
FileInformation = NULL;
|
||||
StartingAddr = NULL;
|
||||
@@ -338,7 +333,7 @@ HiiCreateRamDisk (
|
||||
Size = FileInformation->FileSize;
|
||||
}
|
||||
|
||||
if (Size > (UINTN) -1) {
|
||||
if (Size > (UINTN)-1) {
|
||||
do {
|
||||
CreatePopUp (
|
||||
EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
|
||||
@@ -358,19 +353,19 @@ HiiCreateRamDisk (
|
||||
Status = gBS->AllocatePool (
|
||||
EfiBootServicesData,
|
||||
(UINTN)Size,
|
||||
(VOID**)&StartingAddr
|
||||
(VOID **)&StartingAddr
|
||||
);
|
||||
} else if (MemoryType == RAM_DISK_RESERVED_MEMORY) {
|
||||
Status = gBS->AllocatePool (
|
||||
EfiReservedMemoryType,
|
||||
(UINTN)Size,
|
||||
(VOID**)&StartingAddr
|
||||
(VOID **)&StartingAddr
|
||||
);
|
||||
} else {
|
||||
Status = EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if ((StartingAddr == NULL) || EFI_ERROR(Status)) {
|
||||
if ((StartingAddr == NULL) || EFI_ERROR (Status)) {
|
||||
do {
|
||||
CreatePopUp (
|
||||
EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE,
|
||||
@@ -390,11 +385,11 @@ HiiCreateRamDisk (
|
||||
//
|
||||
// Copy the file content to the RAM disk.
|
||||
//
|
||||
BufferSize = (UINTN) Size;
|
||||
BufferSize = (UINTN)Size;
|
||||
FileHandle->Read (
|
||||
FileHandle,
|
||||
&BufferSize,
|
||||
(VOID *)(UINTN) StartingAddr
|
||||
(VOID *)(UINTN)StartingAddr
|
||||
);
|
||||
if (BufferSize != FileInformation->FileSize) {
|
||||
do {
|
||||
@@ -417,7 +412,7 @@ HiiCreateRamDisk (
|
||||
// Register the newly created RAM disk.
|
||||
//
|
||||
Status = RamDiskRegister (
|
||||
((UINT64)(UINTN) StartingAddr),
|
||||
((UINT64)(UINTN)StartingAddr),
|
||||
Size,
|
||||
&gEfiVirtualDiskGuid,
|
||||
NULL,
|
||||
@@ -443,13 +438,12 @@ HiiCreateRamDisk (
|
||||
// If RAM disk is created within HII, memory should be freed when the
|
||||
// RAM disk is unregisterd.
|
||||
//
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (RegisteredRamDisks.BackLink);
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (RegisteredRamDisks.BackLink);
|
||||
PrivateData->CreateMethod = RamDiskCreateHii;
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
This function updates the registered RAM disks list on the main form.
|
||||
|
||||
@@ -460,19 +454,19 @@ HiiCreateRamDisk (
|
||||
**/
|
||||
VOID
|
||||
UpdateMainForm (
|
||||
IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate
|
||||
IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate
|
||||
)
|
||||
{
|
||||
VOID *StartOpCodeHandle;
|
||||
VOID *EndOpCodeHandle;
|
||||
EFI_IFR_GUID_LABEL *StartLabel;
|
||||
EFI_IFR_GUID_LABEL *EndLabel;
|
||||
LIST_ENTRY *Entry;
|
||||
UINTN Index;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
CHAR16 *String;
|
||||
CHAR16 RamDiskStr[128];
|
||||
EFI_STRING_ID StringId;
|
||||
VOID *StartOpCodeHandle;
|
||||
VOID *EndOpCodeHandle;
|
||||
EFI_IFR_GUID_LABEL *StartLabel;
|
||||
EFI_IFR_GUID_LABEL *EndLabel;
|
||||
LIST_ENTRY *Entry;
|
||||
UINTN Index;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
CHAR16 *String;
|
||||
CHAR16 RamDiskStr[128];
|
||||
EFI_STRING_ID StringId;
|
||||
|
||||
//
|
||||
// Init OpCode Handle
|
||||
@@ -486,32 +480,32 @@ UpdateMainForm (
|
||||
//
|
||||
// Create Hii Extend Label OpCode as the start opcode
|
||||
//
|
||||
StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (
|
||||
StartOpCodeHandle,
|
||||
&gEfiIfrTianoGuid,
|
||||
NULL,
|
||||
sizeof (EFI_IFR_GUID_LABEL)
|
||||
);
|
||||
StartLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (
|
||||
StartOpCodeHandle,
|
||||
&gEfiIfrTianoGuid,
|
||||
NULL,
|
||||
sizeof (EFI_IFR_GUID_LABEL)
|
||||
);
|
||||
StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
|
||||
StartLabel->Number = MAIN_LABEL_LIST_START;
|
||||
|
||||
//
|
||||
// Create Hii Extend Label OpCode as the end opcode
|
||||
//
|
||||
EndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (
|
||||
EndOpCodeHandle,
|
||||
&gEfiIfrTianoGuid,
|
||||
NULL,
|
||||
sizeof (EFI_IFR_GUID_LABEL)
|
||||
);
|
||||
EndLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (
|
||||
EndOpCodeHandle,
|
||||
&gEfiIfrTianoGuid,
|
||||
NULL,
|
||||
sizeof (EFI_IFR_GUID_LABEL)
|
||||
);
|
||||
EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;
|
||||
EndLabel->Number = MAIN_LABEL_LIST_END;
|
||||
|
||||
Index = 0;
|
||||
BASE_LIST_FOR_EACH (Entry, &RegisteredRamDisks) {
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
|
||||
PrivateData->CheckBoxId = (EFI_QUESTION_ID)
|
||||
(MAIN_CHECKBOX_QUESTION_ID_START + Index);
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
|
||||
PrivateData->CheckBoxId = (EFI_QUESTION_ID)
|
||||
(MAIN_CHECKBOX_QUESTION_ID_START + Index);
|
||||
//
|
||||
// CheckBox is unchecked by default.
|
||||
//
|
||||
@@ -557,7 +551,6 @@ UpdateMainForm (
|
||||
HiiFreeOpCodeHandle (EndOpCodeHandle);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
This function processes the results of changes in configuration.
|
||||
|
||||
@@ -583,21 +576,21 @@ UpdateMainForm (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskCallback (
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN EFI_BROWSER_ACTION Action,
|
||||
IN EFI_QUESTION_ID QuestionId,
|
||||
IN UINT8 Type,
|
||||
IN EFI_IFR_TYPE_VALUE *Value,
|
||||
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN EFI_BROWSER_ACTION Action,
|
||||
IN EFI_QUESTION_ID QuestionId,
|
||||
IN UINT8 Type,
|
||||
IN EFI_IFR_TYPE_VALUE *Value,
|
||||
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
|
||||
EFI_DEVICE_PATH_PROTOCOL *FileDevPath;
|
||||
EFI_FILE_HANDLE FileHandle;
|
||||
LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *NextEntry;
|
||||
EFI_STATUS Status;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivate;
|
||||
EFI_DEVICE_PATH_PROTOCOL *FileDevPath;
|
||||
EFI_FILE_HANDLE FileHandle;
|
||||
LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *NextEntry;
|
||||
|
||||
if ((This == NULL) || (Value == NULL) || (ActionRequest == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -608,20 +601,22 @@ RamDiskCallback (
|
||||
if (Action == EFI_BROWSER_ACTION_RETRIEVE) {
|
||||
Status = EFI_UNSUPPORTED;
|
||||
if (QuestionId == CREATE_RAW_SIZE_QUESTION_ID) {
|
||||
Value->u64 = EFI_PAGE_SIZE;
|
||||
Value->u64 = EFI_PAGE_SIZE;
|
||||
ConfigPrivate->ConfigStore.Size = EFI_PAGE_SIZE;
|
||||
Status = EFI_SUCCESS;
|
||||
Status = EFI_SUCCESS;
|
||||
} else if (QuestionId == CREATE_RAW_MEMORY_TYPE_QUESTION_ID) {
|
||||
Value->u8 = RAM_DISK_BOOT_SERVICE_DATA_MEMORY;
|
||||
Value->u8 = RAM_DISK_BOOT_SERVICE_DATA_MEMORY;
|
||||
ConfigPrivate->ConfigStore.MemType = RAM_DISK_BOOT_SERVICE_DATA_MEMORY;
|
||||
Status = EFI_SUCCESS;
|
||||
Status = EFI_SUCCESS;
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
if ((Action != EFI_BROWSER_ACTION_CHANGED) &&
|
||||
(Action != EFI_BROWSER_ACTION_CHANGING) &&
|
||||
(Action != EFI_BROWSER_ACTION_FORM_OPEN)) {
|
||||
(Action != EFI_BROWSER_ACTION_FORM_OPEN))
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
@@ -634,6 +629,7 @@ RamDiskCallback (
|
||||
UpdateMainForm (ConfigPrivate);
|
||||
Status = EFI_SUCCESS;
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -641,33 +637,85 @@ RamDiskCallback (
|
||||
|
||||
if (Action == EFI_BROWSER_ACTION_CHANGING) {
|
||||
switch (QuestionId) {
|
||||
case MAIN_GOTO_FILE_EXPLORER_ID:
|
||||
Status = ChooseFile (NULL, NULL, NULL, &FileDevPath);
|
||||
if (EFI_ERROR (Status)) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (FileDevPath != NULL) {
|
||||
//
|
||||
// Open the file.
|
||||
//
|
||||
Status = EfiOpenFileByDevicePath (
|
||||
&FileDevPath,
|
||||
&FileHandle,
|
||||
EFI_FILE_MODE_READ,
|
||||
0
|
||||
);
|
||||
case MAIN_GOTO_FILE_EXPLORER_ID:
|
||||
Status = ChooseFile (NULL, NULL, NULL, &FileDevPath);
|
||||
if (EFI_ERROR (Status)) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (FileDevPath != NULL) {
|
||||
//
|
||||
// Open the file.
|
||||
//
|
||||
Status = EfiOpenFileByDevicePath (
|
||||
&FileDevPath,
|
||||
&FileHandle,
|
||||
EFI_FILE_MODE_READ,
|
||||
0
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// Create from file, RAM disk size is zero. It will be updated
|
||||
// according to the file size.
|
||||
//
|
||||
Status = HiiCreateRamDisk (
|
||||
0,
|
||||
FileHandle,
|
||||
ConfigPrivate->ConfigStore.MemType
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// Refresh the registered RAM disks list.
|
||||
//
|
||||
UpdateMainForm (ConfigPrivate);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else if (Action == EFI_BROWSER_ACTION_CHANGED) {
|
||||
switch (QuestionId) {
|
||||
case MAIN_REMOVE_RD_QUESTION_ID:
|
||||
//
|
||||
// Create from file, RAM disk size is zero. It will be updated
|
||||
// according to the file size.
|
||||
// Remove the selected RAM disks
|
||||
//
|
||||
BASE_LIST_FOR_EACH_SAFE (Entry, NextEntry, &RegisteredRamDisks) {
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
|
||||
if (PrivateData->CheckBoxChecked) {
|
||||
RamDiskUnregister (
|
||||
(EFI_DEVICE_PATH_PROTOCOL *)PrivateData->DevicePath
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
UpdateMainForm (ConfigPrivate);
|
||||
|
||||
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;
|
||||
break;
|
||||
|
||||
case CREATE_RAW_SIZE_QUESTION_ID:
|
||||
ConfigPrivate->ConfigStore.Size = Value->u64;
|
||||
break;
|
||||
|
||||
case CREATE_RAW_MEMORY_TYPE_QUESTION_ID:
|
||||
ConfigPrivate->ConfigStore.MemType = Value->u8;
|
||||
break;
|
||||
|
||||
case CREATE_RAW_SUBMIT_QUESTION_ID:
|
||||
//
|
||||
// Create raw, FileHandle is NULL.
|
||||
//
|
||||
Status = HiiCreateRamDisk (
|
||||
0,
|
||||
FileHandle,
|
||||
ConfigPrivate->ConfigStore.Size,
|
||||
NULL,
|
||||
ConfigPrivate->ConfigStore.MemType
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
@@ -678,79 +726,30 @@ RamDiskCallback (
|
||||
// Refresh the registered RAM disks list.
|
||||
//
|
||||
UpdateMainForm (ConfigPrivate);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
} else if (Action == EFI_BROWSER_ACTION_CHANGED) {
|
||||
switch (QuestionId) {
|
||||
case MAIN_REMOVE_RD_QUESTION_ID:
|
||||
//
|
||||
// Remove the selected RAM disks
|
||||
//
|
||||
BASE_LIST_FOR_EACH_SAFE (Entry, NextEntry, &RegisteredRamDisks) {
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
|
||||
if (PrivateData->CheckBoxChecked) {
|
||||
RamDiskUnregister (
|
||||
(EFI_DEVICE_PATH_PROTOCOL *) PrivateData->DevicePath
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
UpdateMainForm (ConfigPrivate);
|
||||
|
||||
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;
|
||||
break;
|
||||
|
||||
case CREATE_RAW_SIZE_QUESTION_ID:
|
||||
ConfigPrivate->ConfigStore.Size = Value->u64;
|
||||
break;
|
||||
|
||||
case CREATE_RAW_MEMORY_TYPE_QUESTION_ID:
|
||||
ConfigPrivate->ConfigStore.MemType = Value->u8;
|
||||
break;
|
||||
|
||||
case CREATE_RAW_SUBMIT_QUESTION_ID:
|
||||
//
|
||||
// Create raw, FileHandle is NULL.
|
||||
//
|
||||
Status = HiiCreateRamDisk (
|
||||
ConfigPrivate->ConfigStore.Size,
|
||||
NULL,
|
||||
ConfigPrivate->ConfigStore.MemType
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
|
||||
break;
|
||||
}
|
||||
|
||||
//
|
||||
// Refresh the registered RAM disks list.
|
||||
//
|
||||
UpdateMainForm (ConfigPrivate);
|
||||
case CREATE_RAW_DISCARD_QUESTION_ID:
|
||||
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
|
||||
break;
|
||||
|
||||
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
|
||||
break;
|
||||
|
||||
case CREATE_RAW_DISCARD_QUESTION_ID:
|
||||
*ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;
|
||||
break;
|
||||
|
||||
default:
|
||||
//
|
||||
// QuestionIds for checkboxes
|
||||
//
|
||||
if ((QuestionId >= MAIN_CHECKBOX_QUESTION_ID_START) &&
|
||||
(QuestionId < CREATE_RAW_RAM_DISK_FORM_ID)) {
|
||||
BASE_LIST_FOR_EACH (Entry, &RegisteredRamDisks) {
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
|
||||
if (PrivateData->CheckBoxId == QuestionId) {
|
||||
PrivateData->CheckBoxChecked = (BOOLEAN) (Value->u8 != 0);
|
||||
default:
|
||||
//
|
||||
// QuestionIds for checkboxes
|
||||
//
|
||||
if ((QuestionId >= MAIN_CHECKBOX_QUESTION_ID_START) &&
|
||||
(QuestionId < CREATE_RAW_RAM_DISK_FORM_ID))
|
||||
{
|
||||
BASE_LIST_FOR_EACH (Entry, &RegisteredRamDisks) {
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
|
||||
if (PrivateData->CheckBoxId == QuestionId) {
|
||||
PrivateData->CheckBoxChecked = (BOOLEAN)(Value->u8 != 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -46,24 +46,24 @@
|
||||
//
|
||||
// Default block size for RAM disk
|
||||
//
|
||||
#define RAM_DISK_DEFAULT_BLOCK_SIZE 512
|
||||
#define RAM_DISK_DEFAULT_BLOCK_SIZE 512
|
||||
|
||||
//
|
||||
// RamDiskDxe driver maintains a list of registered RAM disks.
|
||||
//
|
||||
extern LIST_ENTRY RegisteredRamDisks;
|
||||
extern LIST_ENTRY RegisteredRamDisks;
|
||||
|
||||
//
|
||||
// Pointers to the EFI_ACPI_TABLE_PROTOCOL and EFI_ACPI_SDT_PROTOCOL.
|
||||
//
|
||||
extern EFI_ACPI_TABLE_PROTOCOL *mAcpiTableProtocol;
|
||||
extern EFI_ACPI_SDT_PROTOCOL *mAcpiSdtProtocol;
|
||||
extern EFI_ACPI_TABLE_PROTOCOL *mAcpiTableProtocol;
|
||||
extern EFI_ACPI_SDT_PROTOCOL *mAcpiSdtProtocol;
|
||||
|
||||
//
|
||||
// RAM Disk create method.
|
||||
//
|
||||
typedef enum _RAM_DISK_CREATE_METHOD {
|
||||
RamDiskCreateOthers = 0,
|
||||
RamDiskCreateOthers = 0,
|
||||
RamDiskCreateHii
|
||||
} RAM_DISK_CREATE_METHOD;
|
||||
|
||||
@@ -73,31 +73,31 @@ typedef enum _RAM_DISK_CREATE_METHOD {
|
||||
// disk
|
||||
//
|
||||
typedef struct {
|
||||
UINTN Signature;
|
||||
UINTN Signature;
|
||||
|
||||
EFI_HANDLE Handle;
|
||||
EFI_HANDLE Handle;
|
||||
|
||||
EFI_BLOCK_IO_PROTOCOL BlockIo;
|
||||
EFI_BLOCK_IO2_PROTOCOL BlockIo2;
|
||||
EFI_BLOCK_IO_MEDIA Media;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
EFI_BLOCK_IO_PROTOCOL BlockIo;
|
||||
EFI_BLOCK_IO2_PROTOCOL BlockIo2;
|
||||
EFI_BLOCK_IO_MEDIA Media;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
|
||||
UINT64 StartingAddr;
|
||||
UINT64 Size;
|
||||
EFI_GUID TypeGuid;
|
||||
UINT16 InstanceNumber;
|
||||
RAM_DISK_CREATE_METHOD CreateMethod;
|
||||
BOOLEAN InNfit;
|
||||
EFI_QUESTION_ID CheckBoxId;
|
||||
BOOLEAN CheckBoxChecked;
|
||||
UINT64 StartingAddr;
|
||||
UINT64 Size;
|
||||
EFI_GUID TypeGuid;
|
||||
UINT16 InstanceNumber;
|
||||
RAM_DISK_CREATE_METHOD CreateMethod;
|
||||
BOOLEAN InNfit;
|
||||
EFI_QUESTION_ID CheckBoxId;
|
||||
BOOLEAN CheckBoxChecked;
|
||||
|
||||
LIST_ENTRY ThisInstance;
|
||||
LIST_ENTRY ThisInstance;
|
||||
} RAM_DISK_PRIVATE_DATA;
|
||||
|
||||
#define RAM_DISK_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('R', 'D', 'S', 'K')
|
||||
#define RAM_DISK_PRIVATE_FROM_BLKIO(a) CR (a, RAM_DISK_PRIVATE_DATA, BlockIo, RAM_DISK_PRIVATE_DATA_SIGNATURE)
|
||||
#define RAM_DISK_PRIVATE_FROM_BLKIO2(a) CR (a, RAM_DISK_PRIVATE_DATA, BlockIo2, RAM_DISK_PRIVATE_DATA_SIGNATURE)
|
||||
#define RAM_DISK_PRIVATE_FROM_THIS(a) CR (a, RAM_DISK_PRIVATE_DATA, ThisInstance, RAM_DISK_PRIVATE_DATA_SIGNATURE)
|
||||
#define RAM_DISK_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('R', 'D', 'S', 'K')
|
||||
#define RAM_DISK_PRIVATE_FROM_BLKIO(a) CR (a, RAM_DISK_PRIVATE_DATA, BlockIo, RAM_DISK_PRIVATE_DATA_SIGNATURE)
|
||||
#define RAM_DISK_PRIVATE_FROM_BLKIO2(a) CR (a, RAM_DISK_PRIVATE_DATA, BlockIo2, RAM_DISK_PRIVATE_DATA_SIGNATURE)
|
||||
#define RAM_DISK_PRIVATE_FROM_THIS(a) CR (a, RAM_DISK_PRIVATE_DATA, ThisInstance, RAM_DISK_PRIVATE_DATA_SIGNATURE)
|
||||
|
||||
///
|
||||
/// RAM disk HII-related definitions and declarations
|
||||
@@ -106,28 +106,28 @@ typedef struct {
|
||||
//
|
||||
// Tool generated IFR binary data and String package data
|
||||
//
|
||||
extern UINT8 RamDiskHiiBin[];
|
||||
extern UINT8 RamDiskDxeStrings[];
|
||||
extern UINT8 RamDiskHiiBin[];
|
||||
extern UINT8 RamDiskDxeStrings[];
|
||||
|
||||
typedef struct {
|
||||
VENDOR_DEVICE_PATH VendorDevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL End;
|
||||
VENDOR_DEVICE_PATH VendorDevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL End;
|
||||
} HII_VENDOR_DEVICE_PATH;
|
||||
|
||||
typedef struct {
|
||||
UINTN Signature;
|
||||
UINTN Signature;
|
||||
|
||||
RAM_DISK_CONFIGURATION ConfigStore;
|
||||
RAM_DISK_CONFIGURATION ConfigStore;
|
||||
|
||||
EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
|
||||
EFI_HANDLE DriverHandle;
|
||||
EFI_HII_HANDLE HiiHandle;
|
||||
EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess;
|
||||
EFI_HANDLE DriverHandle;
|
||||
EFI_HII_HANDLE HiiHandle;
|
||||
} RAM_DISK_CONFIG_PRIVATE_DATA;
|
||||
|
||||
extern RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate;
|
||||
extern RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate;
|
||||
|
||||
#define RAM_DISK_CONFIG_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('R', 'C', 'F', 'G')
|
||||
#define RAM_DISK_CONFIG_PRIVATE_FROM_THIS(a) CR (a, RAM_DISK_CONFIG_PRIVATE_DATA, ConfigAccess, RAM_DISK_CONFIG_PRIVATE_DATA_SIGNATURE)
|
||||
#define RAM_DISK_CONFIG_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('R', 'C', 'F', 'G')
|
||||
#define RAM_DISK_CONFIG_PRIVATE_FROM_THIS(a) CR (a, RAM_DISK_CONFIG_PRIVATE_DATA, ConfigAccess, RAM_DISK_CONFIG_PRIVATE_DATA_SIGNATURE)
|
||||
|
||||
/**
|
||||
Register a RAM disk with specified address, size and type.
|
||||
@@ -162,11 +162,11 @@ extern RAM_DISK_CONFIG_PRIVATE_DATA mRamDiskConfigPrivateDataTemplate;
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskRegister (
|
||||
IN UINT64 RamDiskBase,
|
||||
IN UINT64 RamDiskSize,
|
||||
IN EFI_GUID *RamDiskType,
|
||||
IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,
|
||||
OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
|
||||
IN UINT64 RamDiskBase,
|
||||
IN UINT64 RamDiskSize,
|
||||
IN EFI_GUID *RamDiskType,
|
||||
IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,
|
||||
OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -187,7 +187,7 @@ RamDiskRegister (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskUnregister (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -198,7 +198,7 @@ RamDiskUnregister (
|
||||
**/
|
||||
VOID
|
||||
RamDiskInitBlockIo (
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -216,8 +216,8 @@ RamDiskInitBlockIo (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIoReset (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -248,11 +248,11 @@ RamDiskBlkIoReset (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIoReadBlocks (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -283,11 +283,11 @@ RamDiskBlkIoReadBlocks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIoWriteBlocks (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -304,7 +304,7 @@ RamDiskBlkIoWriteBlocks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIoFlushBlocks (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -321,8 +321,8 @@ RamDiskBlkIoFlushBlocks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIo2Reset (
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -361,12 +361,12 @@ RamDiskBlkIo2Reset (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIo2ReadBlocksEx (
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -404,12 +404,12 @@ RamDiskBlkIo2ReadBlocksEx (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIo2WriteBlocksEx (
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -434,8 +434,8 @@ RamDiskBlkIo2WriteBlocksEx (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskBlkIo2FlushBlocksEx (
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -451,7 +451,7 @@ RamDiskBlkIo2FlushBlocksEx (
|
||||
**/
|
||||
EFI_STATUS
|
||||
InstallRamDiskConfigForm (
|
||||
IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
|
||||
IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -463,7 +463,7 @@ InstallRamDiskConfigForm (
|
||||
**/
|
||||
VOID
|
||||
UninstallRamDiskConfigForm (
|
||||
IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
|
||||
IN OUT RAM_DISK_CONFIG_PRIVATE_DATA *ConfigPrivateData
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -505,10 +505,10 @@ UnregisterAllRamDisks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskExtractConfig (
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN CONST EFI_STRING Request,
|
||||
OUT EFI_STRING *Progress,
|
||||
OUT EFI_STRING *Results
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN CONST EFI_STRING Request,
|
||||
OUT EFI_STRING *Progress,
|
||||
OUT EFI_STRING *Results
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -532,9 +532,9 @@ RamDiskExtractConfig (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskRouteConfig (
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN CONST EFI_STRING Configuration,
|
||||
OUT EFI_STRING *Progress
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN CONST EFI_STRING Configuration,
|
||||
OUT EFI_STRING *Progress
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -562,15 +562,14 @@ RamDiskRouteConfig (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskCallback (
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN EFI_BROWSER_ACTION Action,
|
||||
IN EFI_QUESTION_ID QuestionId,
|
||||
IN UINT8 Type,
|
||||
IN EFI_IFR_TYPE_VALUE *Value,
|
||||
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
|
||||
IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,
|
||||
IN EFI_BROWSER_ACTION Action,
|
||||
IN EFI_QUESTION_ID QuestionId,
|
||||
IN UINT8 Type,
|
||||
IN EFI_IFR_TYPE_VALUE *Value,
|
||||
OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
This function gets the file information from an open file descriptor,
|
||||
and stores it in a buffer allocated from pool.
|
||||
@@ -582,10 +581,9 @@ RamDiskCallback (
|
||||
**/
|
||||
EFI_FILE_INFO *
|
||||
FileInfo (
|
||||
IN EFI_FILE_HANDLE FHand
|
||||
IN EFI_FILE_HANDLE FHand
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Publish the RAM disk NVDIMM Firmware Interface Table (NFIT) to the ACPI
|
||||
table.
|
||||
@@ -598,7 +596,7 @@ FileInfo (
|
||||
**/
|
||||
EFI_STATUS
|
||||
RamDiskPublishNfit (
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData
|
||||
);
|
||||
|
||||
#endif
|
||||
|
@@ -13,12 +13,12 @@
|
||||
#include <Guid/HiiPlatformSetupFormset.h>
|
||||
#include <Guid/RamDiskHii.h>
|
||||
|
||||
#define MAIN_FORM_ID 0x1000
|
||||
#define MAIN_GOTO_FILE_EXPLORER_ID 0x1001
|
||||
#define MAIN_REMOVE_RD_QUESTION_ID 0x1002
|
||||
#define MAIN_LABEL_LIST_START 0x1003
|
||||
#define MAIN_LABEL_LIST_END 0x1004
|
||||
#define MAIN_CHECKBOX_QUESTION_ID_START 0x1100
|
||||
#define MAIN_FORM_ID 0x1000
|
||||
#define MAIN_GOTO_FILE_EXPLORER_ID 0x1001
|
||||
#define MAIN_REMOVE_RD_QUESTION_ID 0x1002
|
||||
#define MAIN_LABEL_LIST_START 0x1003
|
||||
#define MAIN_LABEL_LIST_END 0x1004
|
||||
#define MAIN_CHECKBOX_QUESTION_ID_START 0x1100
|
||||
|
||||
#define CREATE_RAW_RAM_DISK_FORM_ID 0x2000
|
||||
#define CREATE_RAW_SIZE_QUESTION_ID 0x2001
|
||||
@@ -26,19 +26,19 @@
|
||||
#define CREATE_RAW_DISCARD_QUESTION_ID 0x2003
|
||||
#define CREATE_RAW_MEMORY_TYPE_QUESTION_ID 0x2004
|
||||
|
||||
#define RAM_DISK_BOOT_SERVICE_DATA_MEMORY 0x00
|
||||
#define RAM_DISK_RESERVED_MEMORY 0x01
|
||||
#define RAM_DISK_MEMORY_TYPE_MAX 0x02
|
||||
#define RAM_DISK_BOOT_SERVICE_DATA_MEMORY 0x00
|
||||
#define RAM_DISK_RESERVED_MEMORY 0x01
|
||||
#define RAM_DISK_MEMORY_TYPE_MAX 0x02
|
||||
|
||||
typedef struct {
|
||||
//
|
||||
// The size of the RAM disk to be created.
|
||||
//
|
||||
UINT64 Size;
|
||||
UINT64 Size;
|
||||
//
|
||||
// Selected RAM Disk Memory Type
|
||||
//
|
||||
UINT8 MemType;
|
||||
UINT8 MemType;
|
||||
} RAM_DISK_CONFIGURATION;
|
||||
|
||||
#endif
|
||||
|
@@ -10,7 +10,7 @@
|
||||
|
||||
#include "RamDiskImpl.h"
|
||||
|
||||
RAM_DISK_PRIVATE_DATA mRamDiskPrivateDataTemplate = {
|
||||
RAM_DISK_PRIVATE_DATA mRamDiskPrivateDataTemplate = {
|
||||
RAM_DISK_PRIVATE_DATA_SIGNATURE,
|
||||
NULL
|
||||
};
|
||||
@@ -20,8 +20,8 @@ MEDIA_RAM_DISK_DEVICE_PATH mRamDiskDeviceNodeTemplate = {
|
||||
MEDIA_DEVICE_PATH,
|
||||
MEDIA_RAM_DISK_DP,
|
||||
{
|
||||
(UINT8) (sizeof (MEDIA_RAM_DISK_DEVICE_PATH)),
|
||||
(UINT8) ((sizeof (MEDIA_RAM_DISK_DEVICE_PATH)) >> 8)
|
||||
(UINT8)(sizeof (MEDIA_RAM_DISK_DEVICE_PATH)),
|
||||
(UINT8)((sizeof (MEDIA_RAM_DISK_DEVICE_PATH)) >> 8)
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -29,7 +29,6 @@ MEDIA_RAM_DISK_DEVICE_PATH mRamDiskDeviceNodeTemplate = {
|
||||
BOOLEAN mRamDiskSsdtTableKeyValid = FALSE;
|
||||
UINTN mRamDiskSsdtTableKey;
|
||||
|
||||
|
||||
/**
|
||||
Initialize the RAM disk device node.
|
||||
|
||||
@@ -39,23 +38,22 @@ UINTN mRamDiskSsdtTableKey;
|
||||
**/
|
||||
VOID
|
||||
RamDiskInitDeviceNode (
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData,
|
||||
IN OUT MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData,
|
||||
IN OUT MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode
|
||||
)
|
||||
{
|
||||
WriteUnaligned64 (
|
||||
(UINT64 *) &(RamDiskDevNode->StartingAddr[0]),
|
||||
(UINT64) PrivateData->StartingAddr
|
||||
(UINT64 *)&(RamDiskDevNode->StartingAddr[0]),
|
||||
(UINT64)PrivateData->StartingAddr
|
||||
);
|
||||
WriteUnaligned64 (
|
||||
(UINT64 *) &(RamDiskDevNode->EndingAddr[0]),
|
||||
(UINT64) PrivateData->StartingAddr + PrivateData->Size - 1
|
||||
(UINT64 *)&(RamDiskDevNode->EndingAddr[0]),
|
||||
(UINT64)PrivateData->StartingAddr + PrivateData->Size - 1
|
||||
);
|
||||
CopyGuid (&RamDiskDevNode->TypeGuid, &PrivateData->TypeGuid);
|
||||
RamDiskDevNode->Instance = PrivateData->InstanceNumber;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Initialize and publish NVDIMM root device SSDT in ACPI table.
|
||||
|
||||
@@ -68,10 +66,10 @@ RamDiskPublishSsdt (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_ACPI_DESCRIPTION_HEADER *Table;
|
||||
UINTN SectionInstance;
|
||||
UINTN TableSize;
|
||||
EFI_STATUS Status;
|
||||
EFI_ACPI_DESCRIPTION_HEADER *Table;
|
||||
UINTN SectionInstance;
|
||||
UINTN TableSize;
|
||||
|
||||
Status = EFI_SUCCESS;
|
||||
SectionInstance = 0;
|
||||
@@ -85,7 +83,7 @@ RamDiskPublishSsdt (
|
||||
&gEfiCallerIdGuid,
|
||||
EFI_SECTION_RAW,
|
||||
SectionInstance,
|
||||
(VOID **) &Table,
|
||||
(VOID **)&Table,
|
||||
&TableSize
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
@@ -116,7 +114,6 @@ RamDiskPublishSsdt (
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Publish the RAM disk NVDIMM Firmware Interface Table (NFIT) to the ACPI
|
||||
table.
|
||||
@@ -129,29 +126,29 @@ RamDiskPublishSsdt (
|
||||
**/
|
||||
EFI_STATUS
|
||||
RamDiskPublishNfit (
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_MEMORY_DESCRIPTOR *MemoryMap;
|
||||
EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;
|
||||
EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;
|
||||
UINTN TableIndex;
|
||||
VOID *TableHeader;
|
||||
EFI_ACPI_TABLE_VERSION TableVersion;
|
||||
UINTN TableKey;
|
||||
EFI_ACPI_DESCRIPTION_HEADER *NfitHeader;
|
||||
EFI_STATUS Status;
|
||||
EFI_MEMORY_DESCRIPTOR *MemoryMap;
|
||||
EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;
|
||||
EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;
|
||||
UINTN TableIndex;
|
||||
VOID *TableHeader;
|
||||
EFI_ACPI_TABLE_VERSION TableVersion;
|
||||
UINTN TableKey;
|
||||
EFI_ACPI_DESCRIPTION_HEADER *NfitHeader;
|
||||
EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE
|
||||
*SpaRange;
|
||||
VOID *Nfit;
|
||||
UINT32 NfitLen;
|
||||
UINTN MemoryMapSize;
|
||||
UINTN MapKey;
|
||||
UINTN DescriptorSize;
|
||||
UINT32 DescriptorVersion;
|
||||
UINT64 CurrentData;
|
||||
UINT8 Checksum;
|
||||
BOOLEAN MemoryFound;
|
||||
*SpaRange;
|
||||
VOID *Nfit;
|
||||
UINT32 NfitLen;
|
||||
UINTN MemoryMapSize;
|
||||
UINTN MapKey;
|
||||
UINTN DescriptorSize;
|
||||
UINT32 DescriptorVersion;
|
||||
UINT64 CurrentData;
|
||||
UINT8 Checksum;
|
||||
BOOLEAN MemoryFound;
|
||||
|
||||
//
|
||||
// Get the EFI memory map.
|
||||
@@ -169,7 +166,7 @@ RamDiskPublishNfit (
|
||||
);
|
||||
ASSERT (Status == EFI_BUFFER_TOO_SMALL);
|
||||
do {
|
||||
MemoryMap = (EFI_MEMORY_DESCRIPTOR *) AllocatePool (MemoryMapSize);
|
||||
MemoryMap = (EFI_MEMORY_DESCRIPTOR *)AllocatePool (MemoryMapSize);
|
||||
ASSERT (MemoryMap != NULL);
|
||||
Status = gBS->GetMemoryMap (
|
||||
&MemoryMapSize,
|
||||
@@ -182,16 +179,18 @@ RamDiskPublishNfit (
|
||||
FreePool (MemoryMap);
|
||||
}
|
||||
} while (Status == EFI_BUFFER_TOO_SMALL);
|
||||
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
MemoryMapEntry = MemoryMap;
|
||||
MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *) ((UINT8 *) MemoryMap + MemoryMapSize);
|
||||
while ((UINTN) MemoryMapEntry < (UINTN) MemoryMapEnd) {
|
||||
MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *)((UINT8 *)MemoryMap + MemoryMapSize);
|
||||
while ((UINTN)MemoryMapEntry < (UINTN)MemoryMapEnd) {
|
||||
if ((MemoryMapEntry->Type == EfiReservedMemoryType) &&
|
||||
(MemoryMapEntry->PhysicalStart <= PrivateData->StartingAddr) &&
|
||||
(MemoryMapEntry->PhysicalStart +
|
||||
MultU64x32 (MemoryMapEntry->NumberOfPages, EFI_PAGE_SIZE)
|
||||
>= PrivateData->StartingAddr + PrivateData->Size)) {
|
||||
>= PrivateData->StartingAddr + PrivateData->Size))
|
||||
{
|
||||
MemoryFound = TRUE;
|
||||
DEBUG ((
|
||||
DEBUG_INFO,
|
||||
@@ -199,8 +198,10 @@ RamDiskPublishNfit (
|
||||
));
|
||||
break;
|
||||
}
|
||||
|
||||
MemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);
|
||||
}
|
||||
|
||||
FreePool (MemoryMap);
|
||||
|
||||
if (!MemoryFound) {
|
||||
@@ -226,7 +227,8 @@ RamDiskPublishNfit (
|
||||
TableIndex++;
|
||||
|
||||
if (((EFI_ACPI_SDT_HEADER *)TableHeader)->Signature ==
|
||||
EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE) {
|
||||
EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -247,6 +249,7 @@ RamDiskPublishNfit (
|
||||
if (Nfit == NULL) {
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
CopyMem (Nfit, TableHeader, NfitHeader->Length);
|
||||
|
||||
//
|
||||
@@ -272,13 +275,13 @@ RamDiskPublishNfit (
|
||||
// Append the System Physical Address (SPA) Range Structure at the end
|
||||
// of the origin NFIT.
|
||||
//
|
||||
SpaRange = (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE *)
|
||||
((UINT8 *)Nfit + NfitHeader->Length);
|
||||
SpaRange = (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE *)
|
||||
((UINT8 *)Nfit + NfitHeader->Length);
|
||||
|
||||
//
|
||||
// Update the length field of the NFIT
|
||||
//
|
||||
NfitHeader->Length = NfitLen;
|
||||
NfitHeader->Length = NfitLen;
|
||||
|
||||
//
|
||||
// The checksum will be updated after the new contents are appended.
|
||||
@@ -306,7 +309,7 @@ RamDiskPublishNfit (
|
||||
|
||||
NfitLen = sizeof (EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE) +
|
||||
sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);
|
||||
Nfit = AllocateZeroPool (NfitLen);
|
||||
Nfit = AllocateZeroPool (NfitLen);
|
||||
if (Nfit == NULL) {
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
@@ -330,13 +333,13 @@ RamDiskPublishNfit (
|
||||
//
|
||||
// Fill in the content of the SPA Range Structure.
|
||||
//
|
||||
SpaRange->Type = EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE;
|
||||
SpaRange->Length = sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);
|
||||
SpaRange->Type = EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE;
|
||||
SpaRange->Length = sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);
|
||||
SpaRange->SystemPhysicalAddressRangeBase = PrivateData->StartingAddr;
|
||||
SpaRange->SystemPhysicalAddressRangeLength = PrivateData->Size;
|
||||
CopyGuid (&SpaRange->AddressRangeTypeGUID, &PrivateData->TypeGuid);
|
||||
|
||||
Checksum = CalculateCheckSum8((UINT8 *)Nfit, NfitHeader->Length);
|
||||
Checksum = CalculateCheckSum8 ((UINT8 *)Nfit, NfitHeader->Length);
|
||||
NfitHeader->Checksum = Checksum;
|
||||
|
||||
//
|
||||
@@ -363,7 +366,6 @@ RamDiskPublishNfit (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Unpublish the RAM disk NVDIMM Firmware Interface Table (NFIT) from the
|
||||
ACPI table.
|
||||
@@ -376,23 +378,23 @@ RamDiskPublishNfit (
|
||||
**/
|
||||
EFI_STATUS
|
||||
RamDiskUnpublishNfit (
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData
|
||||
IN RAM_DISK_PRIVATE_DATA *PrivateData
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
UINTN TableIndex;
|
||||
VOID *TableHeader;
|
||||
EFI_ACPI_TABLE_VERSION TableVersion;
|
||||
UINTN TableKey;
|
||||
EFI_ACPI_DESCRIPTION_HEADER *NewNfitHeader;
|
||||
EFI_STATUS Status;
|
||||
UINTN TableIndex;
|
||||
VOID *TableHeader;
|
||||
EFI_ACPI_TABLE_VERSION TableVersion;
|
||||
UINTN TableKey;
|
||||
EFI_ACPI_DESCRIPTION_HEADER *NewNfitHeader;
|
||||
EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE
|
||||
*SpaRange;
|
||||
VOID *NewNfit;
|
||||
VOID *NewNfitPtr;
|
||||
EFI_ACPI_6_1_NFIT_STRUCTURE_HEADER *NfitStructHeader;
|
||||
UINT32 NewNfitLen;
|
||||
UINT32 RemainLen;
|
||||
UINT8 Checksum;
|
||||
*SpaRange;
|
||||
VOID *NewNfit;
|
||||
VOID *NewNfitPtr;
|
||||
EFI_ACPI_6_1_NFIT_STRUCTURE_HEADER *NfitStructHeader;
|
||||
UINT32 NewNfitLen;
|
||||
UINT32 RemainLen;
|
||||
UINT8 Checksum;
|
||||
|
||||
//
|
||||
// Find the NFIT in the ACPI table.
|
||||
@@ -413,7 +415,8 @@ RamDiskUnpublishNfit (
|
||||
TableIndex++;
|
||||
|
||||
if (((EFI_ACPI_SDT_HEADER *)TableHeader)->Signature ==
|
||||
EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE) {
|
||||
EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -426,8 +429,8 @@ RamDiskUnpublishNfit (
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
NewNfitLen = ((EFI_ACPI_DESCRIPTION_HEADER *)TableHeader)->Length -
|
||||
sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);
|
||||
NewNfitLen = ((EFI_ACPI_DESCRIPTION_HEADER *)TableHeader)->Length -
|
||||
sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);
|
||||
|
||||
//
|
||||
// After removing this RAM disk from the NFIT, if no other structure is in
|
||||
@@ -488,12 +491,14 @@ RamDiskUnpublishNfit (
|
||||
((UINT8 *)TableHeader + sizeof (EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE));
|
||||
while (RemainLen > 0) {
|
||||
if ((NfitStructHeader->Type == EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE) &&
|
||||
(NfitStructHeader->Length == sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE))) {
|
||||
(NfitStructHeader->Length == sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE)))
|
||||
{
|
||||
SpaRange = (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE *)NfitStructHeader;
|
||||
|
||||
if ((SpaRange->SystemPhysicalAddressRangeBase == PrivateData->StartingAddr) &&
|
||||
(SpaRange->SystemPhysicalAddressRangeLength == PrivateData->Size) &&
|
||||
(CompareGuid (&SpaRange->AddressRangeTypeGUID, &PrivateData->TypeGuid))) {
|
||||
(CompareGuid (&SpaRange->AddressRangeTypeGUID, &PrivateData->TypeGuid)))
|
||||
{
|
||||
//
|
||||
// Skip the SPA Range Structure for the RAM disk to be unpublished
|
||||
// from NFIT.
|
||||
@@ -518,7 +523,7 @@ RamDiskUnpublishNfit (
|
||||
((UINT8 *)NfitStructHeader + NfitStructHeader->Length);
|
||||
}
|
||||
|
||||
Checksum = CalculateCheckSum8((UINT8 *)NewNfit, NewNfitHeader->Length);
|
||||
Checksum = CalculateCheckSum8 ((UINT8 *)NewNfit, NewNfitHeader->Length);
|
||||
NewNfitHeader->Checksum = Checksum;
|
||||
|
||||
Status = mAcpiTableProtocol->UninstallAcpiTable (
|
||||
@@ -553,7 +558,6 @@ RamDiskUnpublishNfit (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Register a RAM disk with specified address, size and type.
|
||||
|
||||
@@ -587,19 +591,19 @@ RamDiskUnpublishNfit (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskRegister (
|
||||
IN UINT64 RamDiskBase,
|
||||
IN UINT64 RamDiskSize,
|
||||
IN EFI_GUID *RamDiskType,
|
||||
IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,
|
||||
OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
|
||||
IN UINT64 RamDiskBase,
|
||||
IN UINT64 RamDiskSize,
|
||||
IN EFI_GUID *RamDiskType,
|
||||
IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,
|
||||
OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
RAM_DISK_PRIVATE_DATA *RegisteredPrivateData;
|
||||
MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;
|
||||
UINTN DevicePathSize;
|
||||
LIST_ENTRY *Entry;
|
||||
EFI_STATUS Status;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
RAM_DISK_PRIVATE_DATA *RegisteredPrivateData;
|
||||
MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;
|
||||
UINTN DevicePathSize;
|
||||
LIST_ENTRY *Entry;
|
||||
|
||||
if ((0 == RamDiskSize) || (NULL == RamDiskType) || (NULL == DevicePath)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -609,7 +613,8 @@ RamDiskRegister (
|
||||
// Add check to prevent data read across the memory boundary
|
||||
//
|
||||
if ((RamDiskSize > MAX_UINTN) ||
|
||||
(RamDiskBase > MAX_UINTN - RamDiskSize + 1)) {
|
||||
(RamDiskBase > MAX_UINTN - RamDiskSize + 1))
|
||||
{
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
@@ -647,7 +652,7 @@ RamDiskRegister (
|
||||
|
||||
*DevicePath = AppendDevicePathNode (
|
||||
ParentDevicePath,
|
||||
(EFI_DEVICE_PATH_PROTOCOL *) RamDiskDevNode
|
||||
(EFI_DEVICE_PATH_PROTOCOL *)RamDiskDevNode
|
||||
);
|
||||
if (NULL == *DevicePath) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
@@ -660,7 +665,7 @@ RamDiskRegister (
|
||||
// Check whether the created device path is already present in the handle
|
||||
// database
|
||||
//
|
||||
if (!IsListEmpty(&RegisteredRamDisks)) {
|
||||
if (!IsListEmpty (&RegisteredRamDisks)) {
|
||||
DevicePathSize = GetDevicePathSize (PrivateData->DevicePath);
|
||||
|
||||
BASE_LIST_FOR_EACH (Entry, &RegisteredRamDisks) {
|
||||
@@ -672,7 +677,9 @@ RamDiskRegister (
|
||||
if ((CompareMem (
|
||||
PrivateData->DevicePath,
|
||||
RegisteredPrivateData->DevicePath,
|
||||
DevicePathSize)) == 0) {
|
||||
DevicePathSize
|
||||
)) == 0)
|
||||
{
|
||||
*DevicePath = NULL;
|
||||
Status = EFI_ALREADY_STARTED;
|
||||
goto ErrorExit;
|
||||
@@ -735,7 +742,6 @@ ErrorExit:
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Unregister a RAM disk specified by DevicePath.
|
||||
|
||||
@@ -754,17 +760,17 @@ ErrorExit:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RamDiskUnregister (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
|
||||
)
|
||||
{
|
||||
LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *NextEntry;
|
||||
BOOLEAN Found;
|
||||
UINT64 StartingAddr;
|
||||
UINT64 EndingAddr;
|
||||
EFI_DEVICE_PATH_PROTOCOL *Header;
|
||||
MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
LIST_ENTRY *Entry;
|
||||
LIST_ENTRY *NextEntry;
|
||||
BOOLEAN Found;
|
||||
UINT64 StartingAddr;
|
||||
UINT64 EndingAddr;
|
||||
EFI_DEVICE_PATH_PROTOCOL *Header;
|
||||
MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;
|
||||
RAM_DISK_PRIVATE_DATA *PrivateData;
|
||||
|
||||
if (NULL == DevicePath) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
@@ -780,8 +786,9 @@ RamDiskUnregister (
|
||||
// Test if the current device node is a RAM disk.
|
||||
//
|
||||
if ((MEDIA_DEVICE_PATH == Header->Type) &&
|
||||
(MEDIA_RAM_DISK_DP == Header->SubType)) {
|
||||
RamDiskDevNode = (MEDIA_RAM_DISK_DEVICE_PATH *) Header;
|
||||
(MEDIA_RAM_DISK_DP == Header->SubType))
|
||||
{
|
||||
RamDiskDevNode = (MEDIA_RAM_DISK_DEVICE_PATH *)Header;
|
||||
|
||||
break;
|
||||
}
|
||||
@@ -793,11 +800,11 @@ RamDiskUnregister (
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
Found = FALSE;
|
||||
StartingAddr = ReadUnaligned64 ((UINT64 *) &(RamDiskDevNode->StartingAddr[0]));
|
||||
EndingAddr = ReadUnaligned64 ((UINT64 *) &(RamDiskDevNode->EndingAddr[0]));
|
||||
Found = FALSE;
|
||||
StartingAddr = ReadUnaligned64 ((UINT64 *)&(RamDiskDevNode->StartingAddr[0]));
|
||||
EndingAddr = ReadUnaligned64 ((UINT64 *)&(RamDiskDevNode->EndingAddr[0]));
|
||||
|
||||
if (!IsListEmpty(&RegisteredRamDisks)) {
|
||||
if (!IsListEmpty (&RegisteredRamDisks)) {
|
||||
BASE_LIST_FOR_EACH_SAFE (Entry, NextEntry, &RegisteredRamDisks) {
|
||||
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);
|
||||
|
||||
@@ -807,7 +814,8 @@ RamDiskUnregister (
|
||||
//
|
||||
if ((StartingAddr == PrivateData->StartingAddr) &&
|
||||
(EndingAddr == PrivateData->StartingAddr + PrivateData->Size - 1) &&
|
||||
(CompareGuid (&RamDiskDevNode->TypeGuid, &PrivateData->TypeGuid))) {
|
||||
(CompareGuid (&RamDiskDevNode->TypeGuid, &PrivateData->TypeGuid)))
|
||||
{
|
||||
//
|
||||
// Remove the content for this RAM disk in NFIT.
|
||||
//
|
||||
@@ -825,7 +833,7 @@ RamDiskUnregister (
|
||||
&gEfiBlockIo2ProtocolGuid,
|
||||
&PrivateData->BlockIo2,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(EFI_DEVICE_PATH_PROTOCOL *) PrivateData->DevicePath,
|
||||
(EFI_DEVICE_PATH_PROTOCOL *)PrivateData->DevicePath,
|
||||
NULL
|
||||
);
|
||||
|
||||
@@ -837,7 +845,7 @@ RamDiskUnregister (
|
||||
// driver is responsible for freeing the allocated memory for the
|
||||
// RAM disk.
|
||||
//
|
||||
FreePool ((VOID *)(UINTN) PrivateData->StartingAddr);
|
||||
FreePool ((VOID *)(UINTN)PrivateData->StartingAddr);
|
||||
}
|
||||
|
||||
FreePool (PrivateData->DevicePath);
|
||||
|
Reference in New Issue
Block a user