/** DevicePathNode must be SerialVendor type and this will populate the MappingItem. @param[in] DevicePathNode The node to get info on. @param[in] MappingItem The info item to populate. **/ VOID EFIAPI DevPathSerialVendor ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { VENDOR_DEVICE_PATH *Vendor; SAS_DEVICE_PATH *Sas; if (DevicePathNode == NULL || MappingItem == NULL) { return; } Vendor = (VENDOR_DEVICE_PATH *) DevicePathNode; AppendCSDGuid (MappingItem, &Vendor->Guid); if (CompareGuid (&gEfiSasDevicePathGuid, &Vendor->Guid)) { Sas = (SAS_DEVICE_PATH *) Vendor; AppendCSDNum (MappingItem, Sas->SasAddress); AppendCSDNum (MappingItem, Sas->Lun); AppendCSDNum (MappingItem, Sas->DeviceTopology); AppendCSDNum (MappingItem, Sas->RelativeTargetPort); } }
/** DevicePathNode must be InfiniBand type and this will populate the MappingItem. @param[in] DevicePathNode The node to get info on. @param[in] MappingItem The info item to populate. **/ VOID EFIAPI DevPathSerialInfiniBand ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { INFINIBAND_DEVICE_PATH *InfiniBand; UINTN Index; CHAR16 Buffer[64]; CHAR16 *PBuffer; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); InfiniBand = (INFINIBAND_DEVICE_PATH *) DevicePathNode; for (Index = 0, PBuffer = Buffer; Index < 16; Index++, PBuffer += 2) { UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN) InfiniBand->PortGid[Index]); } AppendCSDStr (MappingItem, Buffer); AppendCSDNum (MappingItem, InfiniBand->ServiceId); AppendCSDNum (MappingItem, InfiniBand->TargetPortId); AppendCSDNum (MappingItem, InfiniBand->DeviceId); }
/** DevicePathNode must be IPv6 type and this will populate the MappingItem. @param[in] DevicePathNode The node to get info on. @param[in] MappingItem The info item to populate. **/ VOID EFIAPI DevPathSerialIPv6 ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { IPv6_DEVICE_PATH *Ip; UINTN Index; CHAR16 Buffer[64]; CHAR16 *PBuffer; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Ip = (IPv6_DEVICE_PATH *) DevicePathNode; for (Index = 0, PBuffer = Buffer; Index < 16; Index++, PBuffer += 2) { UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN) Ip->LocalIpAddress.Addr[Index]); } AppendCSDStr (MappingItem, Buffer); AppendCSDNum (MappingItem, Ip->LocalPort); for (Index = 0, PBuffer = Buffer; Index < 16; Index++, PBuffer += 2) { UnicodeSPrint (PBuffer, 0, L"%02x", (UINTN) Ip->RemoteIpAddress.Addr[Index]); } AppendCSDStr (MappingItem, Buffer); AppendCSDNum (MappingItem, Ip->RemotePort); }
VOID _DevPathSerialUsb ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { USB_DEVICE_PATH *Usb; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Usb = (USB_DEVICE_PATH *) DevicePathNode; AppendCSDNum (MappingItem, Usb->ParentPortNumber); AppendCSDNum (MappingItem, Usb->InterfaceNumber); }
VOID _DevPathSerialFibre ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { FIBRECHANNEL_DEVICE_PATH *Fibre; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Fibre = (FIBRECHANNEL_DEVICE_PATH *) DevicePathNode; AppendCSDNum (MappingItem, Fibre->WWN); AppendCSDNum (MappingItem, Fibre->Lun); }
VOID _DevPathSerialScsi ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { SCSI_DEVICE_PATH *Scsi; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Scsi = (SCSI_DEVICE_PATH *) DevicePathNode; AppendCSDNum (MappingItem, Scsi->Pun); AppendCSDNum (MappingItem, Scsi->Lun); }
VOID _DevPathSerialSata ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { SATA_DEVICE_PATH *Sata; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Sata = (SATA_DEVICE_PATH *) DevicePathNode; AppendCSDNum (MappingItem, Sata->HBAPortNumber); AppendCSDNum (MappingItem, Sata->PortMultiplierPortNumber); AppendCSDNum (MappingItem, Sata->Lun); }
VOID _DevPathSerialUart ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { UART_DEVICE_PATH *Uart; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Uart = (UART_DEVICE_PATH *) DevicePathNode; AppendCSDNum (MappingItem, Uart->BaudRate); AppendCSDNum (MappingItem, Uart->DataBits); AppendCSDNum (MappingItem, Uart->Parity); AppendCSDNum (MappingItem, Uart->StopBits); }
VOID _DevPathSerialI2O ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { I2O_DEVICE_PATH *I2O; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); I2O = (I2O_DEVICE_PATH *) DevicePathNode; AppendCSDNum (MappingItem, I2O->Tid); }
VOID _DevPathSerialAtapi ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { ATAPI_DEVICE_PATH *Atapi; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Atapi = (ATAPI_DEVICE_PATH *) DevicePathNode; AppendCSDNum (MappingItem, (Atapi->PrimarySecondary * 2 + Atapi->SlaveMaster)); }
VOID _DevPathSerialLUN ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { DEVICE_LOGICAL_UNIT_DEVICE_PATH *Lun; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Lun = (DEVICE_LOGICAL_UNIT_DEVICE_PATH *) DevicePathNode; AppendCSDNum (MappingItem, Lun->Lun); }
/** DevicePathNode must be IPv4 type and this will populate the MappingItem. @param[in] DevicePathNode The node to get info on. @param[in] MappingItem The info item to populate. **/ VOID EFIAPI DevPathSerialIPv4 ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { IPv4_DEVICE_PATH *Ip; CHAR16 Buffer[10]; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Ip = (IPv4_DEVICE_PATH *) DevicePathNode; UnicodeSPrint ( Buffer, 0, L"%02x%02x%02x%02x", (UINTN) Ip->LocalIpAddress.Addr[0], (UINTN) Ip->LocalIpAddress.Addr[1], (UINTN) Ip->LocalIpAddress.Addr[2], (UINTN) Ip->LocalIpAddress.Addr[3] ); AppendCSDStr (MappingItem, Buffer); AppendCSDNum (MappingItem, Ip->LocalPort); UnicodeSPrint ( Buffer, 0, L"%02x%02x%02x%02x", (UINTN) Ip->RemoteIpAddress.Addr[0], (UINTN) Ip->RemoteIpAddress.Addr[1], (UINTN) Ip->RemoteIpAddress.Addr[2], (UINTN) Ip->RemoteIpAddress.Addr[3] ); AppendCSDStr (MappingItem, Buffer); AppendCSDNum (MappingItem, Ip->RemotePort); }
VOID _DevPathSerialCDROM ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { CDROM_DEVICE_PATH *Cd; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Cd = (CDROM_DEVICE_PATH *) DevicePathNode; MappingItem->MTD = MTDTypeCDRom; AppendCSDNum (MappingItem, Cd->BootEntry); }
/** DevicePathNode must be SerialI20 type and this will populate the MappingItem. @param[in] DevicePathNode The node to get info on. @param[in] MappingItem The info item to populate. **/ VOID EFIAPI DevPathSerialI2O ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { I2O_DEVICE_PATH *DevicePath_I20; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); DevicePath_I20 = (I2O_DEVICE_PATH *) DevicePathNode; AppendCSDNum (MappingItem, DevicePath_I20->Tid); }
VOID _DevPathSerialVendor ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { VENDOR_DEVICE_PATH *Vendor; SAS_DEVICE_PATH *Sas; EFI_GUID SasVendorGuid = DEVICE_PATH_MESSAGING_SAS; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Vendor = (VENDOR_DEVICE_PATH *) DevicePathNode; AppendCSDGuid (MappingItem, &Vendor->Guid); if (CompareGuid (&SasVendorGuid, &Vendor->Guid) == 0) { Sas = (SAS_DEVICE_PATH *) Vendor; AppendCSDNum (MappingItem, Sas->SasAddress); AppendCSDNum (MappingItem, Sas->Lun); AppendCSDNum (MappingItem, Sas->DeviceTopology); AppendCSDNum (MappingItem, Sas->RelativeTargetPort); } }
VOID _DevPathSerialHardDrive ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { HARDDRIVE_DEVICE_PATH *Hd; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Hd = (HARDDRIVE_DEVICE_PATH *) DevicePathNode; if (MappingItem->MTD == MTDTypeUnknown) { MappingItem->MTD = MTDTypeHardDisk; } AppendCSDNum (MappingItem, Hd->PartitionNumber); }
VOID _DevPathSerialAcpi ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePathNode, IN DEVICE_CONSIST_MAPPING_INFO *MappingItem ) { ACPI_HID_DEVICE_PATH *Acpi; ASSERT(DevicePathNode != NULL); ASSERT(MappingItem != NULL); Acpi = (ACPI_HID_DEVICE_PATH *) DevicePathNode; if ((Acpi->HID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) { if (EISA_ID_TO_NUM (Acpi->HID) == 0x0604) { MappingItem->MTD = MTDTypeFloppy; AppendCSDNum (MappingItem, Acpi->UID); } } }