gnu-efi/0003-Fixed-typeo-lib-error....

186 lines
5.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nigel Croxon <ncroxon@redhat.com>
Date: Wed, 9 Jan 2019 07:03:46 -0500
Subject: [PATCH] * Fixed typeo lib/error.c EFI_WARN_UNKNOWN_GLYPH definition.
On couple of locations in runtime string library (rtstr.c) there are calls to
non-runtime variant of StrLen function. * Another issue is with formatting
1394 paths. The F1394_DEVICE_PATH::Guid is formatted as %g, but 1394 GUID is
8 byte integer, not EFI_GUID and therefore should be formatted as e.g. %016lx
(as edk2 does). * Beyond what's mentioned above, changed the format of the
harddrive path, so it's in line with edk2 format and spec (2.7 errata A,
chapter 10.6.1.6, table 102).
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
Signed-off-by: manison <manison@users.sf.net>
---
inc/efidevp.h | 10 +++++-----
lib/dpath.c | 26 ++++++++++++++------------
lib/error.c | 2 +-
lib/runtime/rtstr.c | 12 ++++++------
4 files changed, 26 insertions(+), 24 deletions(-)
diff --git a/inc/efidevp.h b/inc/efidevp.h
index ffaf6e28eea..fa1a235eaba 100644
--- a/inc/efidevp.h
+++ b/inc/efidevp.h
@@ -325,11 +325,11 @@ typedef struct _VLAN_DEVICE_PATH {
#define MSG_INFINIBAND_DP 0x09
typedef struct _INFINIBAND_DEVICE_PATH {
EFI_DEVICE_PATH_PROTOCOL Header;
- UINT32 ResourceFlags ;
- UINT64 PortGid ;
- UINT64 ServiceId ;
- UINT64 TargetPortId ;
- UINT64 DeviceId ;
+ UINT32 ResourceFlags;
+ UINT8 PortGid[16];
+ UINT64 ServiceId;
+ UINT64 TargetPortId;
+ UINT64 DeviceId;
} INFINIBAND_DEVICE_PATH;
#define MSG_UART_DP 0x0e
diff --git a/lib/dpath.c b/lib/dpath.c
index 7486252eecf..5e079d687bd 100644
--- a/lib/dpath.c
+++ b/lib/dpath.c
@@ -659,7 +659,8 @@ _DevPath1394 (
F1394_DEVICE_PATH *F1394;
F1394 = DevPath;
- CatPrint(Str, L"1394(%g)", &F1394->Guid);
+ // Guid has format of IEEE-EUI64
+ CatPrint(Str, L"I1394(%016lx)", F1394->Guid);
}
@@ -863,9 +864,9 @@ _DevPathInfiniBand (
INFINIBAND_DEVICE_PATH *InfiniBand;
InfiniBand = DevPath;
- CatPrint( Str , L"Infiniband(0x%x,%g,0x%lx,0x%lx,0x%lx)" ,
- InfiniBand-> ResourceFlags , InfiniBand-> PortGid , InfiniBand-> ServiceId ,
- InfiniBand-> TargetPortId , InfiniBand-> DeviceId ) ;
+ CatPrint(Str, L"Infiniband(0x%x,%g,0x%lx,0x%lx,0x%lx)",
+ InfiniBand->ResourceFlags, InfiniBand->PortGid, InfiniBand->ServiceId,
+ InfiniBand->TargetPortId, InfiniBand->DeviceId);
}
static VOID
@@ -889,17 +890,19 @@ _DevPathUart (
}
if (Uart->BaudRate == 0) {
- CatPrint(Str, L"Uart(DEFAULT %c",Uart->BaudRate,Parity);
+ CatPrint(Str, L"Uart(DEFAULT,");
} else {
- CatPrint(Str, L"Uart(%d %c",Uart->BaudRate,Parity);
+ CatPrint(Str, L"Uart(%ld,", Uart->BaudRate);
}
if (Uart->DataBits == 0) {
- CatPrint(Str, L"D");
+ CatPrint(Str, L"DEFAULT,");
} else {
- CatPrint(Str, L"%d",Uart->DataBits);
+ CatPrint(Str, L"%d,", Uart->DataBits);
}
+ CatPrint(Str, L"%c,", Parity);
+
switch (Uart->StopBits) {
case 0 : CatPrint(Str, L"D)"); break;
case 1 : CatPrint(Str, L"1)"); break;
@@ -933,21 +936,20 @@ _DevPathHardDrive (
Hd = DevPath;
switch (Hd->SignatureType) {
case SIGNATURE_TYPE_MBR:
- CatPrint(Str, L"HD(Part%d,Sig%08X)",
+ CatPrint(Str, L"HD(%d,MBR,0x%08x)",
Hd->PartitionNumber,
*((UINT32 *)(&(Hd->Signature[0])))
);
break;
case SIGNATURE_TYPE_GUID:
- CatPrint(Str, L"HD(Part%d,Sig%g)",
+ CatPrint(Str, L"HD(%d,GPT,%g)",
Hd->PartitionNumber,
(EFI_GUID *) &(Hd->Signature[0])
);
break;
default:
- CatPrint(Str, L"HD(Part%d,MBRType=%02x,SigType=%02x)",
+ CatPrint(Str, L"HD(%d,%d,0)",
Hd->PartitionNumber,
- Hd->MBRType,
Hd->SignatureType
);
break;
diff --git a/lib/error.c b/lib/error.c
index 3a856a6f39d..c4d053db633 100644
--- a/lib/error.c
+++ b/lib/error.c
@@ -56,7 +56,7 @@ struct {
{ EFI_COMPROMISED_DATA, L"Compromised Data"},
// warnings
- { EFI_WARN_UNKOWN_GLYPH, L"Warning Unknown Glyph"},
+ { EFI_WARN_UNKNOWN_GLYPH, L"Warning Unknown Glyph"},
{ EFI_WARN_DELETE_FAILURE, L"Warning Delete Failure"},
{ EFI_WARN_WRITE_FAILURE, L"Warning Write Failure"},
{ EFI_WARN_BUFFER_TOO_SMALL, L"Warning Buffer Too Small"},
diff --git a/lib/runtime/rtstr.c b/lib/runtime/rtstr.c
index 73965cae192..802e7f43309 100644
--- a/lib/runtime/rtstr.c
+++ b/lib/runtime/rtstr.c
@@ -18,7 +18,7 @@ Revision History
#include "lib.h"
#ifndef __GNUC__
-#pragma RUNTIME_CODE(RtAcquireLock)
+#pragma RUNTIME_CODE(RtStrCmp)
#endif
INTN
RUNTIMEFUNCTION
@@ -76,7 +76,7 @@ RtStrnCpy (
}
#ifndef __GNUC__
-#pragma RUNTIME_CODE(RtStrCpy)
+#pragma RUNTIME_CODE(RtStpCpy)
#endif
CHAR16 *
RUNTIMEFUNCTION
@@ -122,7 +122,7 @@ RtStrCat (
IN CONST CHAR16 *Src
)
{
- RtStrCpy(Dest+StrLen(Dest), Src);
+ RtStrCpy(Dest+RtStrLen(Dest), Src);
}
#ifndef __GNUC__
@@ -138,7 +138,7 @@ RtStrnCat (
{
UINTN DestSize, Size;
- DestSize = StrLen(Dest);
+ DestSize = RtStrLen(Dest);
Size = RtStrnLen(Src, Len);
RtCopyMem(Dest + DestSize, Src, Size * sizeof(CHAR16));
Dest[DestSize + Size] = '\0';
@@ -169,11 +169,11 @@ RtStrnLen (
IN CONST CHAR16 *s1,
IN UINTN Len
)
-// copy strings
+// string length
{
UINTN i;
for (i = 0; *s1 && i < Len; i++)
- s1++;
+ s1++;
return i;
}