diff options
author | Jaben Carsey <jaben.carsey@intel.com> | 2014-11-12 21:28:51 +0000 |
---|---|---|
committer | jcarsey <jcarsey@Edk2> | 2014-11-12 21:28:51 +0000 |
commit | 9b589522873f1ce1c221e0d6502788230162e86f (patch) | |
tree | c8d1bcd18d5266207e3200957a018d607b349518 /ShellPkg | |
parent | 4d3b9d332db5c2350cd567fa37a2d90170168b6a (diff) | |
download | edk2-9b589522873f1ce1c221e0d6502788230162e86f.tar.gz edk2-9b589522873f1ce1c221e0d6502788230162e86f.tar.bz2 edk2-9b589522873f1ce1c221e0d6502788230162e86f.zip |
[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
Diffstat (limited to 'ShellPkg')
-rw-r--r-- | ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c | 38 | ||||
-rw-r--r-- | ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf | 1 | ||||
-rw-r--r-- | ShellPkg/ShellPkg.dec | 4 |
3 files changed, 21 insertions, 22 deletions
diff --git a/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c b/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c index a009609ffc..4e03666a46 100644 --- a/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c +++ b/ShellPkg/Library/UefiShellCommandLib/ConsistMapping.c @@ -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);
}
}
- */
}
/**
diff --git a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf index d3a2056405..5ef82c64d7 100644 --- a/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf +++ b/ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf @@ -60,6 +60,7 @@ [Pcd.common]
gEfiShellPkgTokenSpaceGuid.PcdShellSupportLevel ## ALWAYS_CONSUMED
gEfiShellPkgTokenSpaceGuid.PcdShellMapNameLength ## ALWAYS_CONSUMED
+ gEfiShellPkgTokenSpaceGuid.PcdShellDecodeIScsiMapNames ## SOMETIMES_CONSUMED
[Depex]
gEfiUnicodeCollation2ProtocolGuid
diff --git a/ShellPkg/ShellPkg.dec b/ShellPkg/ShellPkg.dec index 90eb08ab85..254c5b46cb 100644 --- a/ShellPkg/ShellPkg.dec +++ b/ShellPkg/ShellPkg.dec @@ -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
|