\r
#include "RamDiskImpl.h"\r
\r
-RAM_DISK_PRIVATE_DATA mRamDiskPrivateDataTemplate = {\r
+RAM_DISK_PRIVATE_DATA mRamDiskPrivateDataTemplate = {\r
RAM_DISK_PRIVATE_DATA_SIGNATURE,\r
NULL\r
};\r
MEDIA_DEVICE_PATH,\r
MEDIA_RAM_DISK_DP,\r
{\r
- (UINT8) (sizeof (MEDIA_RAM_DISK_DEVICE_PATH)),\r
- (UINT8) ((sizeof (MEDIA_RAM_DISK_DEVICE_PATH)) >> 8)\r
+ (UINT8)(sizeof (MEDIA_RAM_DISK_DEVICE_PATH)),\r
+ (UINT8)((sizeof (MEDIA_RAM_DISK_DEVICE_PATH)) >> 8)\r
}\r
}\r
};\r
BOOLEAN mRamDiskSsdtTableKeyValid = FALSE;\r
UINTN mRamDiskSsdtTableKey;\r
\r
-\r
/**\r
Initialize the RAM disk device node.\r
\r
**/\r
VOID\r
RamDiskInitDeviceNode (\r
- IN RAM_DISK_PRIVATE_DATA *PrivateData,\r
- IN OUT MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode\r
+ IN RAM_DISK_PRIVATE_DATA *PrivateData,\r
+ IN OUT MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode\r
)\r
{\r
WriteUnaligned64 (\r
- (UINT64 *) &(RamDiskDevNode->StartingAddr[0]),\r
- (UINT64) PrivateData->StartingAddr\r
+ (UINT64 *)&(RamDiskDevNode->StartingAddr[0]),\r
+ (UINT64)PrivateData->StartingAddr\r
);\r
WriteUnaligned64 (\r
- (UINT64 *) &(RamDiskDevNode->EndingAddr[0]),\r
- (UINT64) PrivateData->StartingAddr + PrivateData->Size - 1\r
+ (UINT64 *)&(RamDiskDevNode->EndingAddr[0]),\r
+ (UINT64)PrivateData->StartingAddr + PrivateData->Size - 1\r
);\r
CopyGuid (&RamDiskDevNode->TypeGuid, &PrivateData->TypeGuid);\r
RamDiskDevNode->Instance = PrivateData->InstanceNumber;\r
}\r
\r
-\r
/**\r
Initialize and publish NVDIMM root device SSDT in ACPI table.\r
\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_ACPI_DESCRIPTION_HEADER *Table;\r
- UINTN SectionInstance;\r
- UINTN TableSize;\r
+ EFI_STATUS Status;\r
+ EFI_ACPI_DESCRIPTION_HEADER *Table;\r
+ UINTN SectionInstance;\r
+ UINTN TableSize;\r
\r
Status = EFI_SUCCESS;\r
SectionInstance = 0;\r
&gEfiCallerIdGuid,\r
EFI_SECTION_RAW,\r
SectionInstance,\r
- (VOID **) &Table,\r
+ (VOID **)&Table,\r
&TableSize\r
);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
-\r
/**\r
Publish the RAM disk NVDIMM Firmware Interface Table (NFIT) to the ACPI\r
table.\r
**/\r
EFI_STATUS\r
RamDiskPublishNfit (\r
- IN RAM_DISK_PRIVATE_DATA *PrivateData\r
+ IN RAM_DISK_PRIVATE_DATA *PrivateData\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_MEMORY_DESCRIPTOR *MemoryMap;\r
- EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;\r
- EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;\r
- UINTN TableIndex;\r
- VOID *TableHeader;\r
- EFI_ACPI_TABLE_VERSION TableVersion;\r
- UINTN TableKey;\r
- EFI_ACPI_DESCRIPTION_HEADER *NfitHeader;\r
+ EFI_STATUS Status;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMap;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMapEntry;\r
+ EFI_MEMORY_DESCRIPTOR *MemoryMapEnd;\r
+ UINTN TableIndex;\r
+ VOID *TableHeader;\r
+ EFI_ACPI_TABLE_VERSION TableVersion;\r
+ UINTN TableKey;\r
+ EFI_ACPI_DESCRIPTION_HEADER *NfitHeader;\r
EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE\r
- *SpaRange;\r
- VOID *Nfit;\r
- UINT32 NfitLen;\r
- UINTN MemoryMapSize;\r
- UINTN MapKey;\r
- UINTN DescriptorSize;\r
- UINT32 DescriptorVersion;\r
- UINT64 CurrentData;\r
- UINT8 Checksum;\r
- BOOLEAN MemoryFound;\r
+ *SpaRange;\r
+ VOID *Nfit;\r
+ UINT32 NfitLen;\r
+ UINTN MemoryMapSize;\r
+ UINTN MapKey;\r
+ UINTN DescriptorSize;\r
+ UINT32 DescriptorVersion;\r
+ UINT64 CurrentData;\r
+ UINT8 Checksum;\r
+ BOOLEAN MemoryFound;\r
\r
//\r
// Get the EFI memory map.\r
);\r
ASSERT (Status == EFI_BUFFER_TOO_SMALL);\r
do {\r
- MemoryMap = (EFI_MEMORY_DESCRIPTOR *) AllocatePool (MemoryMapSize);\r
+ MemoryMap = (EFI_MEMORY_DESCRIPTOR *)AllocatePool (MemoryMapSize);\r
ASSERT (MemoryMap != NULL);\r
Status = gBS->GetMemoryMap (\r
&MemoryMapSize,\r
FreePool (MemoryMap);\r
}\r
} while (Status == EFI_BUFFER_TOO_SMALL);\r
+\r
ASSERT_EFI_ERROR (Status);\r
\r
MemoryMapEntry = MemoryMap;\r
- MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *) ((UINT8 *) MemoryMap + MemoryMapSize);\r
- while ((UINTN) MemoryMapEntry < (UINTN) MemoryMapEnd) {\r
+ MemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *)((UINT8 *)MemoryMap + MemoryMapSize);\r
+ while ((UINTN)MemoryMapEntry < (UINTN)MemoryMapEnd) {\r
if ((MemoryMapEntry->Type == EfiReservedMemoryType) &&\r
(MemoryMapEntry->PhysicalStart <= PrivateData->StartingAddr) &&\r
(MemoryMapEntry->PhysicalStart +\r
MultU64x32 (MemoryMapEntry->NumberOfPages, EFI_PAGE_SIZE)\r
- >= PrivateData->StartingAddr + PrivateData->Size)) {\r
+ >= PrivateData->StartingAddr + PrivateData->Size))\r
+ {\r
MemoryFound = TRUE;\r
DEBUG ((\r
DEBUG_INFO,\r
));\r
break;\r
}\r
+\r
MemoryMapEntry = NEXT_MEMORY_DESCRIPTOR (MemoryMapEntry, DescriptorSize);\r
}\r
+\r
FreePool (MemoryMap);\r
\r
if (!MemoryFound) {\r
TableIndex++;\r
\r
if (((EFI_ACPI_SDT_HEADER *)TableHeader)->Signature ==\r
- EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE) {\r
+ EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE)\r
+ {\r
break;\r
}\r
}\r
if (Nfit == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
CopyMem (Nfit, TableHeader, NfitHeader->Length);\r
\r
//\r
// Append the System Physical Address (SPA) Range Structure at the end\r
// of the origin NFIT.\r
//\r
- SpaRange = (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE *)\r
- ((UINT8 *)Nfit + NfitHeader->Length);\r
+ SpaRange = (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE *)\r
+ ((UINT8 *)Nfit + NfitHeader->Length);\r
\r
//\r
// Update the length field of the NFIT\r
//\r
- NfitHeader->Length = NfitLen;\r
+ NfitHeader->Length = NfitLen;\r
\r
//\r
// The checksum will be updated after the new contents are appended.\r
\r
NfitLen = sizeof (EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE) +\r
sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);\r
- Nfit = AllocateZeroPool (NfitLen);\r
+ Nfit = AllocateZeroPool (NfitLen);\r
if (Nfit == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
//\r
// Fill in the content of the SPA Range Structure.\r
//\r
- SpaRange->Type = EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE;\r
- SpaRange->Length = sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);\r
+ SpaRange->Type = EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE;\r
+ SpaRange->Length = sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);\r
SpaRange->SystemPhysicalAddressRangeBase = PrivateData->StartingAddr;\r
SpaRange->SystemPhysicalAddressRangeLength = PrivateData->Size;\r
CopyGuid (&SpaRange->AddressRangeTypeGUID, &PrivateData->TypeGuid);\r
\r
- Checksum = CalculateCheckSum8((UINT8 *)Nfit, NfitHeader->Length);\r
+ Checksum = CalculateCheckSum8 ((UINT8 *)Nfit, NfitHeader->Length);\r
NfitHeader->Checksum = Checksum;\r
\r
//\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Unpublish the RAM disk NVDIMM Firmware Interface Table (NFIT) from the\r
ACPI table.\r
**/\r
EFI_STATUS\r
RamDiskUnpublishNfit (\r
- IN RAM_DISK_PRIVATE_DATA *PrivateData\r
+ IN RAM_DISK_PRIVATE_DATA *PrivateData\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN TableIndex;\r
- VOID *TableHeader;\r
- EFI_ACPI_TABLE_VERSION TableVersion;\r
- UINTN TableKey;\r
- EFI_ACPI_DESCRIPTION_HEADER *NewNfitHeader;\r
+ EFI_STATUS Status;\r
+ UINTN TableIndex;\r
+ VOID *TableHeader;\r
+ EFI_ACPI_TABLE_VERSION TableVersion;\r
+ UINTN TableKey;\r
+ EFI_ACPI_DESCRIPTION_HEADER *NewNfitHeader;\r
EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE\r
- *SpaRange;\r
- VOID *NewNfit;\r
- VOID *NewNfitPtr;\r
- EFI_ACPI_6_1_NFIT_STRUCTURE_HEADER *NfitStructHeader;\r
- UINT32 NewNfitLen;\r
- UINT32 RemainLen;\r
- UINT8 Checksum;\r
+ *SpaRange;\r
+ VOID *NewNfit;\r
+ VOID *NewNfitPtr;\r
+ EFI_ACPI_6_1_NFIT_STRUCTURE_HEADER *NfitStructHeader;\r
+ UINT32 NewNfitLen;\r
+ UINT32 RemainLen;\r
+ UINT8 Checksum;\r
\r
//\r
// Find the NFIT in the ACPI table.\r
TableIndex++;\r
\r
if (((EFI_ACPI_SDT_HEADER *)TableHeader)->Signature ==\r
- EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE) {\r
+ EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE_STRUCTURE_SIGNATURE)\r
+ {\r
break;\r
}\r
}\r
return EFI_NOT_FOUND;\r
}\r
\r
- NewNfitLen = ((EFI_ACPI_DESCRIPTION_HEADER *)TableHeader)->Length -\r
- sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);\r
+ NewNfitLen = ((EFI_ACPI_DESCRIPTION_HEADER *)TableHeader)->Length -\r
+ sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE);\r
\r
//\r
// After removing this RAM disk from the NFIT, if no other structure is in\r
((UINT8 *)TableHeader + sizeof (EFI_ACPI_6_1_NVDIMM_FIRMWARE_INTERFACE_TABLE));\r
while (RemainLen > 0) {\r
if ((NfitStructHeader->Type == EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE_TYPE) &&\r
- (NfitStructHeader->Length == sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE))) {\r
+ (NfitStructHeader->Length == sizeof (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE)))\r
+ {\r
SpaRange = (EFI_ACPI_6_1_NFIT_SYSTEM_PHYSICAL_ADDRESS_RANGE_STRUCTURE *)NfitStructHeader;\r
\r
if ((SpaRange->SystemPhysicalAddressRangeBase == PrivateData->StartingAddr) &&\r
(SpaRange->SystemPhysicalAddressRangeLength == PrivateData->Size) &&\r
- (CompareGuid (&SpaRange->AddressRangeTypeGUID, &PrivateData->TypeGuid))) {\r
+ (CompareGuid (&SpaRange->AddressRangeTypeGUID, &PrivateData->TypeGuid)))\r
+ {\r
//\r
// Skip the SPA Range Structure for the RAM disk to be unpublished\r
// from NFIT.\r
((UINT8 *)NfitStructHeader + NfitStructHeader->Length);\r
}\r
\r
- Checksum = CalculateCheckSum8((UINT8 *)NewNfit, NewNfitHeader->Length);\r
+ Checksum = CalculateCheckSum8 ((UINT8 *)NewNfit, NewNfitHeader->Length);\r
NewNfitHeader->Checksum = Checksum;\r
\r
Status = mAcpiTableProtocol->UninstallAcpiTable (\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Register a RAM disk with specified address, size and type.\r
\r
EFI_STATUS\r
EFIAPI\r
RamDiskRegister (\r
- IN UINT64 RamDiskBase,\r
- IN UINT64 RamDiskSize,\r
- IN EFI_GUID *RamDiskType,\r
- IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,\r
- OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath\r
+ IN UINT64 RamDiskBase,\r
+ IN UINT64 RamDiskSize,\r
+ IN EFI_GUID *RamDiskType,\r
+ IN EFI_DEVICE_PATH *ParentDevicePath OPTIONAL,\r
+ OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath\r
)\r
{\r
- EFI_STATUS Status;\r
- RAM_DISK_PRIVATE_DATA *PrivateData;\r
- RAM_DISK_PRIVATE_DATA *RegisteredPrivateData;\r
- MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;\r
- UINTN DevicePathSize;\r
- LIST_ENTRY *Entry;\r
+ EFI_STATUS Status;\r
+ RAM_DISK_PRIVATE_DATA *PrivateData;\r
+ RAM_DISK_PRIVATE_DATA *RegisteredPrivateData;\r
+ MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;\r
+ UINTN DevicePathSize;\r
+ LIST_ENTRY *Entry;\r
\r
if ((0 == RamDiskSize) || (NULL == RamDiskType) || (NULL == DevicePath)) {\r
return EFI_INVALID_PARAMETER;\r
// Add check to prevent data read across the memory boundary\r
//\r
if ((RamDiskSize > MAX_UINTN) ||\r
- (RamDiskBase > MAX_UINTN - RamDiskSize + 1)) {\r
+ (RamDiskBase > MAX_UINTN - RamDiskSize + 1))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
\r
*DevicePath = AppendDevicePathNode (\r
ParentDevicePath,\r
- (EFI_DEVICE_PATH_PROTOCOL *) RamDiskDevNode\r
+ (EFI_DEVICE_PATH_PROTOCOL *)RamDiskDevNode\r
);\r
if (NULL == *DevicePath) {\r
Status = EFI_OUT_OF_RESOURCES;\r
// Check whether the created device path is already present in the handle\r
// database\r
//\r
- if (!IsListEmpty(&RegisteredRamDisks)) {\r
+ if (!IsListEmpty (&RegisteredRamDisks)) {\r
DevicePathSize = GetDevicePathSize (PrivateData->DevicePath);\r
\r
BASE_LIST_FOR_EACH (Entry, &RegisteredRamDisks) {\r
if ((CompareMem (\r
PrivateData->DevicePath,\r
RegisteredPrivateData->DevicePath,\r
- DevicePathSize)) == 0) {\r
+ DevicePathSize\r
+ )) == 0)\r
+ {\r
*DevicePath = NULL;\r
Status = EFI_ALREADY_STARTED;\r
goto ErrorExit;\r
return Status;\r
}\r
\r
-\r
/**\r
Unregister a RAM disk specified by DevicePath.\r
\r
EFI_STATUS\r
EFIAPI\r
RamDiskUnregister (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
+ IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
)\r
{\r
- LIST_ENTRY *Entry;\r
- LIST_ENTRY *NextEntry;\r
- BOOLEAN Found;\r
- UINT64 StartingAddr;\r
- UINT64 EndingAddr;\r
- EFI_DEVICE_PATH_PROTOCOL *Header;\r
- MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;\r
- RAM_DISK_PRIVATE_DATA *PrivateData;\r
+ LIST_ENTRY *Entry;\r
+ LIST_ENTRY *NextEntry;\r
+ BOOLEAN Found;\r
+ UINT64 StartingAddr;\r
+ UINT64 EndingAddr;\r
+ EFI_DEVICE_PATH_PROTOCOL *Header;\r
+ MEDIA_RAM_DISK_DEVICE_PATH *RamDiskDevNode;\r
+ RAM_DISK_PRIVATE_DATA *PrivateData;\r
\r
if (NULL == DevicePath) {\r
return EFI_INVALID_PARAMETER;\r
// Test if the current device node is a RAM disk.\r
//\r
if ((MEDIA_DEVICE_PATH == Header->Type) &&\r
- (MEDIA_RAM_DISK_DP == Header->SubType)) {\r
- RamDiskDevNode = (MEDIA_RAM_DISK_DEVICE_PATH *) Header;\r
+ (MEDIA_RAM_DISK_DP == Header->SubType))\r
+ {\r
+ RamDiskDevNode = (MEDIA_RAM_DISK_DEVICE_PATH *)Header;\r
\r
break;\r
}\r
return EFI_UNSUPPORTED;\r
}\r
\r
- Found = FALSE;\r
- StartingAddr = ReadUnaligned64 ((UINT64 *) &(RamDiskDevNode->StartingAddr[0]));\r
- EndingAddr = ReadUnaligned64 ((UINT64 *) &(RamDiskDevNode->EndingAddr[0]));\r
+ Found = FALSE;\r
+ StartingAddr = ReadUnaligned64 ((UINT64 *)&(RamDiskDevNode->StartingAddr[0]));\r
+ EndingAddr = ReadUnaligned64 ((UINT64 *)&(RamDiskDevNode->EndingAddr[0]));\r
\r
- if (!IsListEmpty(&RegisteredRamDisks)) {\r
+ if (!IsListEmpty (&RegisteredRamDisks)) {\r
BASE_LIST_FOR_EACH_SAFE (Entry, NextEntry, &RegisteredRamDisks) {\r
PrivateData = RAM_DISK_PRIVATE_FROM_THIS (Entry);\r
\r
//\r
if ((StartingAddr == PrivateData->StartingAddr) &&\r
(EndingAddr == PrivateData->StartingAddr + PrivateData->Size - 1) &&\r
- (CompareGuid (&RamDiskDevNode->TypeGuid, &PrivateData->TypeGuid))) {\r
+ (CompareGuid (&RamDiskDevNode->TypeGuid, &PrivateData->TypeGuid)))\r
+ {\r
//\r
// Remove the content for this RAM disk in NFIT.\r
//\r
&gEfiBlockIo2ProtocolGuid,\r
&PrivateData->BlockIo2,\r
&gEfiDevicePathProtocolGuid,\r
- (EFI_DEVICE_PATH_PROTOCOL *) PrivateData->DevicePath,\r
+ (EFI_DEVICE_PATH_PROTOCOL *)PrivateData->DevicePath,\r
NULL\r
);\r
\r
// driver is responsible for freeing the allocated memory for the\r
// RAM disk.\r
//\r
- FreePool ((VOID *)(UINTN) PrivateData->StartingAddr);\r
+ FreePool ((VOID *)(UINTN)PrivateData->StartingAddr);\r
}\r
\r
FreePool (PrivateData->DevicePath);\r