Michael Kubacki
47d20b54f9
ShellPkg: Apply uncrustify changes
...
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737
Apply uncrustify changes to .c/.h files in the ShellPkg package
Cc: Andrew Fish <afish@apple.com >
Cc: Leif Lindholm <leif@nuviainc.com >
Cc: Michael D Kinney <michael.d.kinney@intel.com >
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
2021-12-07 17:24:28 +00:00
Laszlo Ersek
101c55ac0d
ShellPkg/ShellCommandLib: add ShellSortFileList()
...
Introduce the ShellSortFileList() function, for sorting an
EFI_SHELL_FILE_INFO list, by FileName or by FullName.
Duplicates can be kept in the same list, or separated out to a new list.
In either case, the relative order between duplicates does not change (the
sorting is stable).
For the sorting, use OrderedCollectionLib rather than SortLib:
- The PerformQuickSort() function from the latter has quadratic worst-case
time complexity, plus it is implemented recursively (see
"MdeModulePkg/Library/UefiSortLib/UefiSortLib.c"). It can also not
return an error on memory allocation failure.
- In comparison, the Red-Black Tree instance of OrderedCollectionLib sorts
in O(n*log(n)) worst-case time, contains no recursion with the default
PcdValidateOrderedCollection=FALSE setting, and the OrderedCollectionLib
class APIs return errors appropriately.
The OrderedCollectionLib APIs do not permit duplicates natively, but by
using lists as collection entries, stable sorting of duplicates can be
achieved.
Cc: Philippe Mathieu-Daudé <philmd@redhat.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3151
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
Message-Id: <20210113085453.10168-7-lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com >
2021-01-19 18:23:28 +00:00
Laszlo Ersek
c44501b313
ShellPkg: stop using EFI_HANDLE in place of EFI_HII_HANDLE
...
The UefiShell*CommandsLib instances have constructor functions that do
something like:
gHiiHandle = HiiAddPackages (...);
...
ShellCommandRegisterCommandName (..., gHiiHandle, ...);
and destructor functions that implement the following pattern:
HiiRemovePackages (gHiiHandle);
The -- semantic, not functional -- problem is that "gHiiHandle" is
declared with type EFI_HANDLE, and not EFI_HII_HANDLE, in all of these
library instances, even though HiiAddPackages() correctly returns
EFI_HII_HANDLE, and HiiRemovePackages() takes EFI_HII_HANDLE.
Once we fix the type of "gHiiHandle", it causes sort of a butterfly
effect, because it is passed around widely. Track down and update all of
those locations.
The DynamicCommand lib instances use a similar pattern, so they are
affected too.
NOTE: in practice, this patch is a no-op, as both EFI_HII_HANDLE and
EFI_HANDLE are typedefs to (VOID*). However, we shouldn't use EFI_HANDLE
where semantically EFI_HII_HANDLE is passed around.
Cc: Jaben Carsey <jaben.carsey@intel.com >
Cc: Ray Ni <ray.ni@intel.com >
Cc: Zhichao Gao <zhichao.gao@intel.com >
Signed-off-by: Laszlo Ersek <lersek@redhat.com >
Reviewed-by: Philippe Mathieu-Daude <philmd@redhat.com >
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com >
2019-10-09 09:40:10 +02:00
Michael D Kinney
56ba37463a
ShellPkg: Replace BSD License with BSD+Patent License
...
https://bugzilla.tianocore.org/show_bug.cgi?id=1373
Replace BSD 2-Clause License with BSD+Patent License. This change is
based on the following emails:
https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html
https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html
RFCs with detailed process for the license change:
V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html
V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html
V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com >
Reviewed-by: Ray Ni <ray.ni@intel.com >
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com >
2019-04-09 10:58:25 -07:00
Ruiyu Ni
d65f2cea36
ShellPkg/CommandLib: Locate proper UnicodeCollation instance
...
Original code locates the first UnicodeCollation instance in
DXE Core protocol database.
It's not correct considering multiple UnicodeCollation instances
exist in system.
The patch changes logic to find the one that matches the current
system language.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com >
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com .
2018-01-29 09:41:44 +08:00
Ruiyu Ni
28165f245f
ShellPkg: Update sources to include MdePkg protocol definitions
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com >
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com >
2016-10-19 10:26:16 +08:00
Liming Gao
9b7143c904
ShellPkg: Correct files with CRLF line ending
...
Cc: Ruiyu Ni <ruiyu.ni@intel.com >
Cc: Jaben Carsey <jaben.carsey@intel.com >
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com >
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com >
2016-07-29 09:18:12 +08:00
Tapan Shah
cf6c1550cb
ShellPkg: Enahance 'dh' command to add more protocols decoding support
...
Adding EdidDiscovered, EdidActive protocol decode support a in 'dh' command.
Extending GraphicsOutput protocol decoding to list all supported GOP resolutions.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Tapan Shah <tapandshah@hpe.com >
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hpe.com >
Reviewed-by: Jaben Carsey <jaben.carsey@intel.com >
2016-04-25 09:08:06 -07:00
Jaben Carsey
cf812a204c
This searches for handles that produce the dynamic command protocol after searching the commands compiled into the shell.
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com >
Reviewed-by: Eugene Cohen <eugene@hp.com >
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com >
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15754 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-05 20:09:25 +00:00
jcarsey
0ab85bef03
move DeleteScriptFileStruct from a private to a public function. This allows for better memory cleanup when errors occur.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10906 6f19259b-4bc3-4df7-8a09-765794883524
2010-10-04 16:26:29 +00:00
jljusten
8d095e78c6
ShellPkg: Fix path issues for Linux build support
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10887 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-17 20:08:20 +00:00
hhtian
fbec9c0f1c
copyright format update
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10875 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-14 12:22:42 +00:00
jcarsey
a405b86d27
udk2010.up2.shell initial release.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10874 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-14 05:18:09 +00:00