Functions | |
VOID | IScsiInitIbfTableHeader (OUT EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER *Header, IN UINT8 *OemId, IN UINT64 *OemTableId) |
VOID | IScsiInitControlSection (IN EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER *Table) |
VOID | IScsiAddHeapItem (IN OUT UINT8 **Heap, IN VOID *Data, IN UINTN Len) |
VOID | IScsiFillInitiatorSection (IN EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER *Table, IN OUT UINT8 **Heap) |
VOID | IScsiMapV4ToV6Addr (IN EFI_IPv4_ADDRESS *V4, OUT EFI_IPv6_ADDRESS *V6) |
VOID | IScsiFillNICAndTargetSections (IN EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER *Table, IN OUT UINT8 **Heap) |
VOID | IScsiPublishIbft (IN VOID) |
Variables | |
BOOLEAN | mIbftInstalled = FALSE |
UINTN | mTableKey |
Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
VOID IScsiAddHeapItem | ( | IN OUT UINT8 ** | Heap, | |
IN VOID * | Data, | |||
IN UINTN | Len | |||
) |
Add one item into the heap.
[in,out] | Heap | On input, the current address of the heap. On output, the address of the heap after the item is added. |
[in] | Data | The data to add into the heap. |
[in] | Len | Length of the Data in byte. |
Referenced by IScsiFillInitiatorSection(), and IScsiFillNICAndTargetSections().
VOID IScsiFillInitiatorSection | ( | IN EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER * | Table, | |
IN OUT UINT8 ** | Heap | |||
) |
Fill the Initiator section of the iSCSI Boot Firmware Table.
[in] | Table | The ACPI table. |
[in,out] | Heap | The heap. |
References IBFT_ROUNDUP, ISCSI_PRIVATE_DATA::InitiatorName, ISCSI_PRIVATE_DATA::InitiatorNameLength, IScsiAddHeapItem(), and mPrivate.
Referenced by IScsiPublishIbft().
VOID IScsiFillNICAndTargetSections | ( | IN EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER * | Table, | |
IN OUT UINT8 ** | Heap | |||
) |
Fill the NIC and target sections in iSCSI Boot Firmware Table.
[in] | Table | The buffer of the ACPI table. |
[in,out] | Heap | The heap buffer used to store the variable length parameters such as iSCSI name. |
References _ISCSI_ATTEMPT_CONFIG_NVDATA::AttemptConfigIndex, ISCSI_PRIVATE_DATA::AttemptConfigs, _ISCSI_ATTEMPT_CONFIG_NVDATA::AuthConfigData, _ISCSI_ATTEMPT_CONFIG_NVDATA::AuthenticationType, _ISCSI_SESSION_CONFIG_NVDATA::BootLun, ISCSI_PRIVATE_DATA::BootSelectedIndex, ISCSI_NIC_INFO::BusNumber, _ISCSI_ATTEMPT_CONFIG_NVDATA::CHAP, _ISCSI_CHAP_AUTH_CONFIG_NVDATA::CHAPName, _ISCSI_CHAP_AUTH_CONFIG_NVDATA::CHAPSecret, _ISCSI_CHAP_AUTH_CONFIG_NVDATA::CHAPType, ISCSI_NIC_INFO::DeviceNumber, _ISCSI_ATTEMPT_CONFIG_NVDATA::DhcpServer, _ISCSI_SESSION_CONFIG_NVDATA::Enabled, ISCSI_PRIVATE_DATA::EnableMpio, ISCSI_NIC_INFO::FunctionNumber, _ISCSI_SESSION_CONFIG_NVDATA::Gateway, IBFT_ROUNDUP, _ISCSI_SESSION_CONFIG_NVDATA::InitiatorInfoFromDhcp, IP_MODE_AUTOCONFIG, IP_MODE_IP4, IP_MODE_IP6, _ISCSI_SESSION_CONFIG_NVDATA::IpMode, ISCSI_AUTH_TYPE_CHAP, ISCSI_AUTH_TYPE_KRB, ISCSI_AUTH_TYPE_NONE, ISCSI_CHAP_MUTUAL, ISCSI_CHAP_UNI, ISCSI_DISABLED, ISCSI_ENABLED_FOR_MPIO, IScsiAddHeapItem(), IScsiConfigGetAttemptByConfigIndex(), IScsiGetNicInfoByIndex(), IScsiGetSubnetMaskPrefixLength(), IScsiMapV4ToV6Addr(), _ISCSI_SESSION_CONFIG_NVDATA::LocalIp, mPrivate, _ISCSI_ATTEMPT_CONFIG_NVDATA::NicIndex, ISCSI_NIC_INFO::PermanentAddress, _ISCSI_SESSION_CONFIG_NVDATA::PrefixLength, _ISCSI_ATTEMPT_CONFIG_NVDATA::PrimaryDns, _ISCSI_CHAP_AUTH_CONFIG_NVDATA::ReverseCHAPName, _ISCSI_CHAP_AUTH_CONFIG_NVDATA::ReverseCHAPSecret, _ISCSI_ATTEMPT_CONFIG_NVDATA::SecondaryDns, _ISCSI_ATTEMPT_CONFIG_NVDATA::SessionConfigData, _ISCSI_SESSION_CONFIG_NVDATA::SubnetMask, _ISCSI_SESSION_CONFIG_NVDATA::TargetIp, _ISCSI_SESSION_CONFIG_NVDATA::TargetName, _ISCSI_SESSION_CONFIG_NVDATA::TargetPort, _ISCSI_ATTEMPT_CONFIG_NVDATA::ValidiBFTPath, and ISCSI_NIC_INFO::VlanId.
Referenced by IScsiPublishIbft().
VOID IScsiInitControlSection | ( | IN EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER * | Table | ) |
Initialize the control section of the iSCSI Boot Firmware Table.
[in] | Table | The ACPI table. |
References ISCSI_PRIVATE_DATA::EnableMpio, ISCSI_PRIVATE_DATA::Krb5MpioCount, ISCSI_PRIVATE_DATA::MpioCount, mPrivate, and ISCSI_PRIVATE_DATA::ValidSinglePathCount.
Referenced by IScsiPublishIbft().
VOID IScsiInitIbfTableHeader | ( | OUT EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER * | Header, | |
IN UINT8 * | OemId, | |||
IN UINT64 * | OemTableId | |||
) |
Initialize the header of the iSCSI Boot Firmware Table.
[out] | Header | The header of the iSCSI Boot Firmware Table. |
[in] | OemId | The OEM ID. |
[in] | OemTableId | The OEM table ID for the iBFT. |
References IBFT_HEAP_OFFSET.
Referenced by IScsiPublishIbft().
VOID IScsiMapV4ToV6Addr | ( | IN EFI_IPv4_ADDRESS * | V4, | |
OUT EFI_IPv6_ADDRESS * | V6 | |||
) |
Map the v4 IP address into v6 IP address.
[in] | V4 | The v4 IP address. |
[out] | V6 | The v6 IP address. |
Referenced by IScsiFillNICAndTargetSections().
VOID IScsiPublishIbft | ( | IN | VOID | ) |
Publish and remove the iSCSI Boot Firmware Table according to the iSCSI session status.
References ISCSI_PRIVATE_DATA::EnableMpio, IBFT_HEAP_OFFSET, IBFT_MAX_SIZE, IScsiFillInitiatorSection(), IScsiFillNICAndTargetSections(), IScsiInitControlSection(), IScsiInitIbfTableHeader(), ISCSI_PRIVATE_DATA::Krb5MpioCount, mIbftInstalled, ISCSI_PRIVATE_DATA::MpioCount, mPrivate, mTableKey, and ISCSI_PRIVATE_DATA::ValidSinglePathCount.
Referenced by IScsiStart(), and IScsiStop().
BOOLEAN mIbftInstalled = FALSE |
Referenced by IScsiPublishIbft().
UINTN mTableKey |
Referenced by IScsiPublishIbft().