[efi] Add efi_strerror()

EFI_STATUS is defined as an INTN, which maps to UINT32 (i.e. unsigned
int) on i386 and UINT64 (i.e. unsigned long) on x86_64.  This would
require a cast each time the error status is printed.

Add efi_strerror() to avoid this ickiness and simultaneously enable
prettier reporting of EFI status codes.
This commit is contained in:
Michael Brown
2008-11-18 19:45:44 -08:00
parent d9b3d09910
commit 3f85626fa9
9 changed files with 81 additions and 31 deletions

View File

@@ -53,8 +53,8 @@ static void efi_udelay ( unsigned long usecs ) {
EFI_STATUS efirc;
if ( ( efirc = bs->Stall ( usecs ) ) != 0 ) {
DBG ( "EFI could not delay for %ldus: %x\n",
usecs, efirc );
DBG ( "EFI could not delay for %ldus: %s\n",
usecs, efi_strerror ( efirc ) );
/* Probably screwed */
}
}
@@ -71,7 +71,8 @@ static unsigned long efi_currticks ( void ) {
/* Read CPU timer 0 (TSC) */
if ( ( efirc = cpu_arch->GetTimerValue ( cpu_arch, 0, &time,
NULL ) ) != 0 ) {
DBG ( "EFI could not read CPU timer: %x\n", efirc );
DBG ( "EFI could not read CPU timer: %s\n",
efi_strerror ( efirc ) );
/* Probably screwed */
return -1UL;
}