\r
**/\r
\r
+STATIC\r
VOID\r
Print (\r
IN CONST CHAR16 *Format,\r
return;\r
}\r
\r
+EFI_STATUS\r
+EFIAPI\r
+UefiMain (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
+ );\r
+\r
EFI_STATUS\r
EFIAPI\r
UefiMain (\r
{ 0x170, { 0x171 }, 0x172, 0x173, 0x174, 0x175, 0x176, { 0x177 }, { 0x376 }, 0x377, 0 } \r
};\r
\r
-static SCSI_COMMAND_SET gEndTable = { 0xff, 0xff };\r
+static SCSI_COMMAND_SET gEndTable = { 0xff, (DATA_DIRECTION) 0xff };\r
\r
///\r
/// This table contains all the supported ATAPI commands.\r
{ OP_WRITE_10, DataOut },\r
{ OP_WRITE_12, DataOut },\r
{ OP_WRITE_AND_VERIFY, DataOut },\r
- { 0xff, 0xff } \r
+ { 0xff, (DATA_DIRECTION) 0xff } \r
};\r
\r
static CHAR16 *gControllerNameString = (CHAR16 *) L"ATAPI Controller";\r
IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath\r
)\r
{\r
- ATAPI_SCSI_PASS_THRU_DEV *AtapiScsiPrivate;\r
EFI_DEV_PATH *Node;\r
\r
- //\r
- // Retrieve Device Private Data Structure.\r
- //\r
- AtapiScsiPrivate = ATAPI_SCSI_PASS_THRU_DEV_FROM_THIS (This);\r
-\r
//\r
// Validate parameters passed in.\r
//\r
PacketCommand,\r
Packet->DataBuffer,\r
&(Packet->TransferLength),\r
- Packet->DataDirection,\r
+ (DATA_DIRECTION) Packet->DataDirection,\r
TimeoutInMicroSeconds\r
);\r
if (!EFI_ERROR (PacketCommandStatus) || (Packet->SenseData == NULL)) {\r
//\r
// get current data transfer size from Cylinder Registers.\r
//\r
- WordCount =\r
- (\r
- (ReadPortB (AtapiScsiPrivate->PciIo, AtapiScsiPrivate->IoPort->CylinderMsb) << 8) |\r
- ReadPortB (AtapiScsiPrivate->PciIo, AtapiScsiPrivate->IoPort->CylinderLsb)\r
- ) & 0xffff;\r
+ WordCount = ReadPortB (AtapiScsiPrivate->PciIo, AtapiScsiPrivate->IoPort->CylinderMsb) << 8;\r
+ WordCount = WordCount | ReadPortB (AtapiScsiPrivate->PciIo, AtapiScsiPrivate->IoPort->CylinderLsb);\r
+ WordCount = WordCount & 0xffff;\r
WordCount /= 2;\r
\r
//\r
@retval EFI_SUCCESS TODO: Add description for return value\r
\r
**/\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
CirrusLogic5430UgaDrawGetMode (\r
@retval EFI_NOT_FOUND TODO: Add description for return value\r
\r
**/\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
CirrusLogic5430UgaDrawSetMode (\r
@retval EFI_SUCCESS TODO: Add description for return value\r
\r
**/\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
CirrusLogic5430UgaDrawBlt (\r
{\r
EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
EFI_STATUS Status;\r
- CIRRUS_LOGIC_5430_PRIVATE_DATA *Private;\r
EFI_PCI_IO_PROTOCOL *PciIoProtocol;\r
\r
//\r
//\r
// Get the Cirrus Logic 5430's Device structure\r
//\r
- Private = CIRRUS_LOGIC_5430_PRIVATE_DATA_FROM_UGA_DRAW_THIS (UgaDraw);\r
-\r
return LookupUnicodeString (\r
Language,\r
gCirrusLogic5430ComponentName.SupportedLanguages,\r
// Not Low Speed Device Attached\r
//\r
if ((PORTSC_CCS & PortStatusControlReg) && (PORTSC_CSC & PortStatusControlReg)) {\r
- HcDev->DeviceSpeed[PortNumber] = IsHighSpeedDevice (This, PortNumber) ? USB_PORT_STAT_HIGH_SPEED : 0;\r
+ HcDev->DeviceSpeed[PortNumber] = (UINT16) (IsHighSpeedDevice (This, PortNumber) ? USB_PORT_STAT_HIGH_SPEED : 0);\r
}\r
- PortStatus->PortStatus |= HcDev->DeviceSpeed[PortNumber];\r
+ PortStatus->PortStatus = (UINT16) (PortStatus->PortStatus | HcDev->DeviceSpeed[PortNumber]);\r
}\r
//\r
// Fill Port Status Change bits\r
// reset associated bits in bit arry\r
//\r
for (Index = StartBytePos, Index2 = StartBitPos, Count = 0; Count < (RealAllocSize / 32); Count++) {\r
- TempHeaderPtr->BitArrayPtr[Index] ^= (UINT8) (bit (Index2));\r
+ TempHeaderPtr->BitArrayPtr[Index] = (UINT8) (TempHeaderPtr->BitArrayPtr[Index] ^ (bit (Index2)));\r
Index2++;\r
if (Index2 == 8) {\r
Index += 1;\r
//\r
for (TempBytePos = FoundBytePos, Index = FoundBitPos, Count = 0; Count < NumberOfMemoryUnit; Count++) {\r
\r
- MemoryHeader->BitArrayPtr[TempBytePos] |= bit (Index);\r
+ MemoryHeader->BitArrayPtr[TempBytePos] = (UINT8) (MemoryHeader->BitArrayPtr[TempBytePos] | (bit (Index)));\r
Index++;\r
if (Index == 8) {\r
TempBytePos += 1;\r
&PortStatusControlReg\r
);\r
\r
- return ((PortStatusControlReg & PORTSC_PED) ? TRUE : FALSE);\r
+ return ((BOOLEAN) ((PortStatusControlReg & PORTSC_PED) ? TRUE : FALSE));\r
}\r
\r
BOOLEAN\r
//\r
gBS->Stall (EHCI_CLEAR_PORT_RESET_RECOVERY_TIME);\r
\r
- return (IsEhcPortEnabled (HcDev, PortNum) ? TRUE : FALSE);\r
+ return ((BOOLEAN) (IsEhcPortEnabled (HcDev, PortNum) ? TRUE : FALSE));\r
}\r
\r
EFI_STATUS\r
\r
MatchPtr = NULL;\r
QhHwPtr = NULL;\r
- EndPointNum = EndPointAddress & 0x0f;\r
+ EndPointNum = (UINT8) (EndPointAddress & 0x0f);\r
AsyncRequestPtr = HcDev->AsyncRequestList;\r
\r
//\r
EFI_STATUS Status;\r
UINTN ErrQtdPos;\r
UINTN Delay;\r
- UINTN RequireLen;\r
BOOLEAN Finished;\r
\r
Status = EFI_SUCCESS;\r
ErrQtdPos = 0;\r
*TransferResult = EFI_USB_NOERROR;\r
- RequireLen = *ActualLen;\r
*ActualLen = 0;\r
Finished = FALSE;\r
\r
@retval EFI_NOT_FOUND TODO: Add description for return value\r
\r
**/\r
+STATIC\r
EFI_STATUS\r
GetResponse (\r
VOID\r
}\r
\r
if (!EFI_ERROR (Status)) {\r
- NewValue |= (UINT8) (1 << Index);\r
+ NewValue = (UINT8) (NewValue | (1 << Index));\r
}\r
}\r
\r
Lba1 = (UINT8) RShiftU64 (LbaAddress, 8);\r
Lba2 = (UINT8) RShiftU64 (LbaAddress, 16);\r
Lba3 = (UINT8) RShiftU64 (LbaAddress, 24);\r
- Device |= Lba3;\r
+ Device = (UINT8) (Device | Lba3);\r
\r
//\r
// Pass parameter into device register block\r
EFI_STATUS Status;\r
UINT16 *PtrBuffer;\r
\r
- //\r
- // containing status byte read from Status Register.\r
- //\r
- UINT8 StatusRegister;\r
-\r
//\r
// No data transfer is premitted.\r
//\r
//\r
// read Status Register will clear interrupt\r
//\r
- StatusRegister = IDEReadPortB (IdeDev->PciIo, IdeDev->IoPort->Reg.Status);\r
+ IDEReadPortB (IdeDev->PciIo, IdeDev->IoPort->Reg.Status);\r
\r
//\r
// get current data transfer size from Cylinder Registers.\r
//\r
- WordCount =\r
- (\r
- (IDEReadPortB (IdeDev->PciIo, IdeDev->IoPort->CylinderMsb) << 8) |\r
- IDEReadPortB (IdeDev->PciIo, IdeDev->IoPort->CylinderLsb)\r
- ) & 0xffff;\r
+ WordCount = IDEReadPortB (IdeDev->PciIo, IdeDev->IoPort->CylinderMsb) << 8;\r
+ WordCount = WordCount | IDEReadPortB (IdeDev->PciIo, IdeDev->IoPort->CylinderLsb);\r
+ WordCount = WordCount & 0xffff;\r
WordCount /= 2;\r
\r
WordCount = EFI_MIN (WordCount, (RequiredWordCount - ActualWordCount));\r
TODO: add return values\r
\r
**/\r
+STATIC\r
BOOLEAN\r
BadIdeDeviceCheck (\r
IN IDE_BLK_IO_DEV *IdeDev\r
EFI_IDE_CONTROLLER_INIT_PROTOCOL *IdeInit;\r
BOOLEAN EnumAll;\r
BOOLEAN ChannelEnabled;\r
- UINT8 ChannelCount;\r
UINT8 MaxDevices;\r
EFI_IDENTIFY_DATA IdentifyData;\r
EFI_ATA_COLLECTIVE_MODE *SupportedModes;\r
}\r
\r
//\r
- // Save Enumall and ChannelCount. Step7.2\r
+ // Save Enumall. Step7.2\r
//\r
EnumAll = IdeInit->EnumAll;\r
- ChannelCount = IdeInit->ChannelCount;\r
\r
//\r
// Consume PCI I/O protocol. Note that the OpenProtocol with _GET_PROTOCOL\r
ZeroMem (IdeBlkIoDevicePtr, sizeof (IDE_BLK_IO_DEV));\r
\r
IdeBlkIoDevicePtr->Signature = IDE_BLK_IO_DEV_SIGNATURE;\r
- IdeBlkIoDevicePtr->Channel = IdeChannel;\r
- IdeBlkIoDevicePtr->Device = IdeDevice;\r
+ IdeBlkIoDevicePtr->Channel = (EFI_IDE_CHANNEL) IdeChannel;\r
+ IdeBlkIoDevicePtr->Device = (EFI_IDE_DEVICE) IdeDevice;\r
\r
//\r
// initialize Block IO interface's Media pointer\r
//\r
// Record PIO mode used in private data\r
//\r
- IdeBlkIoDevicePtr->PioMode = SupportedModes->PioMode.Mode;\r
+ IdeBlkIoDevicePtr->PioMode = (ATA_PIO_MODE) SupportedModes->PioMode.Mode;\r
\r
//\r
// Set IDE controller Timing Blocks in the PCI Configuration Space\r
}\r
\r
if (Operation == EFI_ENABLE_REGISTER) {\r
- OldCommand |= Command;\r
+ OldCommand = (UINT16) (OldCommand | Command);\r
} else if (Operation == EFI_DISABLE_REGISTER) {\r
- OldCommand &= ~(Command);\r
+ OldCommand = (UINT16) (OldCommand & ~(Command));\r
} else {\r
OldCommand = Command;\r
}\r
\r
}\r
\r
+STATIC\r
EFI_STATUS\r
ProcessOptionRomLight (\r
IN PCI_IO_DEVICE *PciIoDevice\r
// TODO: BarIndex - add argument and description to function comment\r
{\r
UINT32 Value;\r
- UINT64 BarValue64;\r
UINT32 OriginalValue;\r
UINT32 Mask;\r
UINT32 Data;\r
\r
OriginalValue = 0;\r
Value = 0;\r
- BarValue64 = 0;\r
\r
Status = BarExisted (\r
PciIoDevice,\r
// Need to treat it as no-bar\r
//\r
if (PciIoDevice->PciBar[BarIndex].Length == 0) {\r
- PciIoDevice->PciBar[BarIndex].BarType = 0;\r
+ PciIoDevice->PciBar[BarIndex].BarType = (PCI_BAR_TYPE) 0;\r
}\r
\r
PciIoDevice->PciBar[BarIndex].Prefetchable = FALSE;\r
Count = 1;\r
}\r
\r
- Width &= 0x03;\r
+ Width = (EFI_PCI_IO_PROTOCOL_WIDTH) (Width & 0x03);\r
\r
if ((*Offset + Count * (UINTN)(1 << Width)) - 1 >= PciIoDevice->PciBar[BarIndex].Length) {\r
return EFI_INVALID_PARAMETER;\r
//\r
// If Width is EfiPciIoWidthFillUintX then convert to EfiPciIoWidthUintX\r
//\r
- Width &= 0x03;\r
+ Width = (EFI_PCI_IO_PROTOCOL_WIDTH) (Width & 0x03);\r
\r
if (PciIoDevice->IsPciExp) {\r
if ((*Offset + Count * (UINTN)(1 << Width)) - 1 >= PCI_EXP_MAX_CONFIG_OFFSET) {\r
}\r
\r
if (PciIoDevice->Attributes & EFI_PCI_IO_ATTRIBUTE_DUAL_ADDRESS_CYCLE) {\r
- Operation = Operation + EfiPciOperationBusMasterRead64;\r
+ Operation = (EFI_PCI_IO_PROTOCOL_OPERATION) (Operation + EfiPciOperationBusMasterRead64);\r
}\r
\r
Status = PciIoDevice->PciRootBridgeIo->Map (\r
// TODO: PciDevice1 - add argument and description to function comment\r
// TODO: PciDevice2 - add argument and description to function comment\r
{\r
+ BOOLEAN Existed1;\r
+ BOOLEAN Existed2;\r
\r
if (PciDevice1->Parent == PciDevice2->Parent) {\r
return TRUE;\r
}\r
\r
- return (PciDeviceExisted (PciDevice1->Parent, PciDevice2)|| PciDeviceExisted (PciDevice2->Parent, PciDevice1));\r
+ Existed1 = PciDeviceExisted (PciDevice1->Parent, PciDevice2);\r
+ Existed2 = PciDeviceExisted (PciDevice2->Parent, PciDevice1);\r
+\r
+ return (BOOLEAN) (Existed1 || Existed2);\r
}\r
EFI_NATIVE_INTERFACE,\r
NULL\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
}\r
}\r
\r
SecondBus = 0;\r
Register = 0;\r
State = 0;\r
- Attributes = 0;\r
+ Attributes = (EFI_HPC_PADDING_ATTRIBUTES) 0;\r
BusRange = 0;\r
\r
ResetAllPpbBusReg (Bridge, StartBusNumber);\r
UINT16 OffsetPcir;\r
UINT32 RomBarOffset;\r
UINT32 RomBar;\r
- UINT64 Temp;\r
EFI_STATUS retStatus;\r
BOOLEAN FirstCheck;\r
UINT8 *Image;\r
Indicator = 0;\r
RomImageSize = 0;\r
RomInMemory = NULL;\r
- Temp = 0;\r
CodeType = 0xFF;\r
\r
//\r
// TODO: ResType - add argument and description to function comment\r
// TODO: ResUsage - add argument and description to function comment\r
{\r
- EFI_STATUS Status;\r
PCI_RESOURCE_NODE *Node;\r
\r
- Status = 0;\r
Node = NULL;\r
\r
Node = AllocatePool (sizeof (PCI_RESOURCE_NODE));\r
// TODO: EFI_SUCCESS - add return value to function comment\r
{\r
PCI_IO_DEVICE *Temp;\r
- EFI_STATUS Status;\r
PCI_RESOURCE_NODE *IoBridge;\r
PCI_RESOURCE_NODE *Mem32Bridge;\r
PCI_RESOURCE_NODE *PMem32Bridge;\r
//\r
// Recursively create resouce map on this bridge\r
//\r
- Status = CreateResourceMap (\r
- Temp,\r
- IoBridge,\r
- Mem32Bridge,\r
- PMem32Bridge,\r
- Mem64Bridge,\r
- PMem64Bridge\r
- );\r
+ CreateResourceMap (\r
+ Temp,\r
+ IoBridge,\r
+ Mem32Bridge,\r
+ PMem32Bridge,\r
+ Mem64Bridge,\r
+ PMem64Bridge\r
+ );\r
\r
if (ResourceRequestExisted (IoBridge)) {\r
InsertResourceNode (\r
//\r
// To do some platform specific resource padding ...\r
//\r
- Status = ResourcePaddingPolicy (\r
- Bridge,\r
- IoNode,\r
- Mem32Node,\r
- PMem32Node,\r
- Mem64Node,\r
- PMem64Node\r
- );\r
+ ResourcePaddingPolicy (\r
+ Bridge,\r
+ IoNode,\r
+ Mem32Node,\r
+ PMem32Node,\r
+ Mem64Node,\r
+ PMem64Node\r
+ );\r
\r
//\r
// Degrade resource if necessary\r
mNumberOfPciRomImages++;\r
}\r
\r
+STATIC\r
VOID\r
HexToString (\r
CHAR16 *String,\r
}\r
}\r
}\r
+\r
+STATIC\r
EFI_STATUS\r
PciRomLoadEfiDriversFromRomImage (\r
IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
return retStatus;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
PciRomLoadEfiDriversFromOptionRomTable (\r
IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
\r
#include "uhci.h"\r
\r
+STATIC\r
EFI_STATUS\r
USBReadPortW (\r
IN EFI_PCI_IO_PROTOCOL *PciIo,\r
);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
USBReadPortDW (\r
IN EFI_PCI_IO_PROTOCOL *PciIo,\r
);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
USBWritePortW (\r
IN EFI_PCI_IO_PROTOCOL *PciIo,\r
);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
USBWritePortDW (\r
IN EFI_PCI_IO_PROTOCOL *PciIo,\r
--*/\r
{\r
UINT16 CommandContent;\r
- EFI_STATUS Status;\r
\r
- Status = ReadUHCCommandReg (\r
- HcDev->PciIo,\r
- (UINT32) (USBCMD),\r
- &CommandContent\r
- );\r
+ ReadUHCCommandReg (\r
+ HcDev->PciIo,\r
+ (UINT32) (USBCMD),\r
+ &CommandContent\r
+ );\r
\r
if ((CommandContent & USBCMD_MAXP) != USBCMD_MAXP) {\r
CommandContent |= USBCMD_MAXP;\r
//\r
// functions for QH\r
//\r
+STATIC\r
EFI_STATUS\r
AllocateQHStruct (\r
IN USB_HC_DEV *HcDev,\r
return (BOOLEAN) (!(PtrQH->QH.QHVerticalTerminate));\r
}\r
\r
+STATIC\r
BOOLEAN\r
GetQHHorizontalValidorInvalid (\r
IN QH_STRUCT *PtrQH\r
return (VOID *) ((UINTN) (ptrTDStruct->TDData.TDLinkPtr << 4));\r
}\r
\r
+STATIC\r
BOOLEAN\r
IsTDLinkPtrQHOrTD (\r
IN TD_STRUCT *ptrTDStruct\r
pCurEntry->FrameListPtrQSelect = (IsQH ? 1 : 0);\r
}\r
\r
+STATIC\r
BOOLEAN\r
IsCurFrameListQHorTD (\r
IN FRAMELIST_ENTRY *pCurEntry\r
//\r
for (Index = StartBytePos, Index2 = StartBitPos, Count = 0; Count < (RealAllocSize / 32); Count++) {\r
\r
- TempHeaderPtr->BitArrayPtr[Index] ^= (UINT8) (bit (Index2));\r
+ TempHeaderPtr->BitArrayPtr[Index] = (UINT8) (TempHeaderPtr->BitArrayPtr[Index] ^ bit (Index2));\r
Index2++;\r
if (Index2 == 8) {\r
Index += 1;\r
for (TempBytePos = FoundBytePos, Index = FoundBitPos,Count = 0;\r
Count < NumberOfMemoryUnit; Count ++) {\r
\r
- MemoryHeader->BitArrayPtr[TempBytePos] |= bit (Index);\r
+ MemoryHeader->BitArrayPtr[TempBytePos] = (UINT8) (MemoryHeader->BitArrayPtr[TempBytePos] | bit (Index));\r
Index++;\r
if (Index == 8) {\r
TempBytePos += 1;\r
return EFI_SUCCESS;\r
}\r
\r
-\r
+STATIC\r
EFI_STATUS\r
UnInstallUHCInterface (\r
IN EFI_HANDLE Controller,\r
--*/\r
{\r
USB_HC_DEV *HcDev;\r
- BOOLEAN IsSlowDevice = (EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE;\r
+ BOOLEAN IsSlowDevice = (BOOLEAN) ((EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE);\r
\r
HcDev = USB2_HC_DEV_FROM_THIS (This);\r
\r
--*/ \r
{\r
USB_HC_DEV *HcDev;\r
- BOOLEAN IsSlowDevice = (EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE;\r
+ BOOLEAN IsSlowDevice = (BOOLEAN) ((EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE);\r
\r
HcDev = USB2_HC_DEV_FROM_THIS (This);\r
return UHCIAsyncInterruptTransfer(\r
if(DeviceSpeed==EFI_USB_SPEED_HIGH)\r
return EFI_INVALID_PARAMETER;\r
\r
- IsSlowDevice = (EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE; \r
+ IsSlowDevice = (BOOLEAN) ((EFI_USB_SPEED_LOW == DeviceSpeed) ? TRUE : FALSE); \r
HcDev = USB2_HC_DEV_FROM_THIS (This);\r
\r
return UHCISyncInterruptTransfer(\r
UINTN DataLen;\r
UINTN ActualLen;\r
UINTN ErrTDPos;\r
- UINT32 StatusAddr;\r
LIST_ENTRY *NextLink;\r
\r
HcDev = (USB_HC_DEV *) Context;\r
- StatusAddr = (UINT32) (USBSTS);\r
\r
//\r
// interrupt transfer list is empty, means that no interrupt transfer\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
ScsiGetDeviceLocation (\r
UINT8 MaxRetry;\r
BOOLEAN NeedRetry;\r
EFI_SCSI_SENSE_DATA *SenseData;\r
- UINT8 SenseDataLength;\r
UINTN NumberOfSenseKeys;\r
\r
SenseData = NULL;\r
- SenseDataLength = 0;\r
NumberOfSenseKeys = 0;\r
\r
Status = EFI_SUCCESS;\r
UINT8 MaxRetry;\r
BOOLEAN NeedRetry;\r
EFI_SCSI_SENSE_DATA *SenseData;\r
- UINT8 SenseDataLength;\r
UINTN NumberOfSenseKeys;\r
\r
SenseData = NULL;\r
- SenseDataLength = 0;\r
NumberOfSenseKeys = 0;\r
\r
Status = EFI_SUCCESS;\r
EFI_STATUS Status;\r
EFI_USB_ATAPI_PROTOCOL *Cbi0AtapiProtocol;\r
USB_CBI_DEVICE *UsbCbiDev;\r
- EFI_USB_IO_PROTOCOL *UsbIo;\r
\r
//\r
// Get our context back.\r
\r
UsbCbiDev = USB_CBI_DEVICE_FROM_THIS (Cbi0AtapiProtocol);\r
\r
- UsbIo = UsbCbiDev->UsbIo;\r
-\r
Cbi0ReportStatusCode (\r
UsbCbiDev->DevicePath,\r
EFI_PROGRESS_CODE,\r
--*/\r
{\r
EFI_STATUS Status;\r
- EFI_USB_IO_PROTOCOL *UsbIo;\r
USB_CBI_DEVICE *UsbCbiDev;\r
\r
UsbCbiDev = USB_CBI_DEVICE_FROM_THIS (This);\r
- UsbIo = UsbCbiDev->UsbIo;\r
\r
if (ExtendedVerification) {\r
//\r
EFI_STATUS Status;\r
EFI_USB_ATAPI_PROTOCOL *CBI1AtapiProtocol;\r
USB_CBI_DEVICE *UsbCbiDev;\r
- EFI_USB_IO_PROTOCOL *UsbIo;\r
\r
//\r
// Get our context back.\r
\r
UsbCbiDev = USB_CBI_DEVICE_FROM_THIS (CBI1AtapiProtocol);\r
\r
- UsbIo = UsbCbiDev->UsbIo;\r
-\r
Cbi1ReportStatusCode (\r
UsbCbiDev->DevicePath,\r
EFI_PROGRESS_CODE,\r
--*/\r
{\r
UINT8 ResetCommand[12];\r
- EFI_STATUS Status;\r
EFI_USB_IO_PROTOCOL *UsbIo;\r
USB_CBI_DEVICE *UsbCbiDev;\r
UINT8 EndpointAddr;\r
ResetCommand[0] = 0x1d;\r
ResetCommand[1] = 0x04;\r
\r
- Status = CBI1CommandPhase (\r
- UsbCbiDev,\r
- ResetCommand,\r
- 12,\r
- &Result\r
- );\r
+ CBI1CommandPhase (\r
+ UsbCbiDev,\r
+ ResetCommand,\r
+ 12,\r
+ &Result\r
+ );\r
\r
//\r
// clear bulk in endpoint stall feature\r
EFI_STATUS Status;\r
EFI_SIMPLE_TEXT_IN_PROTOCOL *SimpleInput;\r
USB_KB_DEV *UsbKeyboardDevice;\r
- EFI_USB_IO_PROTOCOL *UsbIo;\r
\r
Status = gBS->OpenProtocol (\r
Controller,\r
Controller\r
);\r
\r
- UsbIo = UsbKeyboardDevice->UsbIo;\r
//\r
// Uninstall the Asyn Interrupt Transfer from this device\r
// will disable the key data input from this device\r
{\r
EFI_STATUS Status;\r
USB_KB_DEV *UsbKeyboardDevice;\r
- EFI_USB_IO_PROTOCOL *UsbIo;\r
\r
UsbKeyboardDevice = USB_KB_DEV_FROM_THIS (This);\r
\r
- UsbIo = UsbKeyboardDevice->UsbIo;\r
-\r
KbdReportStatusCode (\r
UsbKeyboardDevice->DevicePath,\r
EFI_PROGRESS_CODE,\r
UINT8 Duration;\r
EFI_STATUS Status;\r
UINT32 TransferResult;\r
- EFI_USB_IO_PROTOCOL *UsbIo;\r
-\r
- UsbIo = UsbKeyboardDevice->UsbIo;\r
\r
KbdReportStatusCode (\r
UsbKeyboardDevice->DevicePath,\r
UINT8 Index;\r
UINT8 Index2;\r
BOOLEAN Down;\r
- EFI_STATUS Status;\r
BOOLEAN KeyRelease;\r
BOOLEAN KeyPress;\r
UINT8 SavedTail;\r
USB_KEY UsbKey;\r
UINT8 NewRepeatKey;\r
UINT32 UsbStatus;\r
- UINT8 *DataPtr;\r
\r
ASSERT (Context);\r
\r
NewRepeatKey = 0;\r
- DataPtr = (UINT8 *) Data;\r
UsbKeyboardDevice = (USB_KB_DEV *) Context;\r
UsbIo = UsbKeyboardDevice->UsbIo;\r
\r
// Delete & Submit this interrupt again\r
//\r
\r
- Status = UsbIo->UsbAsyncInterruptTransfer (\r
- UsbIo,\r
- UsbKeyboardDevice->IntEndpointDescriptor.EndpointAddress,\r
- FALSE,\r
- 0,\r
- 0,\r
- NULL,\r
- NULL\r
- );\r
+ UsbIo->UsbAsyncInterruptTransfer (\r
+ UsbIo,\r
+ UsbKeyboardDevice->IntEndpointDescriptor.EndpointAddress,\r
+ FALSE,\r
+ 0,\r
+ 0,\r
+ NULL,\r
+ NULL\r
+ );\r
\r
gBS->SetTimer (\r
UsbKeyboardDevice->DelayedRecoveryEvent,\r
UINTN NumberOfBlocks;\r
BOOLEAN MediaChange;\r
EFI_TPL OldTpl;\r
- UINT32 Retry;\r
\r
OldTpl = gBS->RaiseTPL (EFI_TPL_NOTIFY);\r
Status = EFI_SUCCESS;\r
MediaChange = FALSE;\r
- Retry = 0;\r
\r
UsbFloppyDevice = USB_FLOPPY_DEV_FROM_THIS (This);\r
\r
UINTN NumberOfBlocks;\r
BOOLEAN MediaChange;\r
EFI_TPL OldTpl;\r
- UINT32 Retry;\r
\r
OldTpl = gBS->RaiseTPL (EFI_TPL_NOTIFY);\r
Status = EFI_SUCCESS;\r
MediaChange = FALSE;\r
- Retry = 0;\r
\r
UsbFloppyDevice = USB_FLOPPY_DEV_FROM_THIS (This);\r
\r
--*/\r
{\r
USB_MOUSE_DEV *UsbMouseDevice;\r
- EFI_USB_IO_PROTOCOL *UsbIo;\r
\r
UsbMouseDevice = USB_MOUSE_DEV_FROM_MOUSE_PROTOCOL (This);\r
\r
- UsbIo = UsbMouseDevice->UsbIo;\r
-\r
MouseReportStatusCode (\r
UsbMouseDevice->DevicePath,\r
EFI_PROGRESS_CODE,\r
IN EFI_GUID *DriverName\r
);\r
\r
-\r
+STATIC\r
VOID\r
CoreAcquireDispatcherLock (\r
VOID\r
CoreAcquireLock (&mDispatcherLock);\r
}\r
\r
+STATIC\r
VOID\r
CoreReleaseDispatcherLock (\r
VOID\r
CoreReleaseLock (&mDispatcherLock);\r
}\r
\r
-\r
+STATIC\r
EFI_STATUS\r
CoreGetDepexSectionAndPreProccess (\r
IN EFI_CORE_DRIVER_ENTRY *DriverEntry\r
}\r
}\r
\r
-\r
+STATIC\r
BOOLEAN\r
FvHasBeenProcessed (\r
IN EFI_HANDLE FvHandle\r
return FALSE;\r
}\r
\r
-\r
+STATIC\r
VOID\r
FvIsBeingProcesssed (\r
IN EFI_HANDLE FvHandle\r
break;\r
\r
default: \r
- return FALSE;\r
+ goto Done;\r
}\r
\r
//\r
//\r
Iterator++;\r
}\r
+\r
+Done:\r
return FALSE;\r
}\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
+STATIC\r
VOID\r
EFIAPI\r
GenericArchProtocolNotify (\r
EFI_EVENT_TIMER | EFI_EVENT_NOTIFY_WAIT,\r
};\r
\r
-\r
+STATIC\r
VOID\r
CoreAcquireEventLock (\r
VOID\r
CoreAcquireLock (&gEventQueueLock);\r
}\r
\r
-\r
+STATIC\r
VOID\r
CoreReleaseEventLock (\r
VOID\r
}\r
\r
\r
-VOID\r
STATIC\r
+VOID\r
CoreNotifyEvent (\r
IN IEVENT *Event\r
)\r
}\r
}\r
\r
-\r
+STATIC\r
BOOLEAN\r
VerifyHeaderChecksum (\r
IN EFI_FFS_FILE_HEADER *FfsHeader\r
HeaderChecksum = (UINT8)(HeaderChecksum + ptr[Index]);\r
}\r
\r
- HeaderChecksum = HeaderChecksum - FfsHeader->State - FfsHeader->IntegrityCheck.Checksum.File;\r
+ HeaderChecksum = (UINT8) (HeaderChecksum - FfsHeader->State - FfsHeader->IntegrityCheck.Checksum.File);\r
\r
if (HeaderChecksum == 0) {\r
return TRUE;\r
0,\r
0,\r
EfiGcdMemoryTypeNonExistent,\r
- 0,\r
+ (EFI_GCD_IO_TYPE) 0,\r
NULL,\r
NULL\r
};\r
0,\r
0,\r
0,\r
- 0,\r
+ (EFI_GCD_MEMORY_TYPE) 0,\r
EfiGcdIoTypeNonExistent,\r
NULL,\r
NULL\r
}\r
\r
\r
-\r
+STATIC\r
VOID\r
CoreAcquireGcdIoLock (\r
VOID\r
CoreAcquireLock (&mGcdIoSpaceLock);\r
}\r
\r
-\r
+STATIC\r
VOID\r
CoreReleaseGcdIoLock (\r
VOID\r
//\r
// GCD Initialization Worker Functions\r
//\r
+STATIC\r
UINT64\r
AlignValue (\r
IN UINT64 Value,\r
return Value & (~AlignmentMask);\r
}\r
\r
+STATIC\r
UINT64\r
PageAlignAddress (\r
IN UINT64 Value\r
return AlignValue (Value, EFI_PAGE_SHIFT, TRUE);\r
}\r
\r
+STATIC\r
UINT64\r
PageAlignLength (\r
IN UINT64 Value\r
//\r
// GCD Memory Space Worker Functions\r
//\r
+STATIC\r
EFI_STATUS\r
CoreAllocateGcdMapEntry (\r
IN OUT EFI_GCD_MAP_ENTRY **TopEntry,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
CoreInsertGcdMapEntry (\r
IN LIST_ENTRY *Link,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
CoreMergeGcdMapEntry (\r
IN LIST_ENTRY *Link,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
CoreCleanupGcdMapEntry (\r
IN EFI_GCD_MAP_ENTRY *TopEntry,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
CoreSearchGcdMapEntry (\r
IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
return EFI_NOT_FOUND;\r
}\r
\r
+STATIC\r
UINTN\r
CoreCountGcdMapEntry (\r
IN LIST_ENTRY *Map\r
}\r
\r
\r
-\r
+STATIC\r
UINT64\r
ConverToCpuArchAttributes (\r
UINT64 Attributes\r
\r
}\r
\r
-\r
+STATIC\r
EFI_STATUS\r
CoreConvertSpace (\r
IN UINTN Operation,\r
return Status;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
CoreAllocateSpaceCheckEntry (\r
IN UINTN Operation,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
CoreAllocateSpace (\r
IN UINTN Operation,\r
return Status;\r
}\r
\r
-\r
+STATIC\r
EFI_STATUS\r
CoreInternalAddMemorySpace (\r
IN EFI_GCD_MEMORY_TYPE GcdMemoryType,\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- return CoreConvertSpace (GCD_ADD_MEMORY_OPERATION, GcdMemoryType, 0, BaseAddress, Length, Capabilities, 0);\r
+ return CoreConvertSpace (GCD_ADD_MEMORY_OPERATION, GcdMemoryType, (EFI_GCD_IO_TYPE) 0, BaseAddress, Length, Capabilities, 0);\r
}\r
\r
//\r
GCD_ALLOCATE_MEMORY_OPERATION, \r
GcdAllocateType, \r
GcdMemoryType, \r
- 0, \r
+ (EFI_GCD_IO_TYPE) 0, \r
Alignment, \r
Length, \r
BaseAddress, \r
\r
--*/\r
{\r
- return CoreConvertSpace (GCD_FREE_MEMORY_OPERATION, 0, 0, BaseAddress, Length, 0, 0);\r
+ return CoreConvertSpace (GCD_FREE_MEMORY_OPERATION, (EFI_GCD_MEMORY_TYPE) 0, (EFI_GCD_IO_TYPE) 0, BaseAddress, Length, 0, 0);\r
}\r
\r
EFI_STATUS\r
\r
--*/\r
{\r
- return CoreConvertSpace (GCD_REMOVE_MEMORY_OPERATION, 0, 0, BaseAddress, Length, 0, 0);\r
+ return CoreConvertSpace (GCD_REMOVE_MEMORY_OPERATION, (EFI_GCD_MEMORY_TYPE) 0, (EFI_GCD_IO_TYPE) 0, BaseAddress, Length, 0, 0);\r
}\r
\r
+STATIC\r
VOID\r
BuildMemoryDescriptor (\r
IN OUT EFI_GCD_MEMORY_SPACE_DESCRIPTOR *Descriptor,\r
\r
--*/\r
{\r
- return CoreConvertSpace (GCD_SET_ATTRIBUTES_MEMORY_OPERATION, 0, 0, BaseAddress, Length, 0, Attributes);\r
+ return CoreConvertSpace (GCD_SET_ATTRIBUTES_MEMORY_OPERATION, (EFI_GCD_MEMORY_TYPE) 0, (EFI_GCD_IO_TYPE) 0, BaseAddress, Length, 0, Attributes);\r
}\r
\r
EFI_STATUS\r
if (GcdIoType <= EfiGcdIoTypeNonExistent || GcdIoType >= EfiGcdIoTypeMaximum) {\r
return EFI_INVALID_PARAMETER;\r
}\r
- return CoreConvertSpace (GCD_ADD_IO_OPERATION, 0, GcdIoType, BaseAddress, Length, 0, 0);\r
+ return CoreConvertSpace (GCD_ADD_IO_OPERATION, (EFI_GCD_MEMORY_TYPE) 0, GcdIoType, BaseAddress, Length, 0, 0);\r
}\r
\r
EFI_STATUS\r
return CoreAllocateSpace (\r
GCD_ALLOCATE_IO_OPERATION, \r
GcdAllocateType, \r
- 0, \r
+ (EFI_GCD_MEMORY_TYPE) 0, \r
GcdIoType, \r
Alignment, \r
Length, \r
\r
--*/\r
{\r
- return CoreConvertSpace (GCD_FREE_IO_OPERATION, 0, 0, BaseAddress, Length, 0, 0);\r
+ return CoreConvertSpace (GCD_FREE_IO_OPERATION, (EFI_GCD_MEMORY_TYPE) 0, (EFI_GCD_IO_TYPE) 0, BaseAddress, Length, 0, 0);\r
}\r
\r
EFI_STATUS\r
\r
--*/\r
{\r
- return CoreConvertSpace (GCD_REMOVE_IO_OPERATION, 0, 0, BaseAddress, Length, 0, 0);\r
+ return CoreConvertSpace (GCD_REMOVE_IO_OPERATION, (EFI_GCD_MEMORY_TYPE) 0, (EFI_GCD_IO_TYPE) 0, BaseAddress, Length, 0, 0);\r
}\r
\r
+STATIC\r
VOID\r
BuildIoDescriptor (\r
IN EFI_GCD_IO_SPACE_DESCRIPTOR *Descriptor,\r
return Status;\r
} \r
\r
+STATIC\r
UINT64\r
CoreConvertResourceDescriptorHobAttributesToCapabilities (\r
EFI_GCD_MEMORY_TYPE GcdMemoryType,\r
return ReturnStatus;\r
}\r
\r
+STATIC\r
VOID\r
AddSortedDriverBindingProtocol (\r
IN EFI_HANDLE DriverBindingHandle,\r
EFI_STATUS Status;\r
UINTN Index;\r
EFI_HANDLE DriverImageHandle;\r
- UINTN PlatformDriverOverrideHandleCount;\r
- EFI_HANDLE *PlatformDriverOverrideHandleBuffer;\r
EFI_PLATFORM_DRIVER_OVERRIDE_PROTOCOL *PlatformDriverOverride;\r
EFI_BUS_SPECIFIC_DRIVER_OVERRIDE_PROTOCOL *BusSpecificDriverOverride;\r
UINTN DriverBindingHandleCount;\r
//\r
DriverBindingHandleCount = 0;\r
DriverBindingHandleBuffer = NULL;\r
- PlatformDriverOverrideHandleCount = 0;\r
- PlatformDriverOverrideHandleBuffer = NULL;\r
NumberOfSortedDriverBindingProtocols = 0;\r
SortedDriverBindingProtocols = NULL;\r
\r
return Status;\r
} \r
\r
+STATIC\r
PROTOCOL_INTERFACE *\r
CoreGetProtocolInterface (\r
IN EFI_HANDLE UserHandle,\r
if (Image->ImageContext.ImageAddress >= 0x100000 || Image->ImageContext.RelocationsStripped) {\r
Status = CoreAllocatePages (\r
AllocateAddress,\r
- Image->ImageContext.ImageCodeMemoryType,\r
+ (EFI_MEMORY_TYPE) (Image->ImageContext.ImageCodeMemoryType),\r
Image->NumberOfPages,\r
&Image->ImageContext.ImageAddress\r
);\r
if (EFI_ERROR (Status) && !Image->ImageContext.RelocationsStripped) {\r
Status = CoreAllocatePages (\r
AllocateAnyPages,\r
- Image->ImageContext.ImageCodeMemoryType,\r
+ (EFI_MEMORY_TYPE) (Image->ImageContext.ImageCodeMemoryType),\r
Image->NumberOfPages,\r
&Image->ImageContext.ImageAddress\r
);\r
Image->Type = Image->ImageContext.ImageType;\r
Image->Info.ImageBase = (VOID *)(UINTN)Image->ImageContext.ImageAddress;\r
Image->Info.ImageSize = Image->ImageContext.ImageSize;\r
- Image->Info.ImageCodeType = Image->ImageContext.ImageCodeMemoryType;\r
- Image->Info.ImageDataType = Image->ImageContext.ImageDataMemoryType;\r
+ Image->Info.ImageCodeType = (EFI_MEMORY_TYPE) (Image->ImageContext.ImageCodeMemoryType);\r
+ Image->Info.ImageDataType = (EFI_MEMORY_TYPE) (Image->ImageContext.ImageDataMemoryType);\r
if (Attribute & EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION) {\r
if (Image->ImageContext.ImageType == EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER) {\r
//\r
return Image;\r
}\r
\r
-\r
+STATIC\r
EFI_STATUS\r
CoreLoadImageCommon (\r
IN BOOLEAN BootPolicy,\r
//\r
// Make sure the memory type in the gMemoryTypeInformation[] array is valid\r
//\r
- Type = gMemoryTypeInformation[Index].Type;\r
+ Type = (EFI_MEMORY_TYPE) (gMemoryTypeInformation[Index].Type);\r
if (Type < 0 || Type > EfiMaxMemoryType) {\r
continue;\r
}\r
//\r
// Make sure the memory type in the gMemoryTypeInformation[] array is valid\r
//\r
- Type = gMemoryTypeInformation[FreeIndex].Type;\r
+ Type = (EFI_MEMORY_TYPE) (gMemoryTypeInformation[FreeIndex].Type);\r
if (Type < 0 || Type > EfiMaxMemoryType) {\r
continue;\r
}\r
//\r
// Make sure the memory type in the gMemoryTypeInformation[] array is valid\r
//\r
- Type = gMemoryTypeInformation[Index].Type;\r
+ Type = (EFI_MEMORY_TYPE) (gMemoryTypeInformation[Index].Type);\r
if (Type < 0 || Type > EfiMaxMemoryType) {\r
continue;\r
}\r
// If the number of pages reserved for a memory type is 0, then all allocations for that type\r
// should be in the default range.\r
//\r
- for (Type = 0; Type < EfiMaxMemoryType; Type++) {\r
+ for (Type = (EFI_MEMORY_TYPE) 0; Type < EfiMaxMemoryType; Type++) {\r
for (Index = 0; gMemoryTypeInformation[Index].Type != EfiMaxMemoryType; Index++) {\r
if (Type == (EFI_MEMORY_TYPE)gMemoryTypeInformation[Index].Type) {\r
mMemoryTypeStatistics[Type].InformationIndex = Index;\r
\r
--*/\r
{\r
- EFI_STATUS Status;\r
UINT64 Start;\r
\r
//\r
if (Start == 0) {\r
DEBUG ((EFI_D_ERROR | EFI_D_PAGE, "AllocatePoolPages: failed to allocate %d pages\n", NumberOfPages));\r
} else {\r
- Status = CoreConvertPages (Start, NumberOfPages, PoolType);\r
+ CoreConvertPages (Start, NumberOfPages, PoolType);\r
}\r
\r
return (VOID *)(UINTN)Start;\r
for (Type=0; Type < EfiMaxMemoryType; Type++) {\r
PoolHead[Type].Signature = 0;\r
PoolHead[Type].Used = 0;\r
- PoolHead[Type].MemoryType = Type;\r
+ PoolHead[Type].MemoryType = (EFI_MEMORY_TYPE) Type;\r
for (Index=0; Index < MAX_POOL_LIST; Index++) {\r
InitializeListHead (&PoolHead[Type].FreeList[Index]);\r
}\r
InitializeListHead (&PoolHeadList);\r
}\r
\r
-\r
+STATIC\r
POOL *\r
LookupPoolHead (\r
IN EFI_MEMORY_TYPE MemoryType\r
{\r
EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;\r
EFI_FFS_FILE_HEADER *FfsFileHeader;\r
- VOID *SectionData;\r
EFI_STATUS Status;\r
EFI_PEI_HOB_POINTERS Hob;\r
\r
\r
FwVolHeader = NULL;\r
FfsFileHeader = NULL;\r
- SectionData = NULL;\r
Status = EFI_SUCCESS;\r
\r
//\r
UINTN SectionLength;\r
UINTN OccupiedSectionLength;\r
UINT64 FileSize;\r
- EFI_GUID_DEFINED_SECTION *GuidedSectionHeader;\r
UINT32 AuthenticationStatus;\r
EFI_PEI_SECTION_EXTRACTION_PPI *SectionExtract;\r
UINT32 BufferSize;\r
// Was the DXE Core file encapsulated in a GUID'd section?\r
//\r
if (Section->Type == EFI_SECTION_GUID_DEFINED) {\r
- //\r
- // Locate the GUID'd Section Extractor\r
- //\r
- GuidedSectionHeader = (VOID *) (Section + 1);\r
\r
//\r
// This following code constitutes the addition of the security model\r
\r
\r
return EFI_SUCCESS; \r
-};\r
+}\r
\r
\r
EFI_STATUS\r
\r
\r
return EFI_SUCCESS; \r
-};\r
+}\r
well-formed Grammar.\r
--*/\r
{\r
- EFI_STATUS Status;\r
DEPENDENCY_EXPRESSION_OPERAND *Iterator;\r
EVAL_STACK_ENTRY *StackPtr;\r
EVAL_STACK_ENTRY EvalStack[MAX_GRAMMAR_SIZE];\r
\r
- Status = EFI_SUCCESS;\r
Iterator = DependencyExpression;\r
*Runnable = FALSE;\r
\r
}\r
\r
return;\r
-}
\ No newline at end of file
+}\r
\r
--*/\r
\r
-//\r
-// Decompression algorithm begins here\r
-//\r
-#define BITBUFSIZ 32\r
-#define MAXMATCH 256\r
-#define THRESHOLD 3\r
-#define CODE_BIT 16\r
-#define BAD_TABLE - 1\r
-\r
-//\r
-// C: Char&Len Set; P: Position Set; T: exTra Set\r
-//\r
-#define NC (0xff + MAXMATCH + 2 - THRESHOLD)\r
-#define CBIT 9\r
-#define MAXPBIT 5\r
-#define TBIT 5\r
-#define MAXNP ((1U << MAXPBIT) - 1)\r
-#define NT (CODE_BIT + 3)\r
-#if NT > MAXNP\r
-#define NPT NT\r
-#else\r
-#define NPT MAXNP\r
-#endif\r
-\r
-typedef struct {\r
- UINT8 *mSrcBase; // Starting address of compressed data\r
- UINT8 *mDstBase; // Starting address of decompressed data\r
- UINT32 mOutBuf;\r
- UINT32 mInBuf;\r
-\r
- UINT16 mBitCount;\r
- UINT32 mBitBuf;\r
- UINT32 mSubBitBuf;\r
- UINT16 mBlockSize;\r
- UINT32 mCompSize;\r
- UINT32 mOrigSize;\r
-\r
- UINT16 mBadTableFlag;\r
-\r
- UINT16 mLeft[2 * NC - 1];\r
- UINT16 mRight[2 * NC - 1];\r
- UINT8 mCLen[NC];\r
- UINT8 mPTLen[NPT];\r
- UINT16 mCTable[4096];\r
- UINT16 mPTTable[256];\r
-\r
- //\r
- // The length of the field 'Position Set Code Length Array Size' in Block Header.\r
- // For EFI 1.1 de/compression algorithm, mPBit = 4\r
- // For Tiano de/compression algorithm, mPBit = 5\r
- //\r
- UINT8 mPBit;\r
-} SCRATCH_DATA;\r
+#include "BaseUefiTianoDecompressLibInternals.h"\r
\r
VOID\r
FillBuf (\r
UINT16 Avail;\r
UINT16 NextCode;\r
UINT16 Mask;\r
+ UINT16 WordOfStart;\r
+ UINT16 WordOfCount;\r
\r
for (Index = 1; Index <= 16; Index++) {\r
Count[Index] = 0;\r
Start[1] = 0;\r
\r
for (Index = 1; Index <= 16; Index++) {\r
- Start[Index + 1] = (UINT16) (Start[Index] + (Count[Index] << (16 - Index)));\r
+ WordOfStart = Start[Index];\r
+ WordOfCount = Count[Index];\r
+ Start[Index + 1] = (UINT16) (WordOfStart + (WordOfCount << (16 - Index)));\r
}\r
\r
if (Start[17] != 0) {\r
for (;;) {\r
CharC = DecodeC (Sd);\r
if (Sd->mBadTableFlag != 0) {\r
- return ;\r
+ goto Done ;\r
}\r
\r
if (CharC < 256) {\r
// Process an Original character\r
//\r
if (Sd->mOutBuf >= Sd->mOrigSize) {\r
- return ;\r
+ goto Done ;\r
} else {\r
Sd->mDstBase[Sd->mOutBuf++] = (UINT8) CharC;\r
}\r
while ((INT16) (BytesRemain) >= 0) {\r
Sd->mDstBase[Sd->mOutBuf++] = Sd->mDstBase[DataIdx++];\r
if (Sd->mOutBuf >= Sd->mOrigSize) {\r
- return ;\r
+ goto Done ;\r
}\r
\r
BytesRemain--;\r
}\r
}\r
\r
+Done:\r
return ;\r
}\r
\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>BaseUefiTianoDecompressLib.c</Filename>\r
+ <Filename>BaseUefiTianoDecompressLibInternals.h</Filename>\r
</SourceFiles>\r
<PackageDependencies>\r
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>\r
--- /dev/null
+/** @file\r
+ Internal include file for Base UEFI Decompress Libary.\r
+\r
+ Copyright (c) 2006, Intel Corporation\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ Module Name: BaseUefiDecompressLibInternals.h\r
+\r
+**/\r
+\r
+#ifndef __BASE_UEFI_TIANO_DECOMPRESS_LIB_INTERNALS_H__\r
+#define __BASE_UEFI_TIANO_DECOMPRESS_LIB_INTERNALS_H__\r
+\r
+//\r
+// Decompression algorithm begins here\r
+//\r
+#define BITBUFSIZ 32\r
+#define MAXMATCH 256\r
+#define THRESHOLD 3\r
+#define CODE_BIT 16\r
+#define BAD_TABLE - 1\r
+\r
+//\r
+// C: Char&Len Set; P: Position Set; T: exTra Set\r
+//\r
+#define NC (0xff + MAXMATCH + 2 - THRESHOLD)\r
+#define CBIT 9\r
+#define MAXPBIT 5\r
+#define TBIT 5\r
+#define MAXNP ((1U << MAXPBIT) - 1)\r
+#define NT (CODE_BIT + 3)\r
+#if NT > MAXNP\r
+#define NPT NT\r
+#else\r
+#define NPT MAXNP\r
+#endif\r
+\r
+typedef struct {\r
+ UINT8 *mSrcBase; // Starting address of compressed data\r
+ UINT8 *mDstBase; // Starting address of decompressed data\r
+ UINT32 mOutBuf;\r
+ UINT32 mInBuf;\r
+\r
+ UINT16 mBitCount;\r
+ UINT32 mBitBuf;\r
+ UINT32 mSubBitBuf;\r
+ UINT16 mBlockSize;\r
+ UINT32 mCompSize;\r
+ UINT32 mOrigSize;\r
+\r
+ UINT16 mBadTableFlag;\r
+\r
+ UINT16 mLeft[2 * NC - 1];\r
+ UINT16 mRight[2 * NC - 1];\r
+ UINT8 mCLen[NC];\r
+ UINT8 mPTLen[NPT];\r
+ UINT16 mCTable[4096];\r
+ UINT16 mPTTable[256];\r
+\r
+ //\r
+ // The length of the field 'Position Set Code Length Array Size' in Block Header.\r
+ // For EFI 1.1 de/compression algorithm, mPBit = 4\r
+ // For Tiano de/compression algorithm, mPBit = 5\r
+ //\r
+ UINT8 mPBit;\r
+} SCRATCH_DATA;\r
+\r
+/**\r
+ Read NumOfBit of bits from source into mBitBuf\r
+\r
+ Shift mBitBuf NumOfBits left. Read in NumOfBits of bits from source.\r
+\r
+ @param Sd The global scratch data\r
+ @param NumOfBits The number of bits to shift and read.\r
+\r
+**/\r
+VOID\r
+FillBuf (\r
+ IN SCRATCH_DATA *Sd,\r
+ IN UINT16 NumOfBits\r
+ );\r
+\r
+/**\r
+ Get NumOfBits of bits out from mBitBuf\r
+\r
+ Get NumOfBits of bits out from mBitBuf. Fill mBitBuf with subsequent \r
+ NumOfBits of bits from source. Returns NumOfBits of bits that are \r
+ popped out.\r
+\r
+ @param Sd The global scratch data.\r
+ @param NumOfBits The number of bits to pop and read.\r
+\r
+ @return The bits that are popped out.\r
+\r
+**/\r
+UINT32\r
+GetBits (\r
+ IN SCRATCH_DATA *Sd,\r
+ IN UINT16 NumOfBits\r
+ );\r
+\r
+/**\r
+ Creates Huffman Code mapping table according to code length array.\r
+\r
+ Creates Huffman Code mapping table for Extra Set, Char&Len Set \r
+ and Position Set according to code length array.\r
+\r
+ @param Sd The global scratch data\r
+ @param NumOfChar Number of symbols in the symbol set\r
+ @param BitLen Code length array\r
+ @param TableBits The width of the mapping table\r
+ @param Table The table\r
+\r
+ @retval 0 OK.\r
+ @retval BAD_TABLE The table is corrupted.\r
+\r
+**/\r
+UINT16\r
+MakeTable (\r
+ IN SCRATCH_DATA *Sd,\r
+ IN UINT16 NumOfChar,\r
+ IN UINT8 *BitLen,\r
+ IN UINT16 TableBits,\r
+ OUT UINT16 *Table\r
+ );\r
+\r
+/**\r
+ Decodes a position value.\r
+\r
+ Get a position value according to Position Huffman Table.\r
+ \r
+ @param Sd the global scratch data\r
+\r
+ @return The position value decoded.\r
+\r
+**/\r
+UINT32\r
+DecodeP (\r
+ IN SCRATCH_DATA *Sd\r
+ );\r
+\r
+/**\r
+ Reads code lengths for the Extra Set or the Position Set.\r
+\r
+ Read in the Extra Set or Pointion Set Length Arrary, then\r
+ generate the Huffman code mapping for them.\r
+\r
+ @param Sd The global scratch data.\r
+ @param nn Number of symbols.\r
+ @param nbit Number of bits needed to represent nn.\r
+ @param Special The special symbol that needs to be taken care of.\r
+\r
+ @retval 0 OK.\r
+ @retval BAD_TABLE Table is corrupted.\r
+\r
+**/\r
+UINT16\r
+ReadPTLen (\r
+ IN SCRATCH_DATA *Sd,\r
+ IN UINT16 nn,\r
+ IN UINT16 nbit,\r
+ IN UINT16 Special\r
+ );\r
+\r
+/**\r
+ Reads code lengths for Char&Len Set.\r
+ \r
+ Read in and decode the Char&Len Set Code Length Array, then\r
+ generate the Huffman Code mapping table for the Char&Len Set.\r
+\r
+ @param Sd the global scratch data\r
+\r
+**/\r
+VOID\r
+ReadCLen (\r
+ SCRATCH_DATA *Sd\r
+ );\r
+\r
+/**\r
+ Decode a character/length value.\r
+ \r
+ Read one value from mBitBuf, Get one code from mBitBuf. If it is at block boundary, generates\r
+ Huffman code mapping table for Extra Set, Code&Len Set and\r
+ Position Set.\r
+\r
+ @param Sd The global scratch data.\r
+\r
+ @return The value decoded.\r
+\r
+**/\r
+UINT16\r
+DecodeC (\r
+ SCRATCH_DATA *Sd\r
+ );\r
+\r
+/**\r
+ Decode the source data and put the resulting data into the destination buffer.\r
+\r
+ Decode the source data and put the resulting data into the destination buffer.\r
+ \r
+ @param Sd The global scratch data\r
+\r
+**/\r
+VOID\r
+Decode (\r
+ SCRATCH_DATA *Sd\r
+ );\r
+\r
+RETURN_STATUS\r
+EFIAPI\r
+UefiTianoDecompress (\r
+ IN CONST VOID *Source,\r
+ IN OUT VOID *Destination,\r
+ IN OUT VOID *Scratch,\r
+ IN UINT32 Version\r
+ );\r
+\r
+#endif\r
EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *mEsalBootService = NULL;\r
EFI_PLABEL mPlabel;\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
DxeSalLibInitialize (\r
// virtual). So lets grap the physical PLABEL for the EsalEntryPoint and store it\r
// away. We cache it in a module global, so we can register the vitrual version.\r
//\r
- Status = gBS->LocateProtocol (&gEfiExtendedSalBootServiceProtocolGuid, NULL, &mEsalBootService);\r
+ Status = gBS->LocateProtocol (&gEfiExtendedSalBootServiceProtocolGuid, NULL, (VOID **) &mEsalBootService);\r
if (EFI_ERROR (Status)) {\r
mEsalBootService = NULL;\r
return EFI_SUCCESS;\r
return EFI_NOT_FOUND;\r
}\r
\r
-\r
+STATIC\r
EFI_STATUS\r
ConvertBmpToGopBlt (\r
IN VOID *BmpImage,\r
UINT32 VerticalResolution;\r
UINT32 ColorDepth;\r
UINT32 RefreshRate;\r
+ UINTN BufferGlyphWidth;\r
\r
GlyphStatus = 0;\r
\r
//\r
// Blt a character to the screen\r
//\r
+ BufferGlyphWidth = GLYPH_WIDTH * StrLen (Buffer);\r
if (GraphicsOutput != NULL) {\r
Status = GraphicsOutput->Blt (\r
GraphicsOutput,\r
0,\r
X,\r
Y,\r
- GLYPH_WIDTH * StrLen (Buffer),\r
+ BufferGlyphWidth,\r
GLYPH_HEIGHT,\r
- GLYPH_WIDTH * StrLen (Buffer) * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
+ BufferGlyphWidth * sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
);\r
} else {\r
Status = UgaDraw->Blt (\r
0,\r
X,\r
Y,\r
- GLYPH_WIDTH * StrLen (Buffer),\r
+ BufferGlyphWidth,\r
GLYPH_HEIGHT,\r
- GLYPH_WIDTH * StrLen (Buffer) * sizeof (EFI_UGA_PIXEL)\r
+ BufferGlyphWidth * sizeof (EFI_UGA_PIXEL)\r
);\r
}\r
\r
UINT8 *Destination;\r
UINTN Index;\r
BOOLEAN Finished;\r
+ UINTN SizeofLanguage;\r
+ UINTN SizeofString;\r
\r
StringPack = (EFI_HII_STRING_PACK *) StringBuffer;\r
Finished = FALSE;\r
//\r
// Pointing to a new string pack location\r
//\r
+ SizeofLanguage = StrSize (Language);\r
+ SizeofString = StrSize (String);\r
StringPackBuffer->Header.Length = (UINT32)\r
(\r
sizeof (EFI_HII_STRING_PACK) -\r
sizeof (EFI_STRING) +\r
sizeof (RELOFST) +\r
sizeof (RELOFST) +\r
- StrSize (Language) +\r
- StrSize (String)\r
+ SizeofLanguage +\r
+ SizeofString\r
);\r
StringPackBuffer->Header.Type = EFI_HII_STRING;\r
StringPackBuffer->LanguageNameString = (UINT16) ((UINTN) &PackDestination[3] - (UINTN) StringPackBuffer);\r
return EFI_SUCCESS;\r
}\r
\r
-\r
+STATIC\r
EFI_STATUS\r
GetHiiInterface (\r
OUT EFI_HII_PROTOCOL **Hii\r
{\r
EFI_STATUS Status;\r
CHAR16 *NameSuffixed;\r
+ UINTN NameLength;\r
+ UINTN SuffixLength;\r
\r
//\r
// enough to concatenate both strings.\r
//\r
- NameSuffixed = AllocateZeroPool ((StrLen (Name) + StrLen (Suffix) + 1) * sizeof (CHAR16)); \r
+ NameLength = StrLen (Name);\r
+ SuffixLength = StrLen (Suffix);\r
+ NameSuffixed = AllocateZeroPool ((NameLength + SuffixLength + 1) * sizeof (CHAR16)); \r
\r
StrCpy (NameSuffixed, Name);\r
StrCat (NameSuffixed, Suffix);\r
\r
--*/\r
\r
-\r
+#include "EdkPeCoffLoaderLibInternals.h"\r
\r
EFI_STATUS\r
EFIAPI\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>EdkPeCoffLoader.c</Filename>\r
+ <Filename>EdkPeCoffLoaderLibInternals.h</Filename>\r
</SourceFiles>\r
<PackageDependencies>\r
<Package PackageGuid="5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"/>\r
--- /dev/null
+/** @file\r
+ Declaration of internal functions in PE/COFF Lib.\r
+\r
+ Copyright (c) 2006, Intel Corporation<BR>\r
+ All rights reserved. This program and the accompanying materials\r
+ are licensed and made available under the terms and conditions of the BSD License\r
+ which accompanies this distribution. The full text of the license may be found at\r
+ http://opensource.org/licenses/bsd-license.php\r
+\r
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+ Module Name: BasePeCoffLibInternals.h\r
+\r
+**/\r
+\r
+#ifndef __PECOFF_LOADER_LIB_INTERNALS__\r
+#define __PECOFF_LOADER_LIB_INTERNALS__\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+TianoPeCoffLoaderLibGetImageInfo (\r
+ IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+TianoPeCoffLoaderLibLoadImage (\r
+ IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+TianoPeCoffLoaderLibRelocateImage (\r
+ IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
+ IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+TianoPeCoffLoaderLibUnloadimage (\r
+ IN EFI_PEI_PE_COFF_LOADER_PROTOCOL *This,\r
+ IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext\r
+ );\r
+\r
+#endif\r
}\r
}\r
\r
+STATIC\r
VOID\r
EFIAPI\r
RuntimeLibVirtualNotifyEvent (\r
return Status;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
ConSplitterSupported (\r
IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
ConSplitterStart (\r
return Status;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
ConSplitterStop (\r
return EFI_NOT_FOUND;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
ConSplitterGrowMapTable (\r
IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
ConSplitterAddOutputMode (\r
IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
VOID\r
ConSplitterGetIntersection (\r
IN INT32 *TextOutModeMap,\r
return ;\r
}\r
\r
+STATIC\r
VOID\r
ConSplitterSyncOutputMode (\r
IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
\r
--*/\r
{\r
- INT32 CurrentMode;\r
INT32 CurrentMaxMode;\r
INT32 Mode;\r
INT32 Index;\r
//\r
// Must make sure that current mode won't change even if mode number changes\r
//\r
- CurrentMode = Private->TextOutMode.Mode;\r
CurrentMaxMode = Private->TextOutMode.MaxMode;\r
TextOutModeMap = Private->TextOutModeMap;\r
StepSize = Private->TextOutListCount;\r
return ;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
ConSplitterGetIntersectionBetweenConOutAndStrErr (\r
VOID\r
UINTN Indexj;\r
UINTN Rows;\r
UINTN Columns;\r
- INT32 ConOutCurrentMode;\r
- INT32 StdErrCurrentMode;\r
INT32 ConOutMaxMode;\r
INT32 StdErrMaxMode;\r
INT32 Mode;\r
INT32 *StdErrMapTable;\r
TEXT_OUT_SPLITTER_QUERY_DATA *ConOutQueryData;\r
TEXT_OUT_SPLITTER_QUERY_DATA *StdErrQueryData;\r
- UINTN ConOutStepSize;\r
- UINTN StdErrStepSize;\r
BOOLEAN FoundTheSameTextOut;\r
UINTN ConOutMapTableSize;\r
UINTN StdErrMapTableSize;\r
//\r
// Must make sure that current mode won't change even if mode number changes\r
//\r
- ConOutCurrentMode = mConOut.TextOutMode.Mode;\r
ConOutMaxMode = mConOut.TextOutMode.MaxMode;\r
ConOutModeMap = mConOut.TextOutModeMap;\r
- ConOutStepSize = mConOut.TextOutListCount;\r
ConOutQueryData = mConOut.TextOutQueryData;\r
\r
- StdErrCurrentMode = mStdErr.TextOutMode.Mode;\r
StdErrMaxMode = mStdErr.TextOutMode.MaxMode;\r
StdErrModeMap = mStdErr.TextOutModeMap;\r
- StdErrStepSize = mStdErr.TextOutListCount;\r
StdErrQueryData = mStdErr.TextOutQueryData;\r
\r
//\r
}\r
\r
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
+STATIC\r
EFI_STATUS\r
ConSplitterAddGraphicsOutputMode (\r
IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
return ReturnStatus;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
ConSplitterSimplePointerPrivateGetState (\r
)\r
;\r
\r
-#if (EFI_SPECIFICATION < 0x00020000)\r
+#if (EFI_SPECIFICATION_VERSION < 0x00020000)\r
EFI_STATUS\r
EFIAPI\r
ConSpliterUgaDrawGetMode (\r
return ReturnStatus;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
DevNullGraphicsOutputBlt (\r
IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
UINT16 GlyphWidth;\r
UINT32 GlyphStatus;\r
UINT16 Count;\r
- GRAPHICS_CONSOLE_DEV *Private;\r
GLYPH_UNION *Glyph;\r
\r
- Private = GRAPHICS_CONSOLE_CON_OUT_DEV_FROM_THIS (This);\r
GlyphStatus = 0;\r
Count = 0;\r
\r
Mode->BaudRate,\r
Mode->ReceiveFifoDepth,\r
(UINT32) SerialInTimeOut,\r
- Mode->Parity,\r
+ (EFI_PARITY_TYPE) (Mode->Parity),\r
(UINT8) Mode->DataBits,\r
- Mode->StopBits\r
+ (EFI_STOP_BITS_TYPE) (Mode->StopBits)\r
);\r
if (EFI_ERROR (Status)) {\r
//\r
VariableSize,\r
Variable\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
gBS->FreePool (Variable);\r
\r
return ;\r
VariableSize,\r
NewVariable\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
}\r
\r
if (NewVariable != NULL) {\r
Mode->BaudRate,\r
Mode->ReceiveFifoDepth,\r
(UINT32) SerialInTimeOut,\r
- Mode->Parity,\r
+ (EFI_PARITY_TYPE) (Mode->Parity),\r
(UINT8) Mode->DataBits,\r
- Mode->StopBits\r
+ (EFI_STOP_BITS_TYPE) (Mode->StopBits)\r
);\r
\r
if (EFI_ERROR (Status)) {\r
}\r
}\r
\r
+STATIC\r
VOID\r
UnicodeToEfiKeyFlushState (\r
IN TERMINAL_DEV *TerminalDevice\r
TimerRelative,\r
(UINT64)20000000\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
continue;\r
}\r
\r
IN OUT UINT64 *PtrCurrentMTC\r
);\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
DataHubLogData (\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
DataHubGetNextRecord (\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
DataHubRegisterFilterDriver (\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
DataHubUnregisterFilterDriver (\r
--*/\r
;\r
\r
+VOID\r
+CommonHandler (\r
+ IN EFI_EXCEPTION_TYPE ExceptionType,\r
+ IN EFI_SYSTEM_CONTEXT Context\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+ C routine that is called for all registered exceptions. This is the main\r
+ exception dispatcher. Must be public because it's referenced from AsmFuncs.s.\r
+\r
+Arguments:\r
+ ExceptionType - Exception Type\r
+ Context - System Context\r
+\r
+Returns:\r
+\r
+ Nothing\r
+ \r
+--*/\r
+;\r
+\r
#endif\r
#include "DebugPort.h"\r
\r
//\r
-// Misc. functions local to this module\r
+// Misc. functions local to this module..\r
//\r
STATIC\r
VOID\r
GetDebugPortVariable (\r
- DEBUGPORT_DEVICE *DebugPortDevice\r
- );\r
+ DEBUGPORT_DEVICE *DebugPortDevice\r
+ )\r
+/*++\r
\r
-EFI_STATUS\r
-EFIAPI\r
-ImageUnloadHandler (\r
- EFI_HANDLE ImageHandle\r
- );\r
+Routine Description:\r
+ Local worker function to obtain device path information from DebugPort variable.\r
+ Records requested settings in DebugPort device structure.\r
+ \r
+Arguments:\r
+ DEBUGPORT_DEVICE *DebugPortDevice,\r
+\r
+Returns:\r
+\r
+ Nothing\r
+\r
+--*/\r
+{\r
+ UINTN DataSize;\r
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
+ EFI_STATUS Status;\r
+\r
+ DataSize = 0;\r
+\r
+ Status = gRT->GetVariable (\r
+ (CHAR16 *) EFI_DEBUGPORT_VARIABLE_NAME,\r
+ &gEfiDebugPortVariableGuid,\r
+ NULL,\r
+ &DataSize,\r
+ DebugPortDevice->DebugPortVariable\r
+ );\r
+\r
+ if (Status == EFI_BUFFER_TOO_SMALL) {\r
+ if (gDebugPortDevice->DebugPortVariable != NULL) {\r
+ gBS->FreePool (gDebugPortDevice->DebugPortVariable);\r
+ }\r
+\r
+ DebugPortDevice->DebugPortVariable = AllocatePool (DataSize);\r
+ if (DebugPortDevice->DebugPortVariable != NULL) {\r
+ gRT->GetVariable (\r
+ (CHAR16 *) EFI_DEBUGPORT_VARIABLE_NAME,\r
+ &gEfiDebugPortVariableGuid,\r
+ NULL,\r
+ &DataSize,\r
+ DebugPortDevice->DebugPortVariable\r
+ );\r
+ DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) DebugPortDevice->DebugPortVariable;\r
+ while (!EfiIsDevicePathEnd (DevicePath) && !EfiIsUartDevicePath (DevicePath)) {\r
+ DevicePath = EfiNextDevicePathNode (DevicePath);\r
+ }\r
+\r
+ if (EfiIsDevicePathEnd (DevicePath)) {\r
+ gBS->FreePool (gDebugPortDevice->DebugPortVariable);\r
+ DebugPortDevice->DebugPortVariable = NULL;\r
+ } else {\r
+ gBS->CopyMem (\r
+ &DebugPortDevice->BaudRate,\r
+ &((UART_DEVICE_PATH *) DevicePath)->BaudRate,\r
+ sizeof (((UART_DEVICE_PATH *) DevicePath)->BaudRate)\r
+ );\r
+ DebugPortDevice->ReceiveFifoDepth = DEBUGPORT_UART_DEFAULT_FIFO_DEPTH;\r
+ DebugPortDevice->Timeout = DEBUGPORT_UART_DEFAULT_TIMEOUT;\r
+ gBS->CopyMem (\r
+ &DebugPortDevice->Parity,\r
+ &((UART_DEVICE_PATH *) DevicePath)->Parity,\r
+ sizeof (((UART_DEVICE_PATH *) DevicePath)->Parity)\r
+ );\r
+ gBS->CopyMem (\r
+ &DebugPortDevice->DataBits,\r
+ &((UART_DEVICE_PATH *) DevicePath)->DataBits,\r
+ sizeof (((UART_DEVICE_PATH *) DevicePath)->DataBits)\r
+ );\r
+ gBS->CopyMem (\r
+ &DebugPortDevice->StopBits,\r
+ &((UART_DEVICE_PATH *) DevicePath)->StopBits,\r
+ sizeof (((UART_DEVICE_PATH *) DevicePath)->StopBits)\r
+ );\r
+ }\r
+ }\r
+ }\r
+}\r
\r
//\r
// Globals\r
};\r
\r
DEBUGPORT_DEVICE *gDebugPortDevice;\r
-static UINT32 mHid16550;\r
-static UINT32 mHidStdPcComPort;\r
\r
//\r
// implementation code\r
\r
--*/\r
{\r
- mHid16550 = EFI_ACPI_16550UART_HID;\r
- mHidStdPcComPort = EFI_ACPI_PC_COMPORT_HID;\r
-\r
//\r
// Allocate and Initialize dev structure\r
//\r
gDebugPortDevice->BaudRate = DEBUGPORT_UART_DEFAULT_BAUDRATE;\r
gDebugPortDevice->ReceiveFifoDepth = DEBUGPORT_UART_DEFAULT_FIFO_DEPTH;\r
gDebugPortDevice->Timeout = DEBUGPORT_UART_DEFAULT_TIMEOUT;\r
- gDebugPortDevice->Parity = DEBUGPORT_UART_DEFAULT_PARITY;\r
+ gDebugPortDevice->Parity = (EFI_PARITY_TYPE) DEBUGPORT_UART_DEFAULT_PARITY;\r
gDebugPortDevice->DataBits = DEBUGPORT_UART_DEFAULT_DATA_BITS;\r
- gDebugPortDevice->StopBits = DEBUGPORT_UART_DEFAULT_STOP_BITS;\r
+ gDebugPortDevice->StopBits = (EFI_STOP_BITS_TYPE) DEBUGPORT_UART_DEFAULT_STOP_BITS;\r
\r
return EFI_SUCCESS;\r
}\r
\r
--*/\r
{\r
- DEBUGPORT_DEVICE *DebugPortDevice;\r
UINTN BufferSize;\r
UINTN BitBucket;\r
\r
- DebugPortDevice = DEBUGPORT_DEVICE_FROM_THIS (This);\r
while (This->Poll (This) == EFI_SUCCESS) {\r
BufferSize = 1;\r
This->Read (This, 0, &BufferSize, &BitBucket);\r
\r
return Status;\r
}\r
-//\r
-// Misc. functions local to this module..\r
-//\r
-STATIC\r
-VOID\r
-GetDebugPortVariable (\r
- DEBUGPORT_DEVICE *DebugPortDevice\r
- )\r
-/*++\r
-\r
-Routine Description:\r
- Local worker function to obtain device path information from DebugPort variable.\r
- Records requested settings in DebugPort device structure.\r
- \r
-Arguments:\r
- DEBUGPORT_DEVICE *DebugPortDevice,\r
-\r
-Returns:\r
-\r
- Nothing\r
-\r
---*/\r
-{\r
- UINTN DataSize;\r
- EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- EFI_STATUS Status;\r
-\r
- DataSize = 0;\r
-\r
- Status = gRT->GetVariable (\r
- (CHAR16 *) EFI_DEBUGPORT_VARIABLE_NAME,\r
- &gEfiDebugPortVariableGuid,\r
- NULL,\r
- &DataSize,\r
- DebugPortDevice->DebugPortVariable\r
- );\r
-\r
- if (Status == EFI_BUFFER_TOO_SMALL) {\r
- if (gDebugPortDevice->DebugPortVariable != NULL) {\r
- gBS->FreePool (gDebugPortDevice->DebugPortVariable);\r
- }\r
-\r
- DebugPortDevice->DebugPortVariable = AllocatePool (DataSize);\r
- if (DebugPortDevice->DebugPortVariable != NULL) {\r
- gRT->GetVariable (\r
- (CHAR16 *) EFI_DEBUGPORT_VARIABLE_NAME,\r
- &gEfiDebugPortVariableGuid,\r
- NULL,\r
- &DataSize,\r
- DebugPortDevice->DebugPortVariable\r
- );\r
- DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) DebugPortDevice->DebugPortVariable;\r
- while (!EfiIsDevicePathEnd (DevicePath) && !EfiIsUartDevicePath (DevicePath)) {\r
- DevicePath = EfiNextDevicePathNode (DevicePath);\r
- }\r
-\r
- if (EfiIsDevicePathEnd (DevicePath)) {\r
- gBS->FreePool (gDebugPortDevice->DebugPortVariable);\r
- DebugPortDevice->DebugPortVariable = NULL;\r
- } else {\r
- gBS->CopyMem (\r
- &DebugPortDevice->BaudRate,\r
- &((UART_DEVICE_PATH *) DevicePath)->BaudRate,\r
- sizeof (((UART_DEVICE_PATH *) DevicePath)->BaudRate)\r
- );\r
- DebugPortDevice->ReceiveFifoDepth = DEBUGPORT_UART_DEFAULT_FIFO_DEPTH;\r
- DebugPortDevice->Timeout = DEBUGPORT_UART_DEFAULT_TIMEOUT;\r
- gBS->CopyMem (\r
- &DebugPortDevice->Parity,\r
- &((UART_DEVICE_PATH *) DevicePath)->Parity,\r
- sizeof (((UART_DEVICE_PATH *) DevicePath)->Parity)\r
- );\r
- gBS->CopyMem (\r
- &DebugPortDevice->DataBits,\r
- &((UART_DEVICE_PATH *) DevicePath)->DataBits,\r
- sizeof (((UART_DEVICE_PATH *) DevicePath)->DataBits)\r
- );\r
- gBS->CopyMem (\r
- &DebugPortDevice->StopBits,\r
- &((UART_DEVICE_PATH *) DevicePath)->StopBits,\r
- sizeof (((UART_DEVICE_PATH *) DevicePath)->StopBits)\r
- );\r
- }\r
- }\r
- }\r
-}\r
\r
EFI_STATUS\r
EFIAPI\r
\r
#include "DevicePath.h"\r
\r
+STATIC\r
CHAR16 *\r
StrDuplicate (\r
IN CONST CHAR16 *Src\r
return ReturnStr;\r
}\r
\r
+STATIC\r
CHAR16 *\r
GetParamByNodeName (\r
IN CHAR16 *Str,\r
return ParamStr;\r
}\r
\r
+STATIC\r
CHAR16 *\r
SplitStr (\r
IN OUT CHAR16 **List,\r
return ReturnStr;\r
}\r
\r
+STATIC\r
CHAR16 *\r
GetNextParamStr (\r
IN OUT CHAR16 **List\r
return SplitStr (List, L',');\r
}\r
\r
+STATIC\r
CHAR16 *\r
GetNextDeviceNodeStr (\r
IN OUT CHAR16 **DevicePath,\r
return ReturnStr;\r
}\r
\r
+STATIC\r
BOOLEAN\r
IsHexDigit (\r
OUT UINT8 *Digit,\r
return FALSE;\r
}\r
\r
+STATIC\r
CHAR16\r
NibbleToHexChar (\r
IN UINT8 Nibble\r
return (CHAR16)(Nibble - 0xA + L'A');\r
}\r
\r
+STATIC\r
EFI_STATUS\r
HexStringToBuf (\r
IN OUT UINT8 *Buf, \r
} else {\r
Byte = Buf[Idx / 2];\r
Byte &= 0x0F;\r
- Byte |= Digit << 4;\r
+ Byte = (UINT8) (Byte | Digit << 4);\r
}\r
\r
Buf[Idx / 2] = Byte;\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
BufToHexString (\r
IN OUT CHAR16 *Str,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
CHAR16 *\r
TrimHexStr (\r
IN CHAR16 *Str\r
return Str;\r
}\r
\r
+STATIC\r
UINTN\r
Xtoi (\r
IN CHAR16 *Str\r
return Rvalue;\r
}\r
\r
+STATIC\r
VOID\r
Xtoi64 (\r
IN CHAR16 *Str,\r
HexStringToBuf ((UINT8 *) Data, &Length, TrimHexStr (Str), NULL);\r
}\r
\r
+STATIC\r
UINTN\r
Atoi (\r
IN CHAR16 *str\r
return Rvalue;\r
}\r
\r
+STATIC\r
EFI_STATUS \r
StrToBuf (\r
OUT UINT8 *Buf,\r
// and for even characters, the lower nibble.\r
//\r
if ((Index & 1) == 0) {\r
- Byte = Digit << 4;\r
+ Byte = (UINT8) (Digit << 4);\r
} else {\r
Byte = Buf[Index / 2];\r
Byte &= 0xF0;\r
- Byte |= Digit;\r
+ Byte = (UINT8) (Byte | Digit);\r
}\r
\r
Buf[Index / 2] = Byte;\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
StrToGuid (\r
IN CHAR16 *Str,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
VOID\r
StrToIPv4Addr (\r
IN OUT CHAR16 **Str,\r
}\r
}\r
\r
+STATIC\r
VOID\r
StrToIPv6Addr (\r
IN OUT CHAR16 **Str,\r
}\r
}\r
\r
+STATIC\r
VOID\r
StrToAscii (\r
IN CHAR16 *Str,\r
*AsciiStr = Dest + 1;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextPci (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Pci;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextPcCard (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Pccard;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextMemoryMapped (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) MemMap;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
ConvertFromTextVendor (\r
IN CHAR16 *TextDeviceNode,\r
return (EFI_DEVICE_PATH_PROTOCOL *) Vendor;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextVenHw (\r
IN CHAR16 *TextDeviceNode\r
);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextCtrl (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Controller;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextAcpi (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Acpi;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
ConvertFromTextAcpi (\r
IN CHAR16 *TextDeviceNode,\r
return (EFI_DEVICE_PATH_PROTOCOL *) Acpi;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextPciRoot (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextAcpi (TextDeviceNode, 0x0a0341d0);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextFloppy (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextAcpi (TextDeviceNode, 0x060441d0);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextKeyboard (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextAcpi (TextDeviceNode, 0x030141d0);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextSerial (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextAcpi (TextDeviceNode, 0x050141d0);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextParallelPort (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextAcpi (TextDeviceNode, 0x040141d0);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextAcpiEx (\r
IN CHAR16 *TextDeviceNode\r
HIDSTRStr = GetNextParamStr (&TextDeviceNode);\r
CIDSTRStr = GetNextParamStr (&TextDeviceNode);\r
UIDSTRStr = GetNextParamStr (&TextDeviceNode);\r
- Length = sizeof (ACPI_EXTENDED_HID_DEVICE_PATH) + \r
- (UINT16) StrLen (HIDSTRStr) + 1 +\r
- (UINT16) StrLen (UIDSTRStr) + 1 +\r
- (UINT16) StrLen (CIDSTRStr) + 1;\r
+\r
+ Length = (UINT16) (sizeof (ACPI_EXTENDED_HID_DEVICE_PATH) + StrLen (HIDSTRStr) + 1);\r
+ Length = (UINT16) (Length + StrLen (UIDSTRStr) + 1);\r
+ Length = (UINT16) (Length + StrLen (CIDSTRStr) + 1);\r
AcpiExt = (ACPI_EXTENDED_HID_DEVICE_PATH_WITH_STR *) CreateDeviceNode (\r
ACPI_DEVICE_PATH,\r
ACPI_EXTENDED_DP,\r
return (EFI_DEVICE_PATH_PROTOCOL *) AcpiExt;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextAcpiExp (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) AcpiExt;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextAta (\r
IN CHAR16 *TextDeviceNode\r
SlaveMasterStr = GetNextParamStr (&TextDeviceNode);\r
LunStr = GetNextParamStr (&TextDeviceNode);\r
\r
- Atapi->PrimarySecondary = (StrCmp (PrimarySecondaryStr, L"Primary") == 0) ? (UINT8) 0 : (UINT8) 1;\r
- Atapi->SlaveMaster = (StrCmp (SlaveMasterStr, L"Master") == 0) ? (UINT8) 0 : (UINT8) 1;\r
+ Atapi->PrimarySecondary = (UINT8) ((StrCmp (PrimarySecondaryStr, L"Primary") == 0) ? 0 : 1);\r
+ Atapi->SlaveMaster = (UINT8) ((StrCmp (SlaveMasterStr, L"Master") == 0) ? 0 : 1);\r
Atapi->Lun = (UINT16) Xtoi (LunStr);\r
\r
return (EFI_DEVICE_PATH_PROTOCOL *) Atapi;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextScsi (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Scsi;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextFibre (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Fibre;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromText1394 (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) F1394;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsb (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Usb;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextI2O (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) I2O;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextInfiniband (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) InfiniBand;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextVenMsg (\r
IN CHAR16 *TextDeviceNode\r
);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextVenPcAnsi (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Vendor;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextVenVt100 (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Vendor;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextVenVt100Plus (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Vendor;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextVenUtf8 (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Vendor;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUartFlowCtrl (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) UartFlowControl;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextSAS (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Sas;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextDebugPort (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Vend;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextMAC (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) MAC;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextIPv4 (\r
IN CHAR16 *TextDeviceNode\r
);\r
\r
StrToIPv4Addr (&RemoteIPStr, &IPv4->RemoteIpAddress);\r
- IPv4->Protocol = (StrCmp (ProtocolStr, L"UDP") == 0) ? (UINT16) 0 : (UINT16) 1;\r
+ IPv4->Protocol = (UINT16) ((StrCmp (ProtocolStr, L"UDP") == 0) ? 0 : 1);\r
if (StrCmp (TypeStr, L"Static") == 0) {\r
IPv4->StaticIpAddress = TRUE;\r
} else {\r
return (EFI_DEVICE_PATH_PROTOCOL *) IPv4;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextIPv6 (\r
IN CHAR16 *TextDeviceNode\r
);\r
\r
StrToIPv6Addr (&RemoteIPStr, &IPv6->RemoteIpAddress);\r
- IPv6->Protocol = (StrCmp (ProtocolStr, L"UDP") == 0) ? (UINT16) 0 : (UINT16) 1;\r
+ IPv6->Protocol = (UINT16) ((StrCmp (ProtocolStr, L"UDP") == 0) ? 0 : 1);\r
if (StrCmp (TypeStr, L"Static") == 0) {\r
IPv6->StaticIpAddress = TRUE;\r
} else {\r
return (EFI_DEVICE_PATH_PROTOCOL *) IPv6;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUart (\r
IN CHAR16 *TextDeviceNode\r
);\r
\r
Uart->BaudRate = (StrCmp (BaudStr, L"DEFAULT") == 0) ? 115200 : Atoi (BaudStr);\r
- Uart->DataBits = (StrCmp (DataBitsStr, L"DEFAULT") == 0) ? (UINT8) 8 : (UINT8) Atoi (DataBitsStr);\r
+ Uart->DataBits = (UINT8) ((StrCmp (DataBitsStr, L"DEFAULT") == 0) ? 8 : Atoi (DataBitsStr));\r
switch (*ParityStr) {\r
case L'D':\r
Uart->Parity = 0;\r
return (EFI_DEVICE_PATH_PROTOCOL *) Uart;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
ConvertFromTextUsbClass (\r
IN CHAR16 *TextDeviceNode,\r
}\r
\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbClass (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbAudio (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbCDCControl (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbHID (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbImage (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbPrinter (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbMassStorage (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbHub (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbCDCData (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbSmartCard (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbVideo (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbDiagnostic (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbWireless (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbDeviceFirmwareUpdate (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbIrdaBridge (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbTestAndMeasurement (\r
IN CHAR16 *TextDeviceNode\r
return ConvertFromTextUsbClass (TextDeviceNode, &UsbClassText);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUsbWwid (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) UsbWwid;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextUnit (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) LogicalUnit;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextiSCSI (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) iSCSI;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextHD (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Hd;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextCDROM (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) CDROM;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextVenMEDIA (\r
IN CHAR16 *TextDeviceNode\r
);\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextFilePath (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) File;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextMedia (\r
IN CHAR16 *TextDeviceNode\r
return (EFI_DEVICE_PATH_PROTOCOL *) Media;\r
}\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
DevPathFromTextBBS (\r
IN CHAR16 *TextDeviceNode\r
\r
#include "DevicePath.h"\r
\r
+STATIC\r
EFI_DEVICE_PATH_PROTOCOL *\r
UnpackDevicePath (\r
IN EFI_DEVICE_PATH_PROTOCOL *DevPath\r
return NewPath;\r
}\r
\r
+STATIC\r
VOID *\r
ReallocatePool (\r
IN VOID *OldPool,\r
return NewPool;\r
}\r
\r
+STATIC\r
CHAR16 *\r
CatPrint (\r
IN OUT POOL_PRINT *Str,\r
Str->Str = AllocateZeroPool (Size);\r
ASSERT (Str->Str != NULL);\r
} else {\r
- Size = StrSize (AppendStr) + StrSize (Str->Str) - sizeof (UINT16);\r
+ Size = StrSize (AppendStr) - sizeof (UINT16);\r
+ Size = Size + StrSize (Str->Str);\r
Str->Str = ReallocatePool (\r
Str->Str,\r
StrSize (Str->Str),\r
return Str->Str;\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextPci (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"Pci(%x,%x)", Pci->Function, Pci->Device);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextPccard (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"PcCard(%x)", Pccard->FunctionNumber);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextMemMap (\r
IN OUT POOL_PRINT *Str,\r
);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextVendor (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L")");\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextController (\r
IN OUT POOL_PRINT *Str,\r
);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextAcpi (\r
IN OUT POOL_PRINT *Str,\r
\r
#define NextStrA(a) ((UINT8 *) (((UINT8 *) (a)) + AsciiStrLen ((CHAR8 *) (a)) + 1))\r
\r
+STATIC\r
VOID\r
DevPathToTextExtAcpi (\r
IN OUT POOL_PRINT *Str,\r
)\r
{\r
ACPI_EXTENDED_HID_DEVICE_PATH_WITH_STR *AcpiExt;\r
+ UINT8 *NextString;\r
\r
AcpiExt = DevPath;\r
\r
if (AllowShortcuts) {\r
+ NextString = NextStrA (AcpiExt->HidUidCidStr);\r
if ((*(AcpiExt->HidUidCidStr) == '\0') &&\r
- (*(NextStrA (NextStrA (AcpiExt->HidUidCidStr))) == '\0') &&\r
+ (*(NextStrA (NextString)) == '\0') &&\r
(AcpiExt->UID == 0)\r
) {\r
if ((AcpiExt->HID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) {\r
return ;\r
}\r
\r
+ NextString = NextStrA (AcpiExt->HidUidCidStr);\r
+ NextString = NextStrA (NextString);\r
if ((AcpiExt->HID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) {\r
CatPrint (\r
Str,\r
AcpiExt->CID,\r
AcpiExt->UID,\r
AcpiExt->HidUidCidStr,\r
- NextStrA (NextStrA (AcpiExt->HidUidCidStr)),\r
+ NextString,\r
NextStrA (AcpiExt->HidUidCidStr)\r
);\r
} else {\r
AcpiExt->CID,\r
AcpiExt->UID,\r
AcpiExt->HidUidCidStr,\r
- NextStrA (NextStrA (AcpiExt->HidUidCidStr)),\r
+ NextString,\r
NextStrA (AcpiExt->HidUidCidStr)\r
);\r
}\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextAtapi (\r
IN OUT POOL_PRINT *Str,\r
}\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextScsi (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"Scsi(%x,%x)", Scsi->Pun, Scsi->Lun);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextFibre (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"Fibre(%lx,%lx)", Fibre->WWN, Fibre->Lun);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToText1394 (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"I1394(%lx)", F1394->Guid);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextUsb (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"USB(%x,%x)", Usb->ParentPortNumber, Usb->InterfaceNumber);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextUsbWWID (\r
IN OUT POOL_PRINT *Str,\r
);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextLogicalUnit (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"Unit(%x)", LogicalUnit->Lun);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextUsbClass (\r
IN OUT POOL_PRINT *Str,\r
);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextI2O (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"I2O(%x)", I2O->Tid);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextMacAddr (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L",%x)", MAC->IfType);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextIPv4 (\r
IN OUT POOL_PRINT *Str,\r
);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextIPv6 (\r
IN OUT POOL_PRINT *Str,\r
);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextInfiniBand (\r
IN OUT POOL_PRINT *Str,\r
);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextUart (\r
IN OUT POOL_PRINT *Str,\r
}\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextiSCSI (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"%s)", (iSCSI->NetworkProtocol == 0) ? L"TCP" : L"reserved");\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextHardDrive (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"%lx,%lx)", Hd->PartitionStart, Hd->PartitionSize);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextCDROM (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"CDROM(%x,%lx,%lx)", Cd->BootEntry, Cd->PartitionStart, Cd->PartitionSize);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextFilePath (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"%s", Fp->PathName);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextMediaProtocol (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L"Media(%g)", &MediaProt->Protocol);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextBBS (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L",%x)", Bbs->StatusFlag);\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextEndInstance (\r
IN OUT POOL_PRINT *Str,\r
CatPrint (Str, L",");\r
}\r
\r
+STATIC\r
VOID\r
DevPathToTextNodeUnknown (\r
IN OUT POOL_PRINT *Str,\r
\r
#include "Partition.h"\r
\r
+STATIC\r
BOOLEAN\r
PartitionValidMbr (\r
IN MASTER_BOOT_RECORD *Mbr,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
PartitionReset (\r
);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
PartitionReadBlocks (\r
return Private->DiskIo->ReadDisk (Private->DiskIo, MediaId, Offset, BufferSize, Buffer);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
PartitionWriteBlocks (\r
return Private->DiskIo->WriteDisk (Private->DiskIo, MediaId, Offset, BufferSize, Buffer);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
PartitionFlushBlocks (\r
UINT8 Operands;\r
VOID *EbcEntryPoint;\r
VOID *Thunk;\r
- EFI_STATUS Status;\r
UINT64 U64EbcEntryPoint;\r
INT32 Offset;\r
\r
//\r
// Now create a new thunk\r
//\r
- Status = EbcCreateThunks (VmPtr->ImageHandle, EbcEntryPoint, &Thunk, 0);\r
+ EbcCreateThunks (VmPtr->ImageHandle, EbcEntryPoint, &Thunk, 0);\r
\r
//\r
// Finally replace the EBC entry point memory with the thunk address\r
*(UINT64 *) VmPtr->R[0] = Arg;\r
}\r
\r
+STATIC\r
UINT64\r
EbcInterpret (\r
UINT64 Arg1,\r
//\r
// Next is jumbled data, including opcode and rest of address\r
//\r
- Code[2] = LShiftU64 (Imm7b, 13)\r
- | LShiftU64 (0x00, 20) // vc\r
- | LShiftU64 (Ic, 21)\r
- | LShiftU64 (Imm5c, 22)\r
- | LShiftU64 (Imm9d, 27)\r
- | LShiftU64 (I, 36)\r
- | LShiftU64 ((UINT64)MOVL_OPCODE, 37)\r
- | LShiftU64 ((RegNum & 0x7F), 6);\r
+ Code[2] = LShiftU64 (Imm7b, 13);\r
+ Code[2] = Code[2] | LShiftU64 (0x00, 20); // vc\r
+ Code[2] = Code[2] | LShiftU64 (Ic, 21);\r
+ Code[2] = Code[2] | LShiftU64 (Imm5c, 22);\r
+ Code[2] = Code[2] | LShiftU64 (Imm9d, 27);\r
+ Code[2] = Code[2] | LShiftU64 (I, 36);\r
+ Code[2] = Code[2] | LShiftU64 ((UINT64)MOVL_OPCODE, 37);\r
+ Code[2] = Code[2] | LShiftU64 ((RegNum & 0x7F), 6);\r
\r
WriteBundle ((VOID *) Ptr, 0x05, Code[0], Code[1], Code[2]);\r
\r
//\r
// Next is jumbled data, including opcode and rest of address\r
//\r
- Code[2] = LShiftU64 (Imm7b, 13)\r
- | LShiftU64 (0x00, 20) // vc\r
- | LShiftU64 (Ic, 21)\r
- | LShiftU64 (Imm5c, 22)\r
- | LShiftU64 (Imm9d, 27)\r
- | LShiftU64 (I, 36)\r
- | LShiftU64 ((UINT64)MOVL_OPCODE, 37)\r
- | LShiftU64 ((RegNum & 0x7F), 6);\r
+ Code[2] = LShiftU64 (Imm7b, 13);\r
+ Code[2] = Code[2] | LShiftU64 (0x00, 20); // vc\r
+ Code[2] = Code[2] | LShiftU64 (Ic, 21);\r
+ Code[2] = Code[2] | LShiftU64 (Imm5c, 22);\r
+ Code[2] = Code[2] | LShiftU64 (Imm9d, 27);\r
+ Code[2] = Code[2] | LShiftU64 (I, 36);\r
+ Code[2] = Code[2] | LShiftU64 ((UINT64)MOVL_OPCODE, 37);\r
+ Code[2] = Code[2] | LShiftU64 ((RegNum & 0x7F), 6);\r
\r
WriteBundle ((VOID *) Ptr, 0x05, Code[0], Code[1], Code[2]);\r
\r
//\r
// Next is jumbled data, including opcode and rest of address\r
//\r
- Code[2] = LShiftU64(Imm7b, 13)\r
- | LShiftU64 (0x00, 20) // vc\r
- | LShiftU64 (Ic, 21)\r
- | LShiftU64 (Imm5c, 22)\r
- | LShiftU64 (Imm9d, 27)\r
- | LShiftU64 (I, 36)\r
- | LShiftU64 ((UINT64)MOVL_OPCODE, 37)\r
- | LShiftU64 ((RegNum & 0x7F), 6);\r
+ Code[2] = LShiftU64(Imm7b, 13);\r
+ Code[2] = Code[2] | LShiftU64 (0x00, 20); // vc\r
+ Code[2] = Code[2] | LShiftU64 (Ic, 21);\r
+ Code[2] = Code[2] | LShiftU64 (Imm5c, 22);\r
+ Code[2] = Code[2] | LShiftU64 (Imm9d, 27);\r
+ Code[2] = Code[2] | LShiftU64 (I, 36);\r
+ Code[2] = Code[2] | LShiftU64 ((UINT64)MOVL_OPCODE, 37);\r
+ Code[2] = Code[2] | LShiftU64 ((RegNum & 0x7F), 6);\r
\r
WriteBundle ((VOID *) Ptr, 0x05, Code[0], Code[1], Code[2]);\r
\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Low64 = LShiftU64 (Slot1, 46) | LShiftU64 (Slot0, 5) | Template;\r
- High64 = RShiftU64 (Slot1, 18) | LShiftU64 (Slot2, 23);\r
+ Low64 = LShiftU64 (Slot1, 46);\r
+ Low64 = Low64 | LShiftU64 (Slot0, 5) | Template;\r
+\r
+ High64 = RShiftU64 (Slot1, 18);\r
+ High64 = High64 | LShiftU64 (Slot2, 23);\r
\r
//\r
// Now write it all out\r
CodeTwo5c = RShiftU64 (*((UINT64 *)CalleeAddr + 3), 45) & 0x1F;\r
CodeTwo9d = RShiftU64 (*((UINT64 *)CalleeAddr + 3), 50) & 0x1FF;\r
\r
- TargetEbcAddr = CodeTwo7b\r
- | LShiftU64 (CodeTwo9d, 7)\r
- | LShiftU64 (CodeTwo5c, 16)\r
- | LShiftU64 (CodeTwoIc, 21)\r
- | LShiftU64 (CodeOne18, 22)\r
- | LShiftU64 (CodeOne23, 40)\r
- | LShiftU64 (CodeTwoI, 63)\r
- ;\r
+ TargetEbcAddr = CodeTwo7b;\r
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeTwo9d, 7);\r
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeTwo5c, 16);\r
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeTwoIc, 21);\r
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeOne18, 22);\r
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeOne23, 40);\r
+ TargetEbcAddr = TargetEbcAddr | LShiftU64 (CodeTwoI, 63);\r
\r
Action:\r
if (IsThunk == 1){\r
//\r
ESAL_VARIABLE_GLOBAL *mVariableModuleGlobal;\r
\r
+STATIC\r
UINT32\r
EFIAPI\r
ArrayLength (\r
return (Count * 2) + 2;\r
}\r
\r
+STATIC\r
VARIABLE_STORE_STATUS\r
EFIAPI\r
GetVariableStoreStatus (\r
}\r
}\r
\r
+STATIC\r
UINT8 *\r
EFIAPI\r
GetVariableDataPtr (\r
return (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (Variable) + Variable->NameSize + GET_PAD_SIZE (Variable->NameSize));\r
}\r
\r
+STATIC\r
VARIABLE_HEADER *\r
EFIAPI\r
GetNextVariablePtr (\r
return VarHeader;\r
}\r
\r
+STATIC\r
VARIABLE_HEADER *\r
EFIAPI\r
GetEndPointer (\r
return (VARIABLE_HEADER *) ((UINTN) VolHeader + VolHeader->Size);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
FindVariable (\r
Variable.StartPtr = (VARIABLE_HEADER *) ((UINTN) (Global->VolatileVariableBase + sizeof (VARIABLE_STORE_HEADER)));\r
Variable.EndPtr = (VARIABLE_HEADER *) GetEndPointer ((VARIABLE_STORE_HEADER *) ((UINTN) Global->VolatileVariableBase));\r
} else {\r
- return EFI_NOT_FOUND;\r
+ goto Error;\r
}\r
\r
Variable.CurrPtr = Variable.StartPtr;\r
}\r
}\r
\r
+Error:\r
return EFI_NOT_FOUND;\r
}\r
\r
}\r
#endif\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
InitializeVariableStore (\r
//\r
extern ESAL_VARIABLE_GLOBAL *mVariableModuleGlobal;\r
\r
+STATIC\r
SAL_RETURN_REGS\r
EsalVariableCommonEntry (\r
IN UINT64 FunctionId,\r
}\r
\r
State ^= FTW_POLARITY_REVERT;\r
- State |= NewBit;\r
+ State = (UINT8) (State | NewBit);\r
State ^= FTW_POLARITY_REVERT;\r
\r
//\r
--*/ \r
{\r
UINT32 TestPattern;\r
- UINT32 TestMask;\r
EFI_PHYSICAL_ADDRESS TempAddress;\r
UINT32 SpanSize;\r
\r
);\r
\r
TestPattern = TEST_PATTERN;\r
- TestMask = 0;\r
SpanSize = 0;\r
\r
//\r
//\r
// Worker functions\r
//\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
MonotonicCounterDriverGetNextMonotonicCount (\r
@retval EFI_DEVICE_ERROR The variable could not be saved due to a hardware failure.\r
\r
**/\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
MonotonicCounterDriverGetNextHighMonotonicCount (\r
\r
}\r
\r
+STATIC\r
VOID\r
EFIAPI\r
EfiMtcEventHandler (\r
#include "dhcp.h"\r
#include "tftp.h"\r
\r
+VOID\r
+InitArpHeader (\r
+ VOID\r
+ )\r
+/*++\r
+Routine description:\r
+ Initialize ARP packet header.\r
+\r
+Parameters:\r
+ none\r
+\r
+Returns:\r
+ none\r
+\r
+--*/\r
+;\r
+\r
#endif /* _BC_H */\r
\r
/* EOF - bc.h */\r
IN EFI_HANDLE *ChildHandleBuffer\r
);\r
\r
-extern\r
-VOID\r
-InitArpHeader (\r
- VOID\r
- );\r
-extern\r
-VOID\r
-OptionsStrucInit (\r
- VOID\r
- );\r
-\r
//\r
// helper routines\r
//\r
{\r
UINT32 Sum;\r
\r
- Sum = (UINT16)~IpChecksum (Header, HeaderLen) + (UINT16)~IpChecksum (Message, MessageLen);\r
-\r
+ Sum = (UINT16)~IpChecksum (Header, HeaderLen);\r
+ Sum = Sum + (UINT16)~IpChecksum (Message, MessageLen);\r
//\r
// in case above carried\r
//\r
//\r
// Lock the instance data\r
//\r
- EFI_PXE_BASE_CODE_MODE *PxebcMode;\r
EFI_SIMPLE_NETWORK_PROTOCOL *SnpPtr;\r
EFI_SIMPLE_NETWORK_MODE *SnpModePtr;\r
EFI_STATUS StatCode;\r
\r
EfiAcquireLock (&Private->Lock);\r
\r
- PxebcMode = Private->EfiBc.Mode;\r
SnpPtr = Private->SimpleNetwork;\r
SnpModePtr = SnpPtr->Mode;\r
\r
--*/\r
{\r
EFI_PXE_BASE_CODE_MODE *PxebcMode;\r
- EFI_STATUS StatCode;\r
PXE_BASECODE_DEVICE *Private;\r
\r
//\r
// Lock the instance data and make sure started\r
//\r
- StatCode = EFI_SUCCESS;\r
\r
if (This == NULL) {\r
DEBUG ((EFI_D_ERROR, "BC *This pointer == NULL"));\r
#define CREDENTIALS_TYPE (1 << 3)\r
#define USE_THREE_BYTE (1 << 4)\r
\r
+VOID\r
+OptionsStrucInit (\r
+ VOID\r
+ );\r
+\r
#endif // _DHCP_H\r
\r
/* EOF - dhcp.h */\r
CopyMem (DHCPOpStart.DhcpClassIdentifier.Data.UndiMajor, "yyy", sizeof ("yyy"));\r
CopyMem (DHCPOpStart.DhcpClassIdentifier.Data.UndiMinor, "xxx", sizeof ("xxx"));\r
DHCPOpStart.End[0] = OP_END;\r
-};\r
+}\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
\r
#pragma pack()\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
CHAR8 *\r
PxeBcLibGetSmbiosString (\r
IN SMBIOS_STRUCTURE_POINTER *Smbios,\r
}\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
VOID\r
Parse (\r
DHCP_RECEIVE_BUFFER *RxBufPtr,\r
}\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
BOOLEAN\r
AckEdit (\r
DHCP_RECEIVE_BUFFER *DhcpRxBuf\r
//\r
// if a discover type packet, make sure all required fields are present\r
//\r
+STATIC\r
BOOLEAN\r
DHCPOfferAckEdit (\r
DHCP_RECEIVE_BUFFER *DhcpRxBuf\r
}\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
BOOLEAN\r
DHCPAckEdit (\r
DHCP_RECEIVE_BUFFER *RxBufPtr\r
//\r
// get an offer/ack\r
//\r
+STATIC\r
EFI_STATUS\r
GetOfferAck (\r
PXE_BASECODE_DEVICE *Private,\r
//\r
// get DHCPOFFER's\r
//\r
+STATIC\r
EFI_STATUS\r
GetOffers (\r
PXE_BASECODE_DEVICE *Private\r
//\r
// determine if the server ip is in the ip list\r
//\r
+STATIC\r
BOOLEAN\r
InServerList (\r
EFI_IP_ADDRESS *ServerIpPtr,\r
}\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
BOOLEAN\r
ExtractBootServerList (\r
UINT16 Type,\r
}\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
VOID\r
FreeMem (\r
PXE_BASECODE_DEVICE *Private\r
}\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
BOOLEAN\r
GetMem (\r
PXE_BASECODE_DEVICE *Private\r
}\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
EFI_STATUS\r
DoDiscover (\r
PXE_BASECODE_DEVICE *Private,\r
{\r
EFI_PXE_BASE_CODE_MODE *PxebcMode;\r
EFI_STATUS Status;\r
- EFI_STATUS StatCode;\r
PXE_BASECODE_DEVICE *Private;\r
\r
//\r
// Lock the instance data and make sure started\r
//\r
- StatCode = EFI_SUCCESS;\r
\r
if (This == NULL) {\r
DEBUG ((EFI_D_ERROR, "BC *This pointer == NULL"));\r
#include "Bc.h"\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
UINT64\r
Swap64 (\r
UINT64 n\r
}\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
EFI_STATUS\r
MtftpDownload (\r
PXE_BASECODE_DEVICE *Private,\r
}\r
\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
+STATIC\r
EFI_STATUS\r
PxeBcMtftp (\r
PXE_BASECODE_DEVICE *Private,\r
if (gST->ConIn->ReadKeyStroke (gST->ConIn, &Key) == EFI_NOT_READY) {\r
UINT8 Buffer[512];\r
UINTN BufferSize;\r
- EFI_STATUS Status;\r
\r
BufferSize = sizeof Buffer;\r
\r
- Status = Private->EfiBc.UdpRead (\r
- &Private->EfiBc,\r
- EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP |\r
- EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT |\r
- EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT,\r
- NULL, /* dest ip */\r
- NULL, /* dest port */\r
- NULL, /* src ip */\r
- NULL, /* src port */\r
- NULL, /* hdr size */\r
- NULL, /* hdr ptr */\r
- &BufferSize,\r
- Buffer\r
- );\r
+ Private->EfiBc.UdpRead (\r
+ &Private->EfiBc,\r
+ EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP |\r
+ EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT |\r
+ EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT,\r
+ NULL, /* dest ip */\r
+ NULL, /* dest port */\r
+ NULL, /* src ip */\r
+ NULL, /* src port */\r
+ NULL, /* hdr size */\r
+ NULL, /* hdr ptr */\r
+ &BufferSize,\r
+ Buffer\r
+ );\r
\r
continue;\r
}\r
return NULL;\r
}\r
\r
+STATIC\r
UINT8 *\r
PxeBcFindDhcpOpt (\r
EFI_PXE_BASE_CODE_PACKET *PacketPtr,\r
\r
if (Private->EfiBc.Mode->BisSupported && Private->EfiBc.Mode->BisDetected && Private->EfiBc.Mode->PxeBisReplyReceived) {\r
UINT64 CredentialLen;\r
- UINTN BlockSize;\r
UINT8 CredentialFilename[256];\r
UINT8 *op;\r
VOID *CredentialBuffer;\r
\r
AsciiPrint ("Running LoadFile()\n");\r
\r
- //\r
- // Resolve Warning 4 unreferenced parameter problem\r
- //\r
- FilePath = NULL;\r
-\r
//\r
// If either if these parameters are NULL, we cannot continue.\r
//\r
)\r
;\r
\r
+VOID\r
+EFIAPI\r
+SnpWaitForPacketNotify (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *SnpPtr\r
+ );\r
+\r
+EFI_STATUS\r
+pxe_start (\r
+ SNP_DRIVER *snp\r
+ );\r
+\r
+EFI_STATUS\r
+pxe_stop (\r
+ SNP_DRIVER *snp\r
+ );\r
+\r
+EFI_STATUS\r
+pxe_init (\r
+ SNP_DRIVER *snp,\r
+ UINT16 OpFlags\r
+ );\r
+\r
+EFI_STATUS\r
+pxe_shutdown (\r
+ SNP_DRIVER *snp\r
+ );\r
+\r
+EFI_STATUS\r
+pxe_get_stn_addr (\r
+ SNP_DRIVER *snp\r
+ );\r
+\r
typedef\r
EFI_STATUS\r
(*issue_undi32_command) (\r
UINT64 cdb\r
);\r
+\r
typedef\r
VOID\r
(*ptr) (\r
\r
switch (NumBytes) {\r
case 2:\r
- Width = 1;\r
+ Width = (EFI_PCI_IO_PROTOCOL_WIDTH) 1;\r
break;\r
\r
case 4:\r
- Width = 2;\r
+ Width = (EFI_PCI_IO_PROTOCOL_WIDTH) 2;\r
break;\r
\r
case 8:\r
- Width = 3;\r
+ Width = (EFI_PCI_IO_PROTOCOL_WIDTH) 3;\r
break;\r
\r
default:\r
- Width = 0;\r
+ Width = (EFI_PCI_IO_PROTOCOL_WIDTH) 0;\r
}\r
\r
switch (ReadOrWrite) {\r
\r
snp = (SNP_DRIVER *) (UINTN) UniqueId;\r
\r
- Width = 0;\r
+ Width = (EFI_PCI_IO_PROTOCOL_WIDTH) 0;\r
switch (NumBytes) {\r
case 2:\r
- Width = 1;\r
+ Width = (EFI_PCI_IO_PROTOCOL_WIDTH) 1;\r
break;\r
\r
case 4:\r
- Width = 2;\r
+ Width = (EFI_PCI_IO_PROTOCOL_WIDTH) 2;\r
break;\r
\r
case 8:\r
- Width = 3;\r
+ Width = (EFI_PCI_IO_PROTOCOL_WIDTH) 3;\r
break;\r
}\r
\r
\r
#include "Snp.h"\r
\r
+STATIC\r
EFI_STATUS\r
pxe_getstatus (\r
SNP_DRIVER *snp,\r
\r
#include "Snp.h"\r
\r
-VOID\r
-EFIAPI\r
-SnpWaitForPacketNotify (\r
- IN EFI_EVENT Event,\r
- IN VOID *SnpPtr\r
- );\r
-\r
EFI_STATUS\r
pxe_init (\r
SNP_DRIVER *snp,\r
\r
#include "Snp.h"\r
\r
+STATIC\r
EFI_STATUS\r
pxe_ip2mac (\r
IN SNP_DRIVER *snp,\r
\r
#include "Snp.h"\r
\r
+STATIC\r
EFI_STATUS\r
pxe_nvdata_read (\r
IN SNP_DRIVER *snp,\r
\r
#include "Snp.h"\r
\r
+STATIC\r
EFI_STATUS\r
pxe_receive (\r
SNP_DRIVER *snp,\r
\r
#include "Snp.h"\r
\r
+STATIC\r
EFI_STATUS\r
pxe_rcvfilter_enable (\r
SNP_DRIVER *snp,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
pxe_rcvfilter_disable (\r
SNP_DRIVER *snp,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
pxe_rcvfilter_read (\r
SNP_DRIVER *snp\r
\r
#include "Snp.h"\r
\r
+STATIC\r
EFI_STATUS\r
pxe_reset (\r
SNP_DRIVER *snp\r
{\r
SNP_DRIVER *snp;\r
\r
- //\r
- // Resolve Warning 4 unreferenced parameter problem\r
- //\r
- ExtendedVerification = 0;\r
-\r
if (this == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
#include "Snp.h"\r
\r
-EFI_STATUS\r
-pxe_start (\r
- SNP_DRIVER *snp\r
- );\r
-EFI_STATUS\r
-pxe_stop (\r
- SNP_DRIVER *snp\r
- );\r
-EFI_STATUS\r
-pxe_init (\r
- SNP_DRIVER *snp,\r
- UINT16 OpFlags\r
- );\r
-EFI_STATUS\r
-pxe_shutdown (\r
- SNP_DRIVER *snp\r
- );\r
-EFI_STATUS\r
-pxe_get_stn_addr (\r
- SNP_DRIVER *snp\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-InitializeSnpNiiDriver (\r
- IN EFI_HANDLE image_handle,\r
- IN EFI_SYSTEM_TABLE *system_table\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-SimpleNetworkDriverSupported (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-SimpleNetworkDriverStart (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
- );\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-SimpleNetworkDriverStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
- );\r
-\r
-//\r
-// Simple Network Protocol Driver Global Variables\r
-//\r
-EFI_DRIVER_BINDING_PROTOCOL mSimpleNetworkDriverBinding = {\r
- SimpleNetworkDriverSupported,\r
- SimpleNetworkDriverStart,\r
- SimpleNetworkDriverStop,\r
- 0xa,\r
- NULL,\r
- NULL\r
-};\r
-\r
//\r
// Module global variables needed to support undi 3.0 interface\r
//\r
struct s_v2p *_v2p = NULL; // undi3.0 map_list head\r
// End Global variables\r
//\r
-EFI_STATUS\r
-add_v2p (\r
- IN OUT struct s_v2p **v2p,\r
- EFI_PCI_IO_PROTOCOL_OPERATION type,\r
- VOID *vaddr,\r
- UINTN bsize\r
- )\r
-/*++\r
-\r
-Routine Description:\r
- This routine maps the given CPU address to a Device address. It creates a\r
- an entry in the map list with the virtual and physical addresses and the \r
- un map cookie.\r
-\r
-Arguments:\r
- v2p - pointer to return a map list node pointer.\r
- type - the direction in which the data flows from the given virtual address\r
- device->cpu or cpu->device or both ways.\r
- vaddr - virtual address (or CPU address) to be mapped\r
- bsize - size of the buffer to be mapped.\r
-\r
-Returns:\r
-\r
- EFI_SUCEESS - routine has completed the mapping\r
- other - error as indicated.\r
-\r
---*/\r
-{\r
- EFI_STATUS Status;\r
-\r
- if ((v2p == NULL) || (vaddr == NULL) || (bsize == 0)) {\r
- return EFI_INVALID_PARAMETER;\r
- }\r
-\r
- Status = gBS->AllocatePool (\r
- EfiBootServicesData,\r
- sizeof (struct s_v2p),\r
- (VOID **) v2p\r
- );\r
-\r
- if (Status != EFI_SUCCESS) {\r
- return Status;\r
- }\r
-\r
- Status = mPciIoFncs->Map (\r
- mPciIoFncs,\r
- type,\r
- vaddr,\r
- &bsize,\r
- &(*v2p)->paddr,\r
- &(*v2p)->unmap\r
- );\r
- if (Status != EFI_SUCCESS) {\r
- gBS->FreePool (*v2p);\r
- return Status;\r
- }\r
- (*v2p)->vaddr = vaddr;\r
- (*v2p)->bsize = bsize;\r
- (*v2p)->next = _v2p;\r
- _v2p = *v2p;\r
-\r
- return EFI_SUCCESS;\r
-}\r
-\r
-EFI_STATUS\r
-find_v2p (\r
- struct s_v2p **v2p,\r
- VOID *vaddr\r
- )\r
-/*++\r
-\r
-Routine Description:\r
- This routine searches the linked list of mapped address nodes (for undi3.0 \r
- interface) to find the node that corresponds to the given virtual address and\r
- returns a pointer to that node.\r
-\r
-Arguments:\r
- v2p - pointer to return a map list node pointer.\r
- vaddr - virtual address (or CPU address) to be searched in the map list\r
-\r
-Returns:\r
-\r
- EFI_SUCEESS - if a match found!\r
- Other - match not found\r
-\r
---*/\r
-{\r
- struct s_v2p *v;\r
-\r
- if (v2p == NULL || vaddr == NULL) {\r
- return EFI_INVALID_PARAMETER;\r
- }\r
-\r
- for (v = _v2p; v != NULL; v = v->next) {\r
- if (v->vaddr == vaddr) {\r
- *v2p = v;\r
- return EFI_SUCCESS;\r
- }\r
- }\r
-\r
- return EFI_NOT_FOUND;\r
-}\r
-\r
-EFI_STATUS\r
-del_v2p (\r
- VOID *vaddr\r
- )\r
-/*++\r
-\r
-Routine Description:\r
- This routine unmaps the given virtual address and frees the memory allocated \r
- for the map list node corresponding to that address.\r
- \r
-Arguments:\r
- vaddr - virtual address (or CPU address) to be unmapped\r
-\r
-Returns:\r
- EFI_SUCEESS - if successfully unmapped\r
- Other - as indicated by the error\r
-\r
-\r
---*/\r
-{\r
- struct s_v2p *v;\r
- struct s_v2p *t;\r
- EFI_STATUS Status;\r
-\r
- if (vaddr == NULL) {\r
- return EFI_INVALID_PARAMETER;\r
- }\r
-\r
- if (_v2p == NULL) {\r
- return EFI_NOT_FOUND;\r
- }\r
- //\r
- // Is our node at the head of the list??\r
- //\r
- if ((v = _v2p)->vaddr == vaddr) {\r
- _v2p = _v2p->next;\r
-\r
- Status = mPciIoFncs->Unmap (mPciIoFncs, v->unmap);\r
-\r
- gBS->FreePool (v);\r
-\r
-#if SNP_DEBUG\r
- if (Status) {\r
- Print (L"Unmap failed with status = %x\n", Status);\r
- }\r
-#endif\r
- return Status;\r
- }\r
-\r
- for (; v->next != NULL; v = t) {\r
- if ((t = v->next)->vaddr == vaddr) {\r
- v->next = t->next;\r
- Status = mPciIoFncs->Unmap (mPciIoFncs, t->unmap);\r
- gBS->FreePool (t);\r
-#if SNP_DEBUG\r
- if (Status) {\r
- Print (L"Unmap failed with status = %x\n", Status);\r
- }\r
-#endif\r
- return Status;\r
- }\r
- }\r
-\r
- return EFI_NOT_FOUND;\r
-}\r
-\r
-#if SNP_DEBUG\r
-VOID\r
-snp_wait_for_key (\r
- VOID\r
- )\r
-/*++\r
-\r
-Routine Description:\r
- Wait for a key stroke, used for debugging purposes\r
-\r
-Arguments:\r
- none\r
-\r
-Returns:\r
- none\r
-\r
---*/\r
-{\r
- EFI_INPUT_KEY key;\r
-\r
- Aprint ("\nPress any key to continue\n");\r
-\r
- while (gST->ConIn->ReadKeyStroke (gST->ConIn, &key) == EFI_NOT_READY) {\r
- ;\r
- }\r
-}\r
-#endif\r
\r
STATIC\r
EFI_STATUS\r
return cksum;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
SimpleNetworkDriverSupported (\r
return Status;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
SimpleNetworkDriverStart (\r
return Status;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
SimpleNetworkDriverStop (\r
return Status;\r
}\r
\r
+//\r
+// Simple Network Protocol Driver Global Variables\r
+//\r
+EFI_DRIVER_BINDING_PROTOCOL mSimpleNetworkDriverBinding = {\r
+ SimpleNetworkDriverSupported,\r
+ SimpleNetworkDriverStart,\r
+ SimpleNetworkDriverStop,\r
+ 0xa,\r
+ NULL,\r
+ NULL\r
+};\r
+\r
+EFI_STATUS\r
+add_v2p (\r
+ IN OUT struct s_v2p **v2p,\r
+ EFI_PCI_IO_PROTOCOL_OPERATION type,\r
+ VOID *vaddr,\r
+ UINTN bsize\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+ This routine maps the given CPU address to a Device address. It creates a\r
+ an entry in the map list with the virtual and physical addresses and the \r
+ un map cookie.\r
+\r
+Arguments:\r
+ v2p - pointer to return a map list node pointer.\r
+ type - the direction in which the data flows from the given virtual address\r
+ device->cpu or cpu->device or both ways.\r
+ vaddr - virtual address (or CPU address) to be mapped\r
+ bsize - size of the buffer to be mapped.\r
+\r
+Returns:\r
+\r
+ EFI_SUCEESS - routine has completed the mapping\r
+ other - error as indicated.\r
+\r
+--*/\r
+{\r
+ EFI_STATUS Status;\r
+\r
+ if ((v2p == NULL) || (vaddr == NULL) || (bsize == 0)) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ Status = gBS->AllocatePool (\r
+ EfiBootServicesData,\r
+ sizeof (struct s_v2p),\r
+ (VOID **) v2p\r
+ );\r
+\r
+ if (Status != EFI_SUCCESS) {\r
+ return Status;\r
+ }\r
+\r
+ Status = mPciIoFncs->Map (\r
+ mPciIoFncs,\r
+ type,\r
+ vaddr,\r
+ &bsize,\r
+ &(*v2p)->paddr,\r
+ &(*v2p)->unmap\r
+ );\r
+ if (Status != EFI_SUCCESS) {\r
+ gBS->FreePool (*v2p);\r
+ return Status;\r
+ }\r
+ (*v2p)->vaddr = vaddr;\r
+ (*v2p)->bsize = bsize;\r
+ (*v2p)->next = _v2p;\r
+ _v2p = *v2p;\r
+\r
+ return EFI_SUCCESS;\r
+}\r
+\r
+EFI_STATUS\r
+find_v2p (\r
+ struct s_v2p **v2p,\r
+ VOID *vaddr\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+ This routine searches the linked list of mapped address nodes (for undi3.0 \r
+ interface) to find the node that corresponds to the given virtual address and\r
+ returns a pointer to that node.\r
+\r
+Arguments:\r
+ v2p - pointer to return a map list node pointer.\r
+ vaddr - virtual address (or CPU address) to be searched in the map list\r
+\r
+Returns:\r
+\r
+ EFI_SUCEESS - if a match found!\r
+ Other - match not found\r
+\r
+--*/\r
+{\r
+ struct s_v2p *v;\r
+\r
+ if (v2p == NULL || vaddr == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ for (v = _v2p; v != NULL; v = v->next) {\r
+ if (v->vaddr == vaddr) {\r
+ *v2p = v;\r
+ return EFI_SUCCESS;\r
+ }\r
+ }\r
+\r
+ return EFI_NOT_FOUND;\r
+}\r
+\r
+EFI_STATUS\r
+del_v2p (\r
+ VOID *vaddr\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+ This routine unmaps the given virtual address and frees the memory allocated \r
+ for the map list node corresponding to that address.\r
+ \r
+Arguments:\r
+ vaddr - virtual address (or CPU address) to be unmapped\r
+\r
+Returns:\r
+ EFI_SUCEESS - if successfully unmapped\r
+ Other - as indicated by the error\r
+\r
+\r
+--*/\r
+{\r
+ struct s_v2p *v;\r
+ struct s_v2p *t;\r
+ EFI_STATUS Status;\r
+\r
+ if (vaddr == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ if (_v2p == NULL) {\r
+ return EFI_NOT_FOUND;\r
+ }\r
+ //\r
+ // Is our node at the head of the list??\r
+ //\r
+ if ((v = _v2p)->vaddr == vaddr) {\r
+ _v2p = _v2p->next;\r
+\r
+ Status = mPciIoFncs->Unmap (mPciIoFncs, v->unmap);\r
+\r
+ gBS->FreePool (v);\r
+\r
+#if SNP_DEBUG\r
+ if (Status) {\r
+ Print (L"Unmap failed with status = %x\n", Status);\r
+ }\r
+#endif\r
+ return Status;\r
+ }\r
+\r
+ for (; v->next != NULL; v = t) {\r
+ if ((t = v->next)->vaddr == vaddr) {\r
+ v->next = t->next;\r
+ Status = mPciIoFncs->Unmap (mPciIoFncs, t->unmap);\r
+ gBS->FreePool (t);\r
+#if SNP_DEBUG\r
+ if (Status) {\r
+ Print (L"Unmap failed with status = %x\n", Status);\r
+ }\r
+#endif\r
+ return Status;\r
+ }\r
+ }\r
+\r
+ return EFI_NOT_FOUND;\r
+}\r
+\r
+#if SNP_DEBUG\r
+VOID\r
+snp_wait_for_key (\r
+ VOID\r
+ )\r
+/*++\r
+\r
+Routine Description:\r
+ Wait for a key stroke, used for debugging purposes\r
+\r
+Arguments:\r
+ none\r
+\r
+Returns:\r
+ none\r
+\r
+--*/\r
+{\r
+ EFI_INPUT_KEY key;\r
+\r
+ Aprint ("\nPress any key to continue\n");\r
+\r
+ while (gST->ConIn->ReadKeyStroke (gST->ConIn, &key) == EFI_NOT_READY) {\r
+ ;\r
+ }\r
+}\r
+#endif\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
pxe_set_stn_addr (\r
SNP_DRIVER *snp,\r
\r
#include "Snp.h"\r
\r
+STATIC\r
EFI_STATUS\r
pxe_fillheader (\r
SNP_DRIVER *snp,\r
}\r
}\r
\r
+STATIC\r
EFI_STATUS\r
pxe_transmit (\r
SNP_DRIVER *snp,\r
)\r
{\r
EFI_STATUS Status;\r
+ BOOLEAN PeiExMapTableEmpty;\r
+ BOOLEAN DxeExMapTableEmpty;\r
\r
if (!FeaturePcdGet (PcdDxePcdDatabaseTraverseEnabled)) {\r
return EFI_UNSUPPORTED;\r
}\r
\r
Status = EFI_NOT_FOUND;\r
+ PeiExMapTableEmpty = PEI_EXMAP_TABLE_EMPTY;\r
+ DxeExMapTableEmpty = DXE_EXMAP_TABLE_EMPTY;\r
+\r
//\r
// Scan the local token space\r
//\r
return EFI_SUCCESS;\r
}\r
\r
- if (PEI_EXMAP_TABLE_EMPTY && DXE_EXMAP_TABLE_EMPTY) {\r
+ if (PeiExMapTableEmpty && DxeExMapTableEmpty) {\r
*TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
return EFI_NOT_FOUND;\r
}\r
\r
- if (!PEI_EXMAP_TABLE_EMPTY) {\r
+ if (!PeiExMapTableEmpty) {\r
Status = ExGetNextTokeNumber (\r
Guid,\r
TokenNumber,\r
return Status;\r
}\r
\r
- if (!DXE_EXMAP_TABLE_EMPTY) {\r
+ if (!DxeExMapTableEmpty) {\r
Status = ExGetNextTokeNumber (\r
Guid,\r
TokenNumber,\r
return Status;\r
}\r
\r
-\r
+STATIC\r
EFI_GUID **\r
GetDistinctTokenSpace (\r
IN OUT UINTN *ExMapTableSize,\r
EFI_GUID **PeiTokenSpaceTable;\r
EFI_GUID **DxeTokenSpaceTable;\r
BOOLEAN Match;\r
+ BOOLEAN PeiExMapTableEmpty;\r
+ BOOLEAN DxeExMapTableEmpty;\r
\r
if (!FeaturePcdGet (PcdDxePcdDatabaseTraverseEnabled)) {\r
return EFI_UNSUPPORTED;\r
\r
ASSERT (Guid != NULL);\r
\r
- if (PEI_EXMAP_TABLE_EMPTY && DXE_EXMAP_TABLE_EMPTY) {\r
+ PeiExMapTableEmpty = PEI_EXMAP_TABLE_EMPTY;\r
+ DxeExMapTableEmpty = DXE_EXMAP_TABLE_EMPTY;\r
+\r
+ if (PeiExMapTableEmpty && DxeExMapTableEmpty) {\r
if (*Guid != NULL) {\r
return EFI_NOT_FOUND;\r
} else {\r
if (TmpTokenSpaceBuffer[0] == NULL) {\r
PeiTokenSpaceTableSize = 0;\r
\r
- if (!PEI_EXMAP_TABLE_EMPTY) {\r
+ if (!PeiExMapTableEmpty) {\r
PeiTokenSpaceTableSize = PEI_EXMAPPING_TABLE_SIZE;\r
PeiTokenSpaceTable = GetDistinctTokenSpace (&PeiTokenSpaceTableSize,\r
mPcdDatabase->PeiDb.Init.ExMapTable,\r
CopyMem (TmpTokenSpaceBuffer, PeiTokenSpaceTable, sizeof (EFI_GUID*) * PeiTokenSpaceTableSize);\r
}\r
\r
- if (!DXE_EXMAP_TABLE_EMPTY) {\r
+ if (!DxeExMapTableEmpty) {\r
DxeTokenSpaceTableSize = DXE_EXMAPPING_TABLE_SIZE;\r
DxeTokenSpaceTable = GetDistinctTokenSpace (&DxeTokenSpaceTableSize,\r
mPcdDatabase->DxeDb.Init.ExMapTable,\r
)\r
{\r
UINT32 *LocalTokenNumberTable;\r
- UINT16 *SizeTable;\r
EFI_GUID *GuidTable;\r
UINT16 *StringTable;\r
EFI_GUID *Guid;\r
// EBC compiler is very choosy. It may report warning about comparison\r
// between UINTN and 0 . So we add 1 in each size of the \r
// comparison.\r
- IsPeiDb = (TokenNumber + 1 < PEI_LOCAL_TOKEN_NUMBER + 1) ? TRUE : FALSE;\r
+ IsPeiDb = (BOOLEAN) ((TokenNumber + 1 < PEI_LOCAL_TOKEN_NUMBER + 1) ? TRUE : FALSE);\r
\r
LocalTokenNumberTable = IsPeiDb ? mPcdDatabase->PeiDb.Init.LocalTokenNumberTable : \r
mPcdDatabase->DxeDb.Init.LocalTokenNumberTable;\r
\r
- SizeTable = IsPeiDb ? mPcdDatabase->PeiDb.Init.SizeTable: \r
- mPcdDatabase->DxeDb.Init.SizeTable;\r
-\r
TokenNumber = IsPeiDb ? TokenNumber :\r
TokenNumber - PEI_LOCAL_TOKEN_NUMBER;\r
\r
\r
\r
\r
-\r
+STATIC\r
VOID\r
InvokeCallbackOnSet (\r
UINT32 ExTokenNumber,\r
// EBC compiler is very choosy. It may report warning about comparison\r
// between UINTN and 0 . So we add 1 in each size of the \r
// comparison.\r
- IsPeiDb = (TokenNumber + 1 < PEI_LOCAL_TOKEN_NUMBER + 1) ? TRUE : FALSE;\r
+ IsPeiDb = (BOOLEAN) ((TokenNumber + 1 < PEI_LOCAL_TOKEN_NUMBER + 1) ? TRUE : FALSE);\r
\r
LocalTokenNumberTable = IsPeiDb ? mPcdDatabase->PeiDb.Init.LocalTokenNumberTable : \r
mPcdDatabase->DxeDb.Init.LocalTokenNumberTable;\r
}\r
\r
\r
-\r
+STATIC\r
SKU_ID *\r
GetSkuIdArray (\r
IN UINTN LocalTokenNumberTableIdx,\r
}\r
\r
\r
-\r
+STATIC\r
UINTN\r
GetSizeTableIndexA (\r
IN UINTN LocalTokenNumberTableIdx,\r
\r
\r
\r
-\r
+STATIC\r
UINTN\r
GetSizeTableIndex (\r
IN UINTN LocalTokenNumberTableIdx,\r
DYNAMICEX_MAPPING *ExMapTable;\r
UINTN i;\r
BOOLEAN Found;\r
- \r
+ BOOLEAN PeiExMapTableEmpty;\r
+\r
if (!FeaturePcdGet (PcdPeiPcdDatabaseTraverseEnabled)) {\r
return EFI_UNSUPPORTED;\r
}\r
- \r
+\r
+ PeiExMapTableEmpty = PEI_EXMAP_TABLE_EMPTY;\r
+\r
if (Guid == NULL) {\r
if (*TokenNumber > PEI_NEX_TOKEN_NUMBER) {\r
return EFI_NOT_FOUND;\r
}\r
return EFI_SUCCESS;\r
} else {\r
- if (PEI_EXMAP_TABLE_EMPTY) {\r
+ if (PeiExMapTableEmpty) {\r
*TokenNumber = PCD_INVALID_TOKEN_NUMBER;\r
return EFI_SUCCESS;\r
}\r
DYNAMICEX_MAPPING *ExMapTable;\r
UINTN i;\r
BOOLEAN Found;\r
+ BOOLEAN PeiExMapTableEmpty;\r
\r
if (!FeaturePcdGet (PcdPeiPcdDatabaseTraverseEnabled)) {\r
return EFI_UNSUPPORTED;\r
\r
ASSERT (Guid != NULL);\r
\r
- if (PEI_EXMAP_TABLE_EMPTY) {\r
+ PeiExMapTableEmpty = PEI_EXMAP_TABLE_EMPTY;\r
+\r
+ if (PeiExMapTableEmpty) {\r
if (*Guid != NULL) {\r
return EFI_NOT_FOUND;\r
} else {\r
@retval EFI_SUCCESS Operation successful.\r
@retval EFI_NOT_FOUND Variablel not found.\r
--*/\r
+STATIC\r
EFI_STATUS\r
GetHiiVariable (\r
IN CONST EFI_GUID *VariableGuid,\r
\r
}\r
\r
-\r
+STATIC\r
UINT32\r
GetSkuEnabledTokenNumber (\r
UINT32 LocalTokenNumber,\r
\r
\r
\r
-\r
+STATIC\r
VOID\r
InvokeCallbackOnSet (\r
UINTN ExTokenNumber,\r
}\r
\r
\r
-\r
+STATIC\r
SKU_ID *\r
GetSkuIdArray (\r
IN UINTN LocalTokenNumberTableIdx,\r
}\r
\r
\r
-\r
+STATIC\r
UINTN\r
GetSizeTableIndex (\r
IN UINTN LocalTokenNumberTableIdx,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
UINT32\r
ReverseBits (\r
UINT32 Value\r
//\r
// Worker Functions\r
//\r
+STATIC\r
VOID\r
RuntimeDriverCalculateEfiHdrCrc (\r
IN OUT EFI_TABLE_HEADER *Hdr\r
return EFI_NOT_FOUND;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
RuntimeDriverConvertInternalPointer (\r
IN OUT VOID **ConvertAddress\r
@retval !NULL Point to buffer of record.\r
\r
**/\r
+STATIC\r
DATAHUB_STATUSCODE_RECORD *\r
AcquireRecordBuffer (\r
VOID\r
@return NULL the FIFO of record is empty.\r
\r
**/\r
+STATIC\r
DATAHUB_STATUSCODE_RECORD *\r
RetrieveRecord (\r
VOID\r
@param Context Context of the event.\r
\r
**/\r
+STATIC\r
VOID\r
EFIAPI\r
LogDataHubEventCallBack (\r
@return Value returned in SAL_RETURN_REGS\r
\r
--*/\r
+STATIC\r
SAL_RETURN_REGS\r
EFIAPI\r
ReportEsalServiceEntry (\r
\r
**/\r
\r
+#include "DxeStatusCode.h"\r
+\r
STATIC\r
EFI_SERIAL_IO_PROTOCOL *mSerialIoProtocol;\r
\r
\r
**/\r
\r
+#include "PeiStatusCode.h"\r
+\r
/**\r
Create one memory status code GUID'ed HOB, use PacketIndex \r
to identify the packet.\r
@return Always return pointer of memory status code packet.\r
\r
**/\r
+STATIC\r
MEMORY_STATUSCODE_PACKET_HEADER *\r
CreateMemoryStatusCodePacket (\r
UINT16 PacketIndex\r
\r
**/\r
\r
+#include "PeiStatusCode.h"\r
+\r
/**\r
Convert status code value and extended data to readable ASCII string, send string to serial I/O device.\r
\r
EFI_GUID mFormSetGuid = FORMSET_GUID;\r
EFI_GUID mStringPackGuid = STRING_PACK_GUID; \r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
DriverCallback (\r
\r
if (Narrow) {\r
for (Value = 0; Value != Count; Value++) {\r
- *GlyphBuffer[Location + Value] |= GlobalData->NarrowGlyphs[Character].GlyphCol1[Value];\r
+ *GlyphBuffer[Location + Value] = (UINT8) (*GlyphBuffer[Location + Value] |\r
+ GlobalData->NarrowGlyphs[Character].GlyphCol1[Value]);\r
}\r
\r
Attributes = GlobalData->NarrowGlyphs[Character].Attributes & EFI_GLYPH_NON_SPACING;\r
} else {\r
for (Value = 0; Value != Count; Value++) {\r
- *GlyphBuffer[Location + Value] |= GlobalData->WideGlyphs[Character].GlyphCol1[Value];\r
- *GlyphBuffer[Location + Value + Count] |= GlobalData->WideGlyphs[Character].GlyphCol2[Value];\r
+ *GlyphBuffer[Location + Value] = (UINT8) (*GlyphBuffer[Location + Value] | \r
+ GlobalData->WideGlyphs[Character].GlyphCol1[Value]);\r
+ *GlyphBuffer[Location + Value + Count] = (UINT8) (*GlyphBuffer[Location + Value + Count] |\r
+ GlobalData->WideGlyphs[Character].GlyphCol2[Value]);\r
}\r
\r
Attributes = GlobalData->WideGlyphs[Character].Attributes & EFI_GLYPH_NON_SPACING;\r
\r
#include "HiiDatabase.h"\r
\r
+STATIC\r
CHAR16*\r
Ascii2Unicode (\r
OUT CHAR16 *UnicodeStr,\r
}\r
}\r
\r
+STATIC\r
CHAR8*\r
Unicode2Ascii (\r
OUT CHAR8 *AsciiStr,\r
}\r
}\r
\r
+STATIC\r
VOID\r
ExtractDevicePathData (\r
IN EFI_HII_DATA_TABLE *DataTable,\r
*ExportBufferPtr = ExportBuffer;\r
}\r
\r
+STATIC\r
VOID\r
ExtractVariableData (\r
IN OUT EFI_HII_DATA_TABLE *DataTable,\r
&gEfiFormCallbackProtocolGuid,\r
(VOID *) &FormCallback\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
}\r
//\r
// Since we have a "Setup" variable that wasn't specified by a variable op-code\r
&TempValue,\r
ExportBuffer\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
} else {\r
Status = gRT->GetVariable (\r
(CHAR16 *) SETUP_MAP_NAME,\r
&TempValue,\r
ExportBuffer\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
}\r
\r
ExportBuffer = (UINT8 *) (UINTN) (((UINTN) ExportBuffer) + TempValue);\r
&TempValue,\r
ExportBuffer\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
} else {\r
Status = gRT->GetVariable (\r
String,\r
&TempValue,\r
ExportBuffer\r
);\r
+ ASSERT_EFI_ERROR (Status);\r
}\r
\r
ExportBuffer = (UINT8 *) (UINTN) (((UINTN) ExportBuffer) + TempValue);\r
UINT8 *ExportBuffer;\r
EFI_HII_EXPORT_TABLE *ExportTable;\r
EFI_HII_DATA_TABLE *DataTable;\r
- BOOLEAN InsufficientSize;\r
BOOLEAN VariableExist;\r
UINT16 NumberOfHiiDataTables;\r
UINTN SizeNeeded;\r
FormPack = NULL;\r
RawData = NULL;\r
PackageInstance = NULL;\r
- InsufficientSize = FALSE;\r
NumberOfHiiDataTables = 0;\r
VariableSize = 0;\r
TempValue = 0;\r
\r
--*/\r
{\r
- EFI_HII_GLOBAL_DATA *GlobalData;\r
EFI_HII_HANDLE_DATABASE *Database;\r
EFI_HII_DATA *HiiData;\r
UINTN HandleCount;\r
\r
HiiData = EFI_HII_DATA_FROM_THIS (This);\r
\r
- GlobalData = HiiData->GlobalData;\r
-\r
Database = HiiData->DatabaseHead;\r
\r
if (Database == NULL) {\r
EFI_HII_DATA *HiiData;\r
EFI_HII_HANDLE_DATABASE *HandleDatabase;\r
EFI_HII_STRING_PACK *StringPack;\r
- EFI_HII_STRING_PACK *Location;\r
RELOFST Token;\r
UINT32 Length;\r
\r
StringPack = (EFI_HII_STRING_PACK *) (&StringPackageInstance->IfrData);\r
}\r
\r
- Location = StringPack;\r
-\r
//\r
// Remember that the string packages are formed into contiguous blocks of language data.\r
//\r
UINT32 TotalTokenNumber;\r
UINT8 *Local;\r
EFI_NARROW_GLYPH *NarrowGlyph;\r
- EFI_WIDE_GLYPH *WideGlyph;\r
\r
if (Packages->NumberOfPackages == 0 || This == NULL) {\r
return EFI_INVALID_PARAMETER;\r
// we go down one level deeper, increment the handle value that will be passed back.\r
//\r
if (Database->Handle >= *Handle) {\r
- *Handle = Database->Handle + 1;\r
+ *Handle = (EFI_HII_HANDLE) (Database->Handle + 1);\r
}\r
}\r
\r
Local = (UINT8 *) (&FontPack->NumberOfWideGlyphs + sizeof (UINT8)) +\r
(sizeof (EFI_NARROW_GLYPH)) *\r
NumNarrowGlyphs;\r
- WideGlyph = (EFI_WIDE_GLYPH *) Local;\r
CopyMem (\r
&Member,\r
(UINTN *) (Local + sizeof (EFI_WIDE_GLYPH) * Count),\r
CopyMem (&Unicode, &GlobalData->WideGlyphs[Member].UnicodeWeight, sizeof (UINT16));\r
if (Unicode == 0) {\r
Local = (UINT8*)(&FontPack->NumberOfWideGlyphs + sizeof(UINT8)) + (sizeof(EFI_NARROW_GLYPH)) * NumNarrowGlyphs;\r
- WideGlyph = (EFI_WIDE_GLYPH *) Local;\r
CopyMem (\r
&GlobalData->WideGlyphs[Member],\r
(UINTN *) (Local + sizeof (EFI_WIDE_GLYPH) * Count),\r
EFI_HII_DATA *HiiData;\r
EFI_HII_HANDLE_DATABASE *HandleDatabase;\r
EFI_HII_HANDLE_DATABASE *PreviousHandleDatabase;\r
- UINTN Count;\r
\r
if (This == NULL || Handle == 0) {\r
return EFI_INVALID_PARAMETER;\r
//\r
PreviousHandleDatabase = HandleDatabase;\r
\r
- for (Count = 0; HandleDatabase != NULL; HandleDatabase = HandleDatabase->NextHandleDatabase) {\r
+ for (; HandleDatabase != NULL; HandleDatabase = HandleDatabase->NextHandleDatabase) {\r
//\r
// Match the numeric value with the database entry - if matched,\r
// free the package instance and apply fix-up to database linked list\r
\r
#include "HiiDatabase.h"\r
\r
+STATIC\r
VOID\r
AsciiToUnicode (\r
IN UINT8 *Lang,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
HiiNewString2 (\r
IN EFI_HII_PROTOCOL *This,\r
&NewString,\r
TRUE\r
);\r
-\r
+ ASSERT_EFI_ERROR (Status);\r
}\r
\r
gBS->FreePool (LangCodes);\r
mBooleanEvaluationStackEnd = NewStack + StackSizeInBoolean;\r
}\r
\r
+STATIC\r
VOID\r
InitializeBooleanEvaluator (\r
VOID\r
return ReturnValue;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
GrowBooleanExpression (\r
IN EFI_INCONSISTENCY_DATA *InconsistentTags,\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
VOID\r
CreateBooleanExpression (\r
IN EFI_FILE_FORM_TAGS *FileFormTags,\r
GrowBooleanExpression (&FakeInconsistentTags, BooleanExpression, BooleanExpressionLength);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
BooleanVariableWorker (\r
IN CHAR16 *VariableName,\r
return Status;\r
}\r
\r
+STATIC\r
UINT8\r
PredicateIfrType (\r
IN EFI_INCONSISTENCY_DATA *Iterator\r
return 0x2;\r
}\r
\r
+STATIC\r
VOID\r
PostOrderEvaluate (\r
IN EFI_FILE_FORM_TAGS *FileFormTags,\r
break;\r
case EFI_IFR_NOT_OP:\r
Operator = PopBool (StackPtr);\r
- PushBool (StackPtr, !Operator);\r
+ PushBool (StackPtr, (BOOLEAN) (!Operator));\r
break;\r
\r
case EFI_IFR_SUPPRESS_IF_OP:\r
return Operator;\r
}\r
\r
- return FALSE;\r
+ goto Done;\r
}\r
\r
Iterator++;\r
}\r
\r
+Done:\r
return FALSE;\r
}\r
)\r
{\r
EFI_STATUS Status;\r
- UINTN PasswordSize;\r
UINTN ScreenSize;\r
CHAR16 NullCharacter;\r
CHAR16 Space[2];\r
UINTN DimensionsWidth;\r
UINTN DimensionsHeight;\r
EFI_IFR_DATA_ENTRY *DataEntry;\r
+ UINTN WidthOfString;\r
\r
DimensionsWidth = gScreenDimensions.RightColumn - gScreenDimensions.LeftColumn;\r
DimensionsHeight = gScreenDimensions.BottomRow - gScreenDimensions.TopRow;\r
\r
VariableDefinition = NULL;\r
- PasswordSize = 0;\r
NullCharacter = CHAR_NULL;\r
Space[0] = L' ';\r
Space[1] = CHAR_NULL;\r
// Upon error, we will likely receive a string to print out\r
// Display error popup\r
//\r
- ScreenSize = EFI_MAX(GetStringWidth (Packet->String), GetStringWidth (gPressEnter)) / 2;\r
+ WidthOfString = GetStringWidth (Packet->String);\r
+ ScreenSize = EFI_MAX(WidthOfString, GetStringWidth (gPressEnter)) / 2;\r
CreatePopUp (ScreenSize, 4, &NullCharacter, Packet->String, gPressEnter, &NullCharacter);\r
gBS->FreePool (Packet);\r
\r
} while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);\r
}\r
\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_NOT_READY;\r
+ Status = EFI_NOT_READY;\r
+ goto Done;\r
}\r
}\r
\r
if (Confirmation) {\r
if (EFI_ERROR (Status)) {\r
if (Packet->String == NULL) {\r
- ScreenSize = EFI_MAX (GetStringWidth (gConfirmError), GetStringWidth (gPressEnter)) / 2;\r
+ WidthOfString = GetStringWidth (gConfirmError);\r
+ ScreenSize = EFI_MAX (WidthOfString, GetStringWidth (gPressEnter)) / 2;\r
CreatePopUp (ScreenSize, 4, &NullCharacter, gConfirmError, gPressEnter, &NullCharacter);\r
} else {\r
- ScreenSize = EFI_MAX (GetStringWidth (Packet->String), GetStringWidth (gPressEnter)) / 2;\r
+ WidthOfString = GetStringWidth (Packet->String);\r
+ ScreenSize = EFI_MAX (WidthOfString, GetStringWidth (gPressEnter)) / 2;\r
CreatePopUp (ScreenSize, 4, &NullCharacter, Packet->String, gPressEnter, &NullCharacter);\r
gBS->FreePool (Packet);\r
}\r
Status = WaitForKeyStroke (&Key);\r
\r
if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_NOT_READY;\r
+ Status = EFI_NOT_READY;\r
+ goto Done;\r
}\r
} while (1);\r
} else {\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_NOT_READY;\r
+ Status = EFI_NOT_READY;\r
+ goto Done;\r
}\r
} else {\r
//\r
}\r
\r
if (PromptForPassword && EFI_ERROR (Status)) {\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_DEVICE_ERROR;\r
+ Status = EFI_DEVICE_ERROR;\r
+ goto Done;\r
}\r
}\r
}\r
// Otherwise, kick and error box, and return an error\r
//\r
if (StrCmp (TempString, TempString2) == 0) {\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
+ goto Done;\r
} else {\r
- ScreenSize = EFI_MAX (GetStringWidth (gConfirmError), GetStringWidth (gPressEnter)) / 2;\r
+ WidthOfString = GetStringWidth (gConfirmError);\r
+ ScreenSize = EFI_MAX (WidthOfString, GetStringWidth (gPressEnter)) / 2;\r
CreatePopUp (ScreenSize, 4, &NullCharacter, gConfirmError, gPressEnter, &NullCharacter);\r
StringPtr[0] = CHAR_NULL;\r
do {\r
Status = WaitForKeyStroke (&Key);\r
if (Key.UnicodeChar == CHAR_CARRIAGE_RETURN) {\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_DEVICE_ERROR;\r
+ Status = EFI_DEVICE_ERROR;\r
+ goto Done;\r
}\r
} while (1);\r
}\r
//\r
// I was asked for a password, return it back in StringPtr\r
//\r
- gBS->FreePool (TempString);\r
- gBS->FreePool (TempString2);\r
- return EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
+ goto Done;\r
} else {\r
//\r
// If the two passwords were not the same kick an error popup\r
} while (!ConfirmationComplete);\r
\r
} while (1);\r
+\r
+Done:\r
gBS->FreePool (TempString);\r
gBS->FreePool (TempString2);\r
return Status;\r
CHAR16 NullCharacter;\r
CHAR16 *StringPtr;\r
EFI_FILE_FORM_TAGS *FileFormTags;\r
- EFI_STATUS Status;\r
EFI_VARIABLE_DEFINITION *VariableDefinition;\r
UINTN Loop;\r
\r
goto TheKey2;\r
}\r
\r
- Status = WaitForKeyStroke (&Key);\r
+ WaitForKeyStroke (&Key);\r
\r
TheKey2:\r
switch (Key.UnicodeChar) {\r
CreatePopUp (GetStringWidth (StringPtr) / 2, 3, &NullCharacter, StringPtr, &NullCharacter);\r
\r
do {\r
- Status = WaitForKeyStroke (&Key);\r
+ WaitForKeyStroke (&Key);\r
\r
switch (Key.UnicodeChar) {\r
\r
OUT UINT16 *KeyValue\r
)\r
{\r
- EFI_STATUS Status;\r
EFI_INPUT_KEY Key;\r
UINTN Index;\r
UINTN TempIndex;\r
UINTN MenuLinesInView;\r
UINTN PopUpWidth;\r
CHAR16 Character;\r
- UINTN FirstOption;\r
BOOLEAN FirstOptionFoundFlag;\r
INT32 SavedAttribute;\r
EFI_TAG TagBackup;\r
BOOLEAN ShowDownArrow;\r
BOOLEAN ShowUpArrow;\r
UINTN DimensionsWidth;\r
- UINTN DimensionsHeight;\r
\r
DimensionsWidth = gScreenDimensions.RightColumn - gScreenDimensions.LeftColumn;\r
- DimensionsHeight = gScreenDimensions.BottomRow - gScreenDimensions.TopRow;\r
\r
TempValue = 0;\r
TempIndex = 0;\r
Count = 0;\r
PopUpWidth = 0;\r
\r
- FirstOption = MenuOption->TagIndex;\r
FirstOptionFoundFlag = FALSE;\r
\r
StringPtr = AllocateZeroPool ((gOptionBlockWidth + 1) * 2);\r
if (MenuOption->Tags[Index].Operand == EFI_IFR_ONE_OF_OPTION_OP &&\r
!MenuOption->Tags[Index].Suppress) {\r
if (!FirstOptionFoundFlag) {\r
- FirstOption = Index;\r
FirstOptionFoundFlag = TRUE;\r
}\r
\r
KeyInitialized = TRUE;\r
}\r
\r
- Status = WaitForKeyStroke (&Key);\r
+ WaitForKeyStroke (&Key);\r
\r
TheKey:\r
switch (Key.UnicodeChar) {\r
*Value = TempValue;\r
}\r
\r
- gST->ConOut->SetAttribute (gST->ConOut, SavedAttribute);\r
- return EFI_SUCCESS;\r
+ goto Done;\r
\r
default:\r
break;\r
}\r
} while (1);\r
\r
+Done:\r
gST->ConOut->SetAttribute (gST->ConOut, SavedAttribute);\r
return EFI_SUCCESS;\r
}\r
| ^"=Move Highlight <Spacebar> Toggles Checkbox Esc=Discard Changes |\r
+------------------------------------------------------------------------------+\r
*/\r
+STATIC\r
UI_MENU_OPTION *\r
DisplayForm (\r
OUT UI_MENU_OPTION *Selection,\r
\r
}\r
\r
+STATIC\r
VOID\r
ExtractFormHandle (\r
IN UI_MENU_OPTION *Selection,\r
return ;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
UpdateNewTagData (\r
IN UINT8 *FormData,\r
return Status;\r
}\r
\r
+STATIC\r
VOID\r
ExtractDynamicFormHandle (\r
IN UI_MENU_OPTION *Selection,\r
#ifndef _PRINT_H_\r
#define _PRINT_H_\r
\r
+#include "Setup.h"\r
+\r
#define LEFT_JUSTIFY 0x01\r
#define PREFIX_SIGN 0x02\r
#define PREFIX_BLANK 0x04\r
return Status;\r
}\r
\r
+STATIC\r
VOID\r
AdjustNvMap (\r
IN EFI_FILE_FORM_TAGS *FileFormTags,\r
VOID\r
);\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
SendForm (\r
\r
--*/\r
{\r
- EFI_FORM_CONFIGURATION_DATA *FormData;\r
EFI_FORM_CALLBACK_PROTOCOL *FormCallback;\r
EFI_FILE_FORM_TAGS *FileFormTagsHead;\r
UI_MENU_OPTION *Selection;\r
ASSERT (gPreviousValue != NULL);\r
}\r
\r
- FormData = EFI_FORM_DATA_FROM_THIS (This);\r
Callback = FALSE;\r
FormCallback = NULL;\r
\r
(*NumberOfTags)++;\r
}\r
\r
+STATIC\r
VOID\r
AddNextInconsistentTag (\r
IN OUT EFI_INCONSISTENCY_DATA **InconsistentTagsPtr\r
return Buffer;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
PopulateHomePage (\r
IN UINTN NumberOfIfrImages,\r
}\r
}\r
\r
+STATIC\r
VOID\r
UpdateDateAndTime (\r
VOID\r
UINTN Start;\r
UINTN Top;\r
UINTN Index;\r
- EFI_STATUS Status;\r
BOOLEAN SelectionComplete;\r
UINTN InputOffset;\r
UINTN CurrentAttribute;\r
// Take the first key typed and report it back?\r
//\r
if (HotKey) {\r
- Status = WaitForKeyStroke (&Key);\r
+ WaitForKeyStroke (&Key);\r
CopyMem (KeyValue, &Key, sizeof (EFI_INPUT_KEY));\r
\r
} else {\r
do {\r
- Status = WaitForKeyStroke (&Key);\r
+ WaitForKeyStroke (&Key);\r
\r
switch (Key.UnicodeChar) {\r
case CHAR_NULL:\r
return ;\r
}\r
\r
+STATIC\r
BOOLEAN\r
SelectionsAreValid (\r
IN UI_MENU_OPTION *MenuOption,\r
EFI_FILE_FORM_TAGS *FileFormTags;\r
CHAR16 *StringPtr;\r
CHAR16 NullCharacter;\r
- EFI_STATUS Status;\r
UINTN Index;\r
UINT16 *NvRamMap;\r
STRING_REF PopUp;\r
CreatePopUp (GetStringWidth (StringPtr) / 2, 3, &NullCharacter, StringPtr, &NullCharacter);\r
\r
do {\r
- Status = WaitForKeyStroke (&Key);\r
+ WaitForKeyStroke (&Key);\r
\r
switch (Key.UnicodeChar) {\r
\r
}\r
}\r
\r
+STATIC\r
VOID\r
UpdateOptionSkipLines (\r
IN EFI_IFR_DATA_ARRAY *PageData,\r
\r
}\r
\r
+STATIC\r
VARIABLE_HEADER *\r
GetNextVariablePtr (\r
IN VARIABLE_HEADER *Variable\r
return (VARIABLE_HEADER *) ((UINTN) GET_VARIABLE_DATA_PTR (Variable) + Variable->DataSize + GET_PAD_SIZE (Variable->DataSize));\r
}\r
\r
+STATIC\r
BOOLEAN\r
EFIAPI\r
IsValidVariableHeader (\r
return TRUE;\r
}\r
\r
+STATIC\r
VARIABLE_STORE_STATUS\r
EFIAPI\r
GetVariableStoreStatus (\r
}\r
}\r
\r
+STATIC\r
EFI_STATUS\r
CompareWithValidVariable (\r
IN VARIABLE_HEADER *Variable,\r
return EFI_NOT_FOUND;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
FindVariable (\r
//\r
extern ESAL_VARIABLE_GLOBAL *mVariableModuleGlobal;\r
\r
+STATIC\r
SAL_RETURN_REGS\r
EsalVariableCommonEntry (\r
IN UINT64 FunctionId,\r
//\r
ESAL_VARIABLE_GLOBAL *mVariableModuleGlobal;\r
\r
+STATIC\r
UINT32\r
EFIAPI\r
ArrayLength (\r
return (Count * 2) + 2;\r
}\r
\r
+STATIC\r
BOOLEAN\r
EFIAPI\r
IsValidVariableHeader (\r
return TRUE;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
UpdateVariableStore (\r
return EFI_SUCCESS;\r
}\r
\r
+STATIC\r
VARIABLE_STORE_STATUS\r
EFIAPI\r
GetVariableStoreStatus (\r
}\r
}\r
\r
+STATIC\r
UINT8 *\r
EFIAPI\r
GetVariableDataPtr (\r
return (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (Variable) + Variable->NameSize + GET_PAD_SIZE (Variable->NameSize));\r
}\r
\r
+STATIC\r
VARIABLE_HEADER *\r
EFIAPI\r
GetNextVariablePtr (\r
return (VARIABLE_HEADER *) ((UINTN) GetVariableDataPtr (Variable) + Variable->DataSize + GET_PAD_SIZE (Variable->DataSize));\r
}\r
\r
+STATIC\r
VARIABLE_HEADER *\r
EFIAPI\r
GetEndPointer (\r
return (VARIABLE_HEADER *) ((UINTN) VarStoreHeader + VarStoreHeader->Size);\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
Reclaim (\r
return Status;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
EFIAPI\r
FindVariable (\r
Variable.StartPtr = (VARIABLE_HEADER *) ((UINTN) (Global->VolatileVariableBase + sizeof (VARIABLE_STORE_HEADER)));\r
Variable.EndPtr = (VARIABLE_HEADER *) GetEndPointer ((VARIABLE_STORE_HEADER *) ((UINTN) Global->VolatileVariableBase));\r
} else {\r
- return EFI_NOT_FOUND;\r
+ goto Error;\r
}\r
\r
Variable.CurrPtr = Variable.StartPtr;\r
Variable.CurrPtr = GetNextVariablePtr (Variable.CurrPtr);\r
}\r
\r
+Error:\r
return EFI_NOT_FOUND;\r
}\r
\r
return Status;\r
}\r
\r
+STATIC\r
EFI_STATUS\r
GetLbaAndOffsetByAddress (\r
IN EFI_PHYSICAL_ADDRESS Address,\r
//\r
// Worker Functions\r
//\r
+STATIC\r
VOID\r
EFIAPI\r
WatchdogTimerDriverExpires (\r