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:
Michael Kubacki
2021-12-05 14:54:02 -08:00
committed by mergify[bot]
parent 7c7184e201
commit 1436aea4d5
994 changed files with 107608 additions and 101311 deletions

View File

@@ -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);

View File

@@ -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;

View File

@@ -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,

View File

@@ -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;
}
}

View File

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

View File

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

View File

@@ -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);