summaryrefslogtreecommitdiffstats
path: root/ShellPkg
diff options
context:
space:
mode:
authorTomas Pilar <quic_tpilar@quicinc.com>2023-01-03 09:02:29 -0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2023-01-20 16:43:51 +0000
commite96a5734f6b1b1d38a60d9ecf77a453ae2fc8303 (patch)
treeb3e3e7474f93c968e193c9b0e7b98647e646108e /ShellPkg
parentbf5678b5802685e07583e3c7ec56d883cbdd5da3 (diff)
downloadedk2-e96a5734f6b1b1d38a60d9ecf77a453ae2fc8303.tar.gz
edk2-e96a5734f6b1b1d38a60d9ecf77a453ae2fc8303.tar.bz2
edk2-e96a5734f6b1b1d38a60d9ecf77a453ae2fc8303.zip
ShellPkg: Export default shell delay as PCD
Create PcdShellDefaultDelay to configure the default delay the shell provides for the user at the start time if the user wishes to cancel the execution of a potential startup script. The shell application already allows the user to override the delay default value by specifying the -delay cmdline argument. This however cannot be used when loading the shell application using direct boot or when integrating the shell into the platform firmware build. Thus, a PCD can be easily configured by the developer either at build time, or even at runtime. Cc: Ray Ni <ray.ni@intel.com> Cc: Zhichao Gao <zhichao.gao@intel.com> Signed-off-by: Tomas Pilar <tomas@quicinc.com> Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
Diffstat (limited to 'ShellPkg')
-rw-r--r--ShellPkg/Application/Shell/Shell.c2
-rw-r--r--ShellPkg/Application/Shell/Shell.inf1
-rw-r--r--ShellPkg/ShellPkg.dec4
3 files changed, 6 insertions, 1 deletions
diff --git a/ShellPkg/Application/Shell/Shell.c b/ShellPkg/Application/Shell/Shell.c
index df00adfdfa..0ae6e14a34 100644
--- a/ShellPkg/Application/Shell/Shell.c
+++ b/ShellPkg/Application/Shell/Shell.c
@@ -990,7 +990,7 @@ ProcessCommandLine (
ShellInfoObject.ShellInitSettings.BitUnion.Bits.Delay = FALSE;
ShellInfoObject.ShellInitSettings.BitUnion.Bits.Exit = FALSE;
ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoNest = FALSE;
- ShellInfoObject.ShellInitSettings.Delay = 5;
+ ShellInfoObject.ShellInitSettings.Delay = PcdGet32 (PcdShellDefaultDelay);
//
// Start LoopVar at 0 to parse only optional arguments at Argv[0]
diff --git a/ShellPkg/Application/Shell/Shell.inf b/ShellPkg/Application/Shell/Shell.inf
index 4c32960a96..f1e41de133 100644
--- a/ShellPkg/Application/Shell/Shell.inf
+++ b/ShellPkg/Application/Shell/Shell.inf
@@ -103,3 +103,4 @@
gEfiShellPkgTokenSpaceGuid.PcdShellForceConsole ## CONSUMES
gEfiShellPkgTokenSpaceGuid.PcdShellSupplier ## CONSUMES
gEfiShellPkgTokenSpaceGuid.PcdShellMaxHistoryCommandCount ## CONSUMES
+ gEfiShellPkgTokenSpaceGuid.PcdShellDefaultDelay ## CONSUMES
diff --git a/ShellPkg/ShellPkg.dec b/ShellPkg/ShellPkg.dec
index 7b2d1230bd..2ebea0a261 100644
--- a/ShellPkg/ShellPkg.dec
+++ b/ShellPkg/ShellPkg.dec
@@ -136,3 +136,7 @@
# Up to this many bytes of vendor specific data will be used. Default is 0
# (disabled).
gEfiShellPkgTokenSpaceGuid.PcdShellVendorExtendedDecode|0|UINT32|0x00000013
+
+ ## Controls the default delay the shell will offer to the user at the
+ # start to check if the user wishes to cancel the script autostart
+ gEfiShellPkgTokenSpaceGuid.PcdShellDefaultDelay|5|UINT32|0x00000015