Update DevicePath driver to reflect several device path update in UEFI spec: SATA, memory, iScsi, Firmware volume, Firmware volume File, etc
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3915 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@ -212,7 +212,7 @@ DevPathToTextPci (
|
||||
PCI_DEVICE_PATH *Pci;
|
||||
|
||||
Pci = DevPath;
|
||||
CatPrint (Str, L"Pci(%x,%x)", Pci->Function, Pci->Device);
|
||||
CatPrint (Str, L"Pci(0x%x,0x%x)", Pci->Device, Pci->Function);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -227,7 +227,7 @@ DevPathToTextPccard (
|
||||
PCCARD_DEVICE_PATH *Pccard;
|
||||
|
||||
Pccard = DevPath;
|
||||
CatPrint (Str, L"PcCard(%x)", Pccard->FunctionNumber);
|
||||
CatPrint (Str, L"PcCard(0x%x)", Pccard->FunctionNumber);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -244,7 +244,8 @@ DevPathToTextMemMap (
|
||||
MemMap = DevPath;
|
||||
CatPrint (
|
||||
Str,
|
||||
L"MemoryMapped(%lx,%lx)",
|
||||
L"MemoryMapped(0x%x,0x%lx,0x%lx)",
|
||||
MemMap->MemoryType,
|
||||
MemMap->StartingAddress,
|
||||
MemMap->EndingAddress
|
||||
);
|
||||
@ -262,6 +263,7 @@ DevPathToTextVendor (
|
||||
VENDOR_DEVICE_PATH *Vendor;
|
||||
CHAR16 *Type;
|
||||
UINTN Index;
|
||||
UINTN DataLength;
|
||||
UINT32 FlowControlMap;
|
||||
UINT16 Info;
|
||||
|
||||
@ -309,7 +311,7 @@ DevPathToTextVendor (
|
||||
} else if (CompareGuid (&Vendor->Guid, &mEfiDevicePathMessagingSASGuid)) {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"SAS(%lx,%lx,%x,",
|
||||
L"SAS(0x%lx,0x%lx,0x%x,",
|
||||
((SAS_DEVICE_PATH *) Vendor)->SasAddress,
|
||||
((SAS_DEVICE_PATH *) Vendor)->Lun,
|
||||
((SAS_DEVICE_PATH *) Vendor)->RelativeTargetPort
|
||||
@ -328,22 +330,17 @@ DevPathToTextVendor (
|
||||
if ((Info & 0x0f) == 1) {
|
||||
CatPrint (Str, L"0,");
|
||||
} else {
|
||||
CatPrint (Str, L"%x,", (Info >> 8) & 0xff);
|
||||
CatPrint (Str, L"0x%x,", (Info >> 8) & 0xff);
|
||||
}
|
||||
} else {
|
||||
CatPrint (Str, L"0,0,0,0,");
|
||||
}
|
||||
|
||||
CatPrint (Str, L"%x)", ((SAS_DEVICE_PATH *) Vendor)->Reserved);
|
||||
CatPrint (Str, L"0x%x)", ((SAS_DEVICE_PATH *) Vendor)->Reserved);
|
||||
return ;
|
||||
} else if (CompareGuid (&Vendor->Guid, &gEfiDebugPortProtocolGuid)) {
|
||||
CatPrint (Str, L"DebugPort()");
|
||||
return ;
|
||||
} else {
|
||||
return ;
|
||||
//
|
||||
// reserved
|
||||
//
|
||||
}
|
||||
}
|
||||
break;
|
||||
@ -357,9 +354,13 @@ DevPathToTextVendor (
|
||||
break;
|
||||
}
|
||||
|
||||
CatPrint (Str, L"Ven%s(%g,", Type, &Vendor->Guid);
|
||||
for (Index = 0; Index < DevicePathNodeLength (&Vendor->Header) - sizeof (VENDOR_DEVICE_PATH); Index++) {
|
||||
CatPrint (Str, L"%02x", ((VENDOR_DEVICE_PATH_WITH_DATA *) Vendor)->VendorDefinedData[Index]);
|
||||
DataLength = DevicePathNodeLength (&Vendor->Header) - sizeof (VENDOR_DEVICE_PATH);
|
||||
CatPrint (Str, L"Ven%s(%g", Type, &Vendor->Guid);
|
||||
if (DataLength != 0) {
|
||||
CatPrint (Str, L",");
|
||||
for (Index = 0; Index < DataLength; Index++) {
|
||||
CatPrint (Str, L"%02x", ((VENDOR_DEVICE_PATH_WITH_DATA *) Vendor)->VendorDefinedData[Index]);
|
||||
}
|
||||
}
|
||||
|
||||
CatPrint (Str, L")");
|
||||
@ -379,7 +380,7 @@ DevPathToTextController (
|
||||
Controller = DevPath;
|
||||
CatPrint (
|
||||
Str,
|
||||
L"Ctrl(%x)",
|
||||
L"Ctrl(0x%x)",
|
||||
Controller->ControllerNumber
|
||||
);
|
||||
}
|
||||
@ -397,111 +398,158 @@ DevPathToTextAcpi (
|
||||
|
||||
Acpi = DevPath;
|
||||
if ((Acpi->HID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) {
|
||||
if (AllowShortcuts) {
|
||||
switch (EISA_ID_TO_NUM (Acpi->HID)) {
|
||||
case 0x0a03:
|
||||
CatPrint (Str, L"PciRoot(%x)", Acpi->UID);
|
||||
break;
|
||||
switch (EISA_ID_TO_NUM (Acpi->HID)) {
|
||||
case 0x0a03:
|
||||
CatPrint (Str, L"PciRoot(0x%x)", Acpi->UID);
|
||||
break;
|
||||
|
||||
case 0x0604:
|
||||
CatPrint (Str, L"Floppy(%x)", Acpi->UID);
|
||||
break;
|
||||
case 0x0604:
|
||||
CatPrint (Str, L"Floppy(0x%x)", Acpi->UID);
|
||||
break;
|
||||
|
||||
case 0x0301:
|
||||
CatPrint (Str, L"Keyboard(%x)", Acpi->UID);
|
||||
break;
|
||||
case 0x0301:
|
||||
CatPrint (Str, L"Keyboard(0x%x)", Acpi->UID);
|
||||
break;
|
||||
|
||||
case 0x0501:
|
||||
CatPrint (Str, L"Serial(%x)", Acpi->UID);
|
||||
break;
|
||||
case 0x0501:
|
||||
CatPrint (Str, L"Serial(0x%x)", Acpi->UID);
|
||||
break;
|
||||
|
||||
case 0x0401:
|
||||
CatPrint (Str, L"ParallelPort(%x)", Acpi->UID);
|
||||
break;
|
||||
case 0x0401:
|
||||
CatPrint (Str, L"ParallelPort(0x%x)", Acpi->UID);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return ;
|
||||
default:
|
||||
CatPrint (Str, L"Acpi(PNP%04x,0x%x)", EISA_ID_TO_NUM (Acpi->HID), Acpi->UID);
|
||||
break;
|
||||
}
|
||||
|
||||
CatPrint (Str, L"Acpi(PNP%04x,%x)", EISA_ID_TO_NUM (Acpi->HID), Acpi->UID);
|
||||
} else {
|
||||
CatPrint (Str, L"Acpi(%08x,%x)", Acpi->HID, Acpi->UID);
|
||||
CatPrint (Str, L"Acpi(0x%08x,0x%x)", Acpi->HID, Acpi->UID);
|
||||
}
|
||||
}
|
||||
|
||||
#define NextStrA(a) ((UINT8 *) (((UINT8 *) (a)) + AsciiStrLen ((CHAR8 *) (a)) + 1))
|
||||
STATIC
|
||||
VOID
|
||||
EisaIdToText (
|
||||
IN UINT32 EisaId,
|
||||
IN OUT CHAR16 *Text
|
||||
)
|
||||
{
|
||||
CHAR16 PnpIdStr[17];
|
||||
|
||||
//
|
||||
//UnicodeSPrint ("%X", 0x0a03) => "0000000000000A03"
|
||||
//
|
||||
UnicodeSPrint (PnpIdStr, 17 * 2, L"%X", EisaId >> 16);
|
||||
|
||||
UnicodeSPrint (
|
||||
Text,
|
||||
0,
|
||||
L"%c%c%c%s",
|
||||
'@' + ((EisaId >> 10) & 0x1f),
|
||||
'@' + ((EisaId >> 5) & 0x1f),
|
||||
'@' + ((EisaId >> 0) & 0x1f),
|
||||
PnpIdStr + (16 - 4)
|
||||
);
|
||||
}
|
||||
|
||||
STATIC
|
||||
VOID
|
||||
DevPathToTextExtAcpi (
|
||||
DevPathToTextAcpiEx (
|
||||
IN OUT POOL_PRINT *Str,
|
||||
IN VOID *DevPath,
|
||||
IN BOOLEAN DisplayOnly,
|
||||
IN BOOLEAN AllowShortcuts
|
||||
)
|
||||
{
|
||||
ACPI_EXTENDED_HID_DEVICE_PATH_WITH_STR *AcpiExt;
|
||||
UINT8 *NextString;
|
||||
ACPI_EXTENDED_HID_DEVICE_PATH *AcpiEx;
|
||||
CHAR8 *HIDStr;
|
||||
CHAR8 *UIDStr;
|
||||
CHAR8 *CIDStr;
|
||||
CHAR16 HIDText[11];
|
||||
CHAR16 CIDText[11];
|
||||
|
||||
AcpiExt = DevPath;
|
||||
AcpiEx = DevPath;
|
||||
HIDStr = (CHAR8 *) (((UINT8 *) AcpiEx) + sizeof (ACPI_EXTENDED_HID_DEVICE_PATH));
|
||||
UIDStr = HIDStr + AsciiStrLen (HIDStr) + 1;
|
||||
CIDStr = UIDStr + AsciiStrLen (UIDStr) + 1;
|
||||
|
||||
if (AllowShortcuts) {
|
||||
NextString = NextStrA (AcpiExt->HidUidCidStr);
|
||||
if ((*(AcpiExt->HidUidCidStr) == '\0') &&
|
||||
(*(NextStrA (NextString)) == '\0') &&
|
||||
(AcpiExt->UID == 0)
|
||||
) {
|
||||
if ((AcpiExt->HID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"AcpiExp(PNP%04x,%x,%a)",
|
||||
EISA_ID_TO_NUM (AcpiExt->HID),
|
||||
AcpiExt->CID,
|
||||
NextStrA (AcpiExt->HidUidCidStr)
|
||||
);
|
||||
} else {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"AcpiExp(%08x,%x,%a)",
|
||||
AcpiExt->HID,
|
||||
AcpiExt->CID,
|
||||
NextStrA (AcpiExt->HidUidCidStr)
|
||||
);
|
||||
}
|
||||
}
|
||||
return ;
|
||||
}
|
||||
EisaIdToText (AcpiEx->HID, HIDText);
|
||||
EisaIdToText (AcpiEx->CID, CIDText);
|
||||
|
||||
NextString = NextStrA (AcpiExt->HidUidCidStr);
|
||||
NextString = NextStrA (NextString);
|
||||
if ((AcpiExt->HID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) {
|
||||
if ((*HIDStr == '\0') && (*CIDStr == '\0') && (AcpiEx->UID == 0)) {
|
||||
//
|
||||
// use AcpiExp()
|
||||
//
|
||||
CatPrint (
|
||||
Str,
|
||||
L"AcpiEx(PNP%04x,%x,%x,%a,%a,%a)",
|
||||
EISA_ID_TO_NUM (AcpiExt->HID),
|
||||
AcpiExt->CID,
|
||||
AcpiExt->UID,
|
||||
AcpiExt->HidUidCidStr,
|
||||
NextString,
|
||||
NextStrA (AcpiExt->HidUidCidStr)
|
||||
L"AcpiExp(%s,%s,%a)",
|
||||
HIDText,
|
||||
CIDText,
|
||||
UIDStr
|
||||
);
|
||||
} else {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"AcpiEx(%08x,%x,%x,%a,%a,%a)",
|
||||
AcpiExt->HID,
|
||||
AcpiExt->CID,
|
||||
AcpiExt->UID,
|
||||
AcpiExt->HidUidCidStr,
|
||||
NextString,
|
||||
NextStrA (AcpiExt->HidUidCidStr)
|
||||
);
|
||||
if (AllowShortcuts) {
|
||||
//
|
||||
// display only
|
||||
//
|
||||
if (AcpiEx->HID == 0) {
|
||||
CatPrint (Str, L"AcpiEx(%a,", HIDStr);
|
||||
} else {
|
||||
CatPrint (Str, L"AcpiEx(%s,", HIDText);
|
||||
}
|
||||
|
||||
if (AcpiEx->UID == 0) {
|
||||
CatPrint (Str, L"%a,", UIDStr);
|
||||
} else {
|
||||
CatPrint (Str, L"0x%x,", AcpiEx->UID);
|
||||
}
|
||||
|
||||
if (AcpiEx->CID == 0) {
|
||||
CatPrint (Str, L"%a)", CIDStr);
|
||||
} else {
|
||||
CatPrint (Str, L"%s)", CIDText);
|
||||
}
|
||||
} else {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"AcpiEx(%s,%s,0x%x,%a,%a,%a)",
|
||||
HIDText,
|
||||
CIDText,
|
||||
AcpiEx->UID,
|
||||
HIDStr,
|
||||
CIDStr,
|
||||
UIDStr
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
STATIC
|
||||
VOID
|
||||
DevPathToTextAcpiAdr (
|
||||
IN OUT POOL_PRINT *Str,
|
||||
IN VOID *DevPath,
|
||||
IN BOOLEAN DisplayOnly,
|
||||
IN BOOLEAN AllowShortcuts
|
||||
)
|
||||
{
|
||||
ACPI_ADR_DEVICE_PATH *AcpiAdr;
|
||||
UINT16 Index;
|
||||
UINT16 Length;
|
||||
UINT16 AdditionalAdrCount;
|
||||
|
||||
AcpiAdr = DevPath;
|
||||
Length = (UINT16) DevicePathNodeLength ((EFI_DEVICE_PATH_PROTOCOL *) AcpiAdr);
|
||||
AdditionalAdrCount = (UINT16) ((Length - 8) / 4);
|
||||
|
||||
CatPrint (Str, L"AcpiAdr(0x%x", AcpiAdr->ADR);
|
||||
for (Index = 0; Index < AdditionalAdrCount; Index++) {
|
||||
CatPrint (Str, L",0x%x", *(UINT32 *) ((UINT8 *) AcpiAdr + 8 + Index * 4));
|
||||
}
|
||||
CatPrint (Str, L")");
|
||||
}
|
||||
|
||||
STATIC
|
||||
VOID
|
||||
DevPathToTextAtapi (
|
||||
@ -516,11 +564,11 @@ DevPathToTextAtapi (
|
||||
Atapi = DevPath;
|
||||
|
||||
if (DisplayOnly) {
|
||||
CatPrint (Str, L"Ata(%x)", Atapi->Lun);
|
||||
CatPrint (Str, L"Ata(0x%x)", Atapi->Lun);
|
||||
} else {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"Ata(%s,%s,%x)",
|
||||
L"Ata(%s,%s,0x%x)",
|
||||
Atapi->PrimarySecondary ? L"Secondary" : L"Primary",
|
||||
Atapi->SlaveMaster ? L"Slave" : L"Master",
|
||||
Atapi->Lun
|
||||
@ -540,7 +588,7 @@ DevPathToTextScsi (
|
||||
SCSI_DEVICE_PATH *Scsi;
|
||||
|
||||
Scsi = DevPath;
|
||||
CatPrint (Str, L"Scsi(%x,%x)", Scsi->Pun, Scsi->Lun);
|
||||
CatPrint (Str, L"Scsi(0x%x,0x%x)", Scsi->Pun, Scsi->Lun);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -555,7 +603,7 @@ DevPathToTextFibre (
|
||||
FIBRECHANNEL_DEVICE_PATH *Fibre;
|
||||
|
||||
Fibre = DevPath;
|
||||
CatPrint (Str, L"Fibre(%lx,%lx)", Fibre->WWN, Fibre->Lun);
|
||||
CatPrint (Str, L"Fibre(0x%lx,0x%lx)", Fibre->WWN, Fibre->Lun);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -570,7 +618,10 @@ DevPathToText1394 (
|
||||
F1394_DEVICE_PATH *F1394;
|
||||
|
||||
F1394 = DevPath;
|
||||
CatPrint (Str, L"I1394(%lx)", F1394->Guid);
|
||||
//
|
||||
// Guid has format of IEEE-EUI64
|
||||
//
|
||||
CatPrint (Str, L"I1394(%016lx)", F1394->Guid);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -585,7 +636,7 @@ DevPathToTextUsb (
|
||||
USB_DEVICE_PATH *Usb;
|
||||
|
||||
Usb = DevPath;
|
||||
CatPrint (Str, L"USB(%x,%x)", Usb->ParentPortNumber, Usb->InterfaceNumber);
|
||||
CatPrint (Str, L"USB(0x%x,0x%x)", Usb->ParentPortNumber, Usb->InterfaceNumber);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -598,14 +649,30 @@ DevPathToTextUsbWWID (
|
||||
)
|
||||
{
|
||||
USB_WWID_DEVICE_PATH *UsbWWId;
|
||||
CHAR16 *SerialNumberStr;
|
||||
CHAR16 *NewStr;
|
||||
UINT16 Length;
|
||||
|
||||
UsbWWId = DevPath;
|
||||
|
||||
SerialNumberStr = (CHAR16 *) ((UINT8 *) UsbWWId + sizeof (USB_WWID_DEVICE_PATH));
|
||||
Length = (UINT16) ((DevicePathNodeLength ((EFI_DEVICE_PATH_PROTOCOL *) UsbWWId) - sizeof (USB_WWID_DEVICE_PATH)) / sizeof (CHAR16));
|
||||
if (SerialNumberStr [Length - 1] != 0) {
|
||||
//
|
||||
// In case no NULL terminator in SerialNumber, create a new one with NULL terminator
|
||||
//
|
||||
NewStr = AllocateCopyPool ((Length + 1) * sizeof (CHAR16), SerialNumberStr);
|
||||
NewStr [Length] = 0;
|
||||
SerialNumberStr = NewStr;
|
||||
}
|
||||
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbWwid(%x,%x,%x,\"WWID\")",
|
||||
L"UsbWwid(0x%x,0x%x,0x%x,\"%s\")",
|
||||
UsbWWId->VendorId,
|
||||
UsbWWId->ProductId,
|
||||
UsbWWId->InterfaceNumber
|
||||
UsbWWId->InterfaceNumber,
|
||||
SerialNumberStr
|
||||
);
|
||||
}
|
||||
|
||||
@ -621,7 +688,7 @@ DevPathToTextLogicalUnit (
|
||||
DEVICE_LOGICAL_UNIT_DEVICE_PATH *LogicalUnit;
|
||||
|
||||
LogicalUnit = DevPath;
|
||||
CatPrint (Str, L"Unit(%x)", LogicalUnit->Lun);
|
||||
CatPrint (Str, L"Unit(0x%x)", LogicalUnit->Lun);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -634,181 +701,112 @@ DevPathToTextUsbClass (
|
||||
)
|
||||
{
|
||||
USB_CLASS_DEVICE_PATH *UsbClass;
|
||||
BOOLEAN IsKnownSubClass;
|
||||
|
||||
|
||||
UsbClass = DevPath;
|
||||
|
||||
if (AllowShortcuts == TRUE) {
|
||||
switch (UsbClass->DeviceClass) {
|
||||
case 1:
|
||||
IsKnownSubClass = TRUE;
|
||||
switch (UsbClass->DeviceClass) {
|
||||
case USB_CLASS_AUDIO:
|
||||
CatPrint (Str, L"UsbAudio");
|
||||
break;
|
||||
|
||||
case USB_CLASS_CDCCONTROL:
|
||||
CatPrint (Str, L"UsbCDCControl");
|
||||
break;
|
||||
|
||||
case USB_CLASS_HID:
|
||||
CatPrint (Str, L"UsbHID");
|
||||
break;
|
||||
|
||||
case USB_CLASS_IMAGE:
|
||||
CatPrint (Str, L"UsbImage");
|
||||
break;
|
||||
|
||||
case USB_CLASS_PRINTER:
|
||||
CatPrint (Str, L"UsbPrinter");
|
||||
break;
|
||||
|
||||
case USB_CLASS_MASS_STORAGE:
|
||||
CatPrint (Str, L"UsbMassStorage");
|
||||
break;
|
||||
|
||||
case USB_CLASS_HUB:
|
||||
CatPrint (Str, L"UsbHub");
|
||||
break;
|
||||
|
||||
case USB_CLASS_CDCDATA:
|
||||
CatPrint (Str, L"UsbCDCData");
|
||||
break;
|
||||
|
||||
case USB_CLASS_SMART_CARD:
|
||||
CatPrint (Str, L"UsbSmartCard");
|
||||
break;
|
||||
|
||||
case USB_CLASS_VIDEO:
|
||||
CatPrint (Str, L"UsbVideo");
|
||||
break;
|
||||
|
||||
case USB_CLASS_DIAGNOSTIC:
|
||||
CatPrint (Str, L"UsbDiagnostic");
|
||||
break;
|
||||
|
||||
case USB_CLASS_WIRELESS:
|
||||
CatPrint (Str, L"UsbWireless");
|
||||
break;
|
||||
|
||||
default:
|
||||
IsKnownSubClass = FALSE;
|
||||
break;
|
||||
}
|
||||
|
||||
if (IsKnownSubClass) {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"(0x%x,0x%x,0x%x,0x%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (UsbClass->DeviceClass == USB_CLASS_RESERVE) {
|
||||
if (UsbClass->DeviceSubClass == USB_SUBCLASS_FW_UPDATE) {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbAudio(%x,%x,%x,%x)",
|
||||
L"UsbDeviceFirmwareUpdate(0x%x,0x%x,0x%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
return;
|
||||
} else if (UsbClass->DeviceSubClass == USB_SUBCLASS_IRDA_BRIDGE) {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbCDCControl(%x,%x,%x,%x)",
|
||||
L"UsbIrdaBridge(0x%x,0x%x,0x%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
return;
|
||||
} else if (UsbClass->DeviceSubClass == USB_SUBCLASS_TEST) {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbHID(%x,%x,%x,%x)",
|
||||
L"UsbTestAndMeasurement(0x%x,0x%x,0x%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 6:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbImage(%x,%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 7:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbPrinter(%x,%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbMassStorage(%x,%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 9:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbHub(%x,%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbCDCData(%x,%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 11:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbSmartCard(%x,%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 14:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbVideo(%x,%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 220:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbDiagnostic(%x,%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 224:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbWireless(%x,%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceSubClass,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
break;
|
||||
|
||||
case 254:
|
||||
if (UsbClass->DeviceSubClass == 1) {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbDeviceFirmwareUpdate(%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
} else if (UsbClass->DeviceSubClass == 2) {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbIrdaBridge(%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
} else if (UsbClass->DeviceSubClass == 3) {
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbTestAndMeasurement(%x,%x,%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceProtocol
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
return;
|
||||
}
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
CatPrint (
|
||||
Str,
|
||||
L"UsbClass(%x,%x,%x,%x,%x)",
|
||||
L"UsbClass(0x%x,0x%x,0x%x,0x%x,0x%x)",
|
||||
UsbClass->VendorId,
|
||||
UsbClass->ProductId,
|
||||
UsbClass->DeviceClass,
|
||||
@ -817,6 +815,27 @@ DevPathToTextUsbClass (
|
||||
);
|
||||
}
|
||||
|
||||
STATIC
|
||||
VOID
|
||||
DevPathToTextSata (
|
||||
IN OUT POOL_PRINT *Str,
|
||||
IN VOID *DevPath,
|
||||
IN BOOLEAN DisplayOnly,
|
||||
IN BOOLEAN AllowShortcuts
|
||||
)
|
||||
{
|
||||
SATA_DEVICE_PATH *Sata;
|
||||
|
||||
Sata = DevPath;
|
||||
CatPrint (
|
||||
Str,
|
||||
L"Sata(0x%x,0x%x,0x%x)",
|
||||
(UINTN) Sata->HbaPortNumber,
|
||||
(UINTN) Sata->PortMultiplierPort,
|
||||
(UINTN) Sata->LogicalUnitNumber
|
||||
);
|
||||
}
|
||||
|
||||
STATIC
|
||||
VOID
|
||||
DevPathToTextI2O (
|
||||
@ -829,7 +848,7 @@ DevPathToTextI2O (
|
||||
I2O_DEVICE_PATH *I2O;
|
||||
|
||||
I2O = DevPath;
|
||||
CatPrint (Str, L"I2O(%x)", I2O->Tid);
|
||||
CatPrint (Str, L"I2O(0x%x)", I2O->Tid);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -858,7 +877,7 @@ DevPathToTextMacAddr (
|
||||
CatPrint (Str, L"%02x", MAC->MacAddress.Addr[Index]);
|
||||
}
|
||||
|
||||
CatPrint (Str, L",%x)", MAC->IfType);
|
||||
CatPrint (Str, L",0x%x)", MAC->IfType);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -991,7 +1010,7 @@ DevPathToTextInfiniBand (
|
||||
InfiniBand = DevPath;
|
||||
CatPrint (
|
||||
Str,
|
||||
L"Infiniband(%x,%g,%lx,%lx,%lx)",
|
||||
L"Infiniband(0x%x,%g,0x%lx,0x%lx,0x%lx)",
|
||||
InfiniBand->ResourceFlags,
|
||||
InfiniBand->PortGid,
|
||||
InfiniBand->ServiceId,
|
||||
@ -1095,7 +1114,7 @@ DevPathToTextiSCSI (
|
||||
iSCSI = DevPath;
|
||||
CatPrint (
|
||||
Str,
|
||||
L"iSCSI(%s,%x,%lx,",
|
||||
L"iSCSI(%a,0x%x,0x%lx,",
|
||||
iSCSI->iSCSITargetName,
|
||||
iSCSI->TargetPortalGroupTag,
|
||||
iSCSI->Lun
|
||||
@ -1129,19 +1148,10 @@ DevPathToTextHardDrive (
|
||||
|
||||
Hd = DevPath;
|
||||
switch (Hd->SignatureType) {
|
||||
case 0:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"HD(%d,%s,0,",
|
||||
Hd->PartitionNumber,
|
||||
L"None"
|
||||
);
|
||||
break;
|
||||
|
||||
case SIGNATURE_TYPE_MBR:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"HD(%d,%s,%08x,",
|
||||
L"HD(%d,%s,0x%08x,",
|
||||
Hd->PartitionNumber,
|
||||
L"MBR",
|
||||
*((UINT32 *) (&(Hd->Signature[0])))
|
||||
@ -1153,16 +1163,22 @@ DevPathToTextHardDrive (
|
||||
Str,
|
||||
L"HD(%d,%s,%g,",
|
||||
Hd->PartitionNumber,
|
||||
L"GUID",
|
||||
L"GPT",
|
||||
(EFI_GUID *) &(Hd->Signature[0])
|
||||
);
|
||||
break;
|
||||
|
||||
default:
|
||||
CatPrint (
|
||||
Str,
|
||||
L"HD(%d,%d,0,",
|
||||
Hd->PartitionNumber,
|
||||
Hd->SignatureType
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
CatPrint (Str, L"%lx,%lx)", Hd->PartitionStart, Hd->PartitionSize);
|
||||
CatPrint (Str, L"0x%lx,0x%lx)", Hd->PartitionStart, Hd->PartitionSize);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -1178,11 +1194,11 @@ DevPathToTextCDROM (
|
||||
|
||||
Cd = DevPath;
|
||||
if (DisplayOnly == TRUE) {
|
||||
CatPrint (Str, L"CDROM(%x)", Cd->BootEntry);
|
||||
CatPrint (Str, L"CDROM(0x%x)", Cd->BootEntry);
|
||||
return ;
|
||||
}
|
||||
|
||||
CatPrint (Str, L"CDROM(%x,%lx,%lx)", Cd->BootEntry, Cd->PartitionStart, Cd->PartitionSize);
|
||||
CatPrint (Str, L"CDROM(0x%x,0x%lx,0x%lx)", Cd->BootEntry, Cd->PartitionStart, Cd->PartitionSize);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -1215,6 +1231,36 @@ DevPathToTextMediaProtocol (
|
||||
CatPrint (Str, L"Media(%g)", &MediaProt->Protocol);
|
||||
}
|
||||
|
||||
STATIC
|
||||
VOID
|
||||
DevPathToTextFv (
|
||||
IN OUT POOL_PRINT *Str,
|
||||
IN VOID *DevPath,
|
||||
IN BOOLEAN DisplayOnly,
|
||||
IN BOOLEAN AllowShortcuts
|
||||
)
|
||||
{
|
||||
MEDIA_FW_VOL_DEVICE_PATH *Fv;
|
||||
|
||||
Fv = DevPath;
|
||||
CatPrint (Str, L"Fv(%g)", &Fv->FvName);
|
||||
}
|
||||
|
||||
STATIC
|
||||
VOID
|
||||
DevPathToTextFvFile (
|
||||
IN OUT POOL_PRINT *Str,
|
||||
IN VOID *DevPath,
|
||||
IN BOOLEAN DisplayOnly,
|
||||
IN BOOLEAN AllowShortcuts
|
||||
)
|
||||
{
|
||||
MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FvFile;
|
||||
|
||||
FvFile = DevPath;
|
||||
CatPrint (Str, L"FvFile(%g)", &FvFile->FvFileName);
|
||||
}
|
||||
|
||||
STATIC
|
||||
VOID
|
||||
DevPathToTextBBS (
|
||||
@ -1254,18 +1300,22 @@ DevPathToTextBBS (
|
||||
break;
|
||||
|
||||
default:
|
||||
Type = L"?";
|
||||
Type = NULL;
|
||||
break;
|
||||
}
|
||||
|
||||
CatPrint (Str, L"BBS(%s,%a", Type, Bbs->String);
|
||||
if (Type != NULL) {
|
||||
CatPrint (Str, L"BBS(%s,%a", Type, Bbs->String);
|
||||
} else {
|
||||
CatPrint (Str, L"BBS(0x%x,%a", Bbs->DeviceType, Bbs->String);
|
||||
}
|
||||
|
||||
if (DisplayOnly == TRUE) {
|
||||
CatPrint (Str, L")");
|
||||
return ;
|
||||
}
|
||||
|
||||
CatPrint (Str, L",%x)", Bbs->StatusFlag);
|
||||
CatPrint (Str, L",0x%x)", Bbs->StatusFlag);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@ -1299,7 +1349,8 @@ GLOBAL_REMOVE_IF_UNREFERENCED const DEVICE_PATH_TO_TEXT_TABLE DevPathToTextTable
|
||||
{HARDWARE_DEVICE_PATH, HW_VENDOR_DP, DevPathToTextVendor},
|
||||
{HARDWARE_DEVICE_PATH, HW_CONTROLLER_DP, DevPathToTextController},
|
||||
{ACPI_DEVICE_PATH, ACPI_DP, DevPathToTextAcpi},
|
||||
{ACPI_DEVICE_PATH, ACPI_EXTENDED_DP, DevPathToTextExtAcpi},
|
||||
{ACPI_DEVICE_PATH, ACPI_EXTENDED_DP, DevPathToTextAcpiEx},
|
||||
{ACPI_DEVICE_PATH, ACPI_ADR_DP, DevPathToTextAcpiAdr},
|
||||
{MESSAGING_DEVICE_PATH, MSG_ATAPI_DP, DevPathToTextAtapi},
|
||||
{MESSAGING_DEVICE_PATH, MSG_SCSI_DP, DevPathToTextScsi},
|
||||
{MESSAGING_DEVICE_PATH, MSG_FIBRECHANNEL_DP, DevPathToTextFibre},
|
||||
@ -1308,6 +1359,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED const DEVICE_PATH_TO_TEXT_TABLE DevPathToTextTable
|
||||
{MESSAGING_DEVICE_PATH, MSG_USB_WWID_DP, DevPathToTextUsbWWID},
|
||||
{MESSAGING_DEVICE_PATH, MSG_DEVICE_LOGICAL_UNIT_DP, DevPathToTextLogicalUnit},
|
||||
{MESSAGING_DEVICE_PATH, MSG_USB_CLASS_DP, DevPathToTextUsbClass},
|
||||
{MESSAGING_DEVICE_PATH, MSG_SATA_DP, DevPathToTextSata},
|
||||
{MESSAGING_DEVICE_PATH, MSG_I2O_DP, DevPathToTextI2O},
|
||||
{MESSAGING_DEVICE_PATH, MSG_MAC_ADDR_DP, DevPathToTextMacAddr},
|
||||
{MESSAGING_DEVICE_PATH, MSG_IPv4_DP, DevPathToTextIPv4},
|
||||
@ -1322,6 +1374,8 @@ GLOBAL_REMOVE_IF_UNREFERENCED const DEVICE_PATH_TO_TEXT_TABLE DevPathToTextTable
|
||||
{MEDIA_DEVICE_PATH, MEDIA_FILEPATH_DP, DevPathToTextFilePath},
|
||||
{MEDIA_DEVICE_PATH, MEDIA_PROTOCOL_DP, DevPathToTextMediaProtocol},
|
||||
{MEDIA_DEVICE_PATH, MEDIA_FILEPATH_DP, DevPathToTextFilePath},
|
||||
{MEDIA_DEVICE_PATH, MEDIA_PIWG_FW_VOL_DP, DevPathToTextFv},
|
||||
{MEDIA_DEVICE_PATH, MEDIA_PIWG_FW_FILE_DP, DevPathToTextFvFile},
|
||||
{BBS_DEVICE_PATH, BBS_BBS_DP, DevPathToTextBBS},
|
||||
{END_DEVICE_PATH_TYPE, END_INSTANCE_DEVICE_PATH_SUBTYPE, DevPathToTextEndInstance},
|
||||
{0, 0, NULL}
|
||||
@ -1471,9 +1525,9 @@ ConvertDevicePathToText (
|
||||
// Put a path seperator in if needed
|
||||
//
|
||||
if (Str.Len && DumpNode != DevPathToTextEndInstance) {
|
||||
if (*(Str.Str + Str.Len / sizeof (CHAR16) - 1) != L',') {
|
||||
if (*(Str.Str + Str.Len / sizeof (CHAR16) - 1) != L',') {
|
||||
CatPrint (&Str, L"/");
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
// Print this node of the device path
|
||||
|
Reference in New Issue
Block a user