[PATHC] ShellPkg: control code flow with a PCD

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16342 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Jaben Carsey 2014-11-12 21:28:51 +00:00 committed by jcarsey
parent 4d3b9d332d
commit 9b58952287
3 changed files with 21 additions and 22 deletions

View File

@ -651,13 +651,6 @@ DevPathSerialIScsi (
IN DEVICE_CONSIST_MAPPING_INFO *MappingItem
)
{
///@todo make this a PCD
//
// As Csd of ISCSI node is quite long, we comment
// the code below to keep the consistent mapping
// short. Uncomment if you really need it.
//
/*
ISCSI_DEVICE_PATH *IScsi;
UINT8 *IScsiTargetName;
CHAR16 *TargetName;
@ -667,24 +660,25 @@ DevPathSerialIScsi (
ASSERT(DevicePathNode != NULL);
ASSERT(MappingItem != NULL);
IScsi = (ISCSI_DEVICE_PATH *) DevicePathNode;
AppendCSDNum (MappingItem, IScsi->NetworkProtocol);
AppendCSDNum (MappingItem, IScsi->LoginOption);
AppendCSDNum (MappingItem, IScsi->Lun);
AppendCSDNum (MappingItem, IScsi->TargetPortalGroupTag);
TargetNameLength = DevicePathNodeLength (DevicePathNode) - sizeof (ISCSI_DEVICE_PATH);
if (TargetNameLength > 0) {
TargetName = AllocateZeroPool ((TargetNameLength + 1) * sizeof (CHAR16));
if (TargetName != NULL) {
IScsiTargetName = (UINT8 *) (IScsi + 1);
for (Index = 0; Index < TargetNameLength; Index++) {
TargetName[Index] = (CHAR16) IScsiTargetName[Index];
if (PcdGetBool(PcdShellDecodeIScsiMapNames)) {
IScsi = (ISCSI_DEVICE_PATH *) DevicePathNode;
AppendCSDNum (MappingItem, IScsi->NetworkProtocol);
AppendCSDNum (MappingItem, IScsi->LoginOption);
AppendCSDNum (MappingItem, IScsi->Lun);
AppendCSDNum (MappingItem, IScsi->TargetPortalGroupTag);
TargetNameLength = DevicePathNodeLength (DevicePathNode) - sizeof (ISCSI_DEVICE_PATH);
if (TargetNameLength > 0) {
TargetName = AllocateZeroPool ((TargetNameLength + 1) * sizeof (CHAR16));
if (TargetName != NULL) {
IScsiTargetName = (UINT8 *) (IScsi + 1);
for (Index = 0; Index < TargetNameLength; Index++) {
TargetName[Index] = (CHAR16) IScsiTargetName[Index];
}
AppendCSDStr (MappingItem, TargetName);
FreePool (TargetName);
}
AppendCSDStr (MappingItem, TargetName);
FreePool (TargetName);
}
}
*/
}
/**

View File

@ -60,6 +60,7 @@
[Pcd.common]
gEfiShellPkgTokenSpaceGuid.PcdShellSupportLevel ## ALWAYS_CONSUMED
gEfiShellPkgTokenSpaceGuid.PcdShellMapNameLength ## ALWAYS_CONSUMED
gEfiShellPkgTokenSpaceGuid.PcdShellDecodeIScsiMapNames ## SOMETIMES_CONSUMED
[Depex]
gEfiUnicodeCollation2ProtocolGuid

View File

@ -128,3 +128,7 @@
## Unicode string of the shell supplier
gEfiShellPkgTokenSpaceGuid.PcdShellSupplier|L"EDK II"|VOID*|0x00000010
## Do iSCSI decode for map names.
# This is disabled by default due to the length of generated strings
gEfiShellPkgTokenSpaceGuid.PcdShellDecodeIScsiMapNames|FALSE|BOOLEAN|0x00000012