mirror of https://github.com/acidanthera/audk.git
ShellPkg: increase available size for PcdShellFileOperationSize
Some storage subsystems benefit by having shell file operation sizes (affecting copy and type commands right now) larger than 2^16. This patch changes the PcdShellFileOperationSize type to 32-bits. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eugene Cohen <eugene@hp.com> reviewed-by: Jaben Carsey <jaben.carsey@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14534 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
373fbc6416
commit
433a21cba1
|
@ -89,7 +89,7 @@ CopySingleFile(
|
||||||
DestVolumeInfo = NULL;
|
DestVolumeInfo = NULL;
|
||||||
ShellStatus = SHELL_SUCCESS;
|
ShellStatus = SHELL_SUCCESS;
|
||||||
|
|
||||||
ReadSize = PcdGet16(PcdShellFileOperationSize);
|
ReadSize = PcdGet32(PcdShellFileOperationSize);
|
||||||
// Why bother copying a file to itself
|
// Why bother copying a file to itself
|
||||||
if (StrCmp(Source, Dest) == 0) {
|
if (StrCmp(Source, Dest) == 0) {
|
||||||
return (SHELL_SUCCESS);
|
return (SHELL_SUCCESS);
|
||||||
|
@ -233,7 +233,7 @@ CopySingleFile(
|
||||||
//
|
//
|
||||||
Buffer = AllocateZeroPool(ReadSize);
|
Buffer = AllocateZeroPool(ReadSize);
|
||||||
ASSERT(Buffer != NULL);
|
ASSERT(Buffer != NULL);
|
||||||
while (ReadSize == PcdGet16(PcdShellFileOperationSize) && !EFI_ERROR(Status)) {
|
while (ReadSize == PcdGet32(PcdShellFileOperationSize) && !EFI_ERROR(Status)) {
|
||||||
Status = ShellReadFile(SourceHandle, &ReadSize, Buffer);
|
Status = ShellReadFile(SourceHandle, &ReadSize, Buffer);
|
||||||
Status = ShellWriteFile(DestHandle, &ReadSize, Buffer);
|
Status = ShellWriteFile(DestHandle, &ReadSize, Buffer);
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,7 +42,7 @@ TypeFileByHandle (
|
||||||
UINTN LoopVar;
|
UINTN LoopVar;
|
||||||
CHAR16 AsciiChar;
|
CHAR16 AsciiChar;
|
||||||
|
|
||||||
ReadSize = PcdGet16(PcdShellFileOperationSize);
|
ReadSize = PcdGet32(PcdShellFileOperationSize);
|
||||||
Buffer = AllocateZeroPool(ReadSize);
|
Buffer = AllocateZeroPool(ReadSize);
|
||||||
if (Buffer == NULL) {
|
if (Buffer == NULL) {
|
||||||
return (EFI_OUT_OF_RESOURCES);
|
return (EFI_OUT_OF_RESOURCES);
|
||||||
|
@ -51,7 +51,7 @@ TypeFileByHandle (
|
||||||
Status = ShellSetFilePosition(Handle, 0);
|
Status = ShellSetFilePosition(Handle, 0);
|
||||||
ASSERT_EFI_ERROR(Status);
|
ASSERT_EFI_ERROR(Status);
|
||||||
|
|
||||||
while (ReadSize == ((UINTN)PcdGet16(PcdShellFileOperationSize))){
|
while (ReadSize == ((UINTN)PcdGet32(PcdShellFileOperationSize))){
|
||||||
ZeroMem(Buffer, ReadSize);
|
ZeroMem(Buffer, ReadSize);
|
||||||
Status = ShellReadFile(Handle, &ReadSize, Buffer);
|
Status = ShellReadFile(Handle, &ReadSize, Buffer);
|
||||||
if (EFI_ERROR(Status)){
|
if (EFI_ERROR(Status)){
|
||||||
|
|
|
@ -103,7 +103,7 @@
|
||||||
gEfiShellPkgTokenSpaceGuid.PcdShellMapNameLength|50|UINT8|0x00000009
|
gEfiShellPkgTokenSpaceGuid.PcdShellMapNameLength|50|UINT8|0x00000009
|
||||||
|
|
||||||
## This determins how many bytes are read out of files at a time for file operations (type, copy, etc...)
|
## This determins how many bytes are read out of files at a time for file operations (type, copy, etc...)
|
||||||
gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|1000|UINT16|0x0000000A
|
gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|1000|UINT32|0x0000000A
|
||||||
|
|
||||||
[PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
|
[PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx]
|
||||||
## This flag is used to control the protocols produced by the shell
|
## This flag is used to control the protocols produced by the shell
|
||||||
|
|
Loading…
Reference in New Issue