xref: /netbsd/sys/external/bsd/gnu-efi/dist/lib/error.c (revision 51e65385)
1*51e65385Sjmcneill /*	$NetBSD: error.c,v 1.1.1.3 2021/09/30 18:50:09 jmcneill Exp $	*/
201d0c315Sjakllsch 
301d0c315Sjakllsch /*++
401d0c315Sjakllsch 
501d0c315Sjakllsch Copyright (c) 1998  Intel Corporation
601d0c315Sjakllsch 
701d0c315Sjakllsch Module Name:
801d0c315Sjakllsch 
901d0c315Sjakllsch     error.c
1001d0c315Sjakllsch 
1101d0c315Sjakllsch Abstract:
1201d0c315Sjakllsch 
1301d0c315Sjakllsch 
1401d0c315Sjakllsch 
1501d0c315Sjakllsch 
1601d0c315Sjakllsch Revision History
1701d0c315Sjakllsch 
1801d0c315Sjakllsch --*/
1901d0c315Sjakllsch 
2001d0c315Sjakllsch #include "lib.h"
2101d0c315Sjakllsch 
2201d0c315Sjakllsch 
2301d0c315Sjakllsch struct {
2401d0c315Sjakllsch     EFI_STATUS      Code;
2501d0c315Sjakllsch     WCHAR	    *Desc;
2601d0c315Sjakllsch } ErrorCodeTable[] = {
2701d0c315Sjakllsch 	{  EFI_SUCCESS,                L"Success"},
2801d0c315Sjakllsch 	{  EFI_LOAD_ERROR,             L"Load Error"},
2901d0c315Sjakllsch 	{  EFI_INVALID_PARAMETER,      L"Invalid Parameter"},
3001d0c315Sjakllsch 	{  EFI_UNSUPPORTED,            L"Unsupported"},
3101d0c315Sjakllsch 	{  EFI_BAD_BUFFER_SIZE,        L"Bad Buffer Size"},
3201d0c315Sjakllsch 	{  EFI_BUFFER_TOO_SMALL,       L"Buffer Too Small"},
3301d0c315Sjakllsch 	{  EFI_NOT_READY,              L"Not Ready"},
3401d0c315Sjakllsch 	{  EFI_DEVICE_ERROR,           L"Device Error"},
3501d0c315Sjakllsch 	{  EFI_WRITE_PROTECTED,        L"Write Protected"},
3601d0c315Sjakllsch 	{  EFI_OUT_OF_RESOURCES,       L"Out of Resources"},
3701d0c315Sjakllsch 	{  EFI_VOLUME_CORRUPTED,       L"Volume Corrupt"},
3801d0c315Sjakllsch 	{  EFI_VOLUME_FULL,            L"Volume Full"},
3901d0c315Sjakllsch 	{  EFI_NO_MEDIA,               L"No Media"},
4001d0c315Sjakllsch 	{  EFI_MEDIA_CHANGED,          L"Media changed"},
4101d0c315Sjakllsch 	{  EFI_NOT_FOUND,              L"Not Found"},
4201d0c315Sjakllsch 	{  EFI_ACCESS_DENIED,          L"Access Denied"},
4301d0c315Sjakllsch 	{  EFI_NO_RESPONSE,            L"No Response"},
4401d0c315Sjakllsch 	{  EFI_NO_MAPPING,             L"No mapping"},
4501d0c315Sjakllsch 	{  EFI_TIMEOUT,                L"Time out"},
4601d0c315Sjakllsch 	{  EFI_NOT_STARTED,            L"Not started"},
4701d0c315Sjakllsch 	{  EFI_ALREADY_STARTED,        L"Already started"},
4801d0c315Sjakllsch 	{  EFI_ABORTED,                L"Aborted"},
4901d0c315Sjakllsch 	{  EFI_ICMP_ERROR,             L"ICMP Error"},
5001d0c315Sjakllsch 	{  EFI_TFTP_ERROR,             L"TFTP Error"},
5101d0c315Sjakllsch 	{  EFI_PROTOCOL_ERROR,         L"Protocol Error"},
52974f52d2Sjmcneill 	{  EFI_INCOMPATIBLE_VERSION,   L"Incompatible Version"},
53974f52d2Sjmcneill 	{  EFI_SECURITY_VIOLATION,     L"Security Policy Violation"},
54974f52d2Sjmcneill 	{  EFI_CRC_ERROR,              L"CRC Error"},
55974f52d2Sjmcneill 	{  EFI_END_OF_MEDIA,           L"End of Media"},
56974f52d2Sjmcneill 	{  EFI_END_OF_FILE,            L"End of File"},
57974f52d2Sjmcneill 	{  EFI_INVALID_LANGUAGE,       L"Invalid Languages"},
58974f52d2Sjmcneill 	{  EFI_COMPROMISED_DATA,       L"Compromised Data"},
5901d0c315Sjakllsch 
6001d0c315Sjakllsch 	// warnings
61*51e65385Sjmcneill 	{  EFI_WARN_UNKNOWN_GLYPH,     L"Warning Unknown Glyph"},
6201d0c315Sjakllsch 	{  EFI_WARN_DELETE_FAILURE,    L"Warning Delete Failure"},
6301d0c315Sjakllsch 	{  EFI_WARN_WRITE_FAILURE,     L"Warning Write Failure"},
6401d0c315Sjakllsch 	{  EFI_WARN_BUFFER_TOO_SMALL,  L"Warning Buffer Too Small"},
6501d0c315Sjakllsch 	{  0, NULL}
6601d0c315Sjakllsch } ;
6701d0c315Sjakllsch 
6801d0c315Sjakllsch 
6901d0c315Sjakllsch VOID
StatusToString(OUT CHAR16 * Buffer,IN EFI_STATUS Status)7001d0c315Sjakllsch StatusToString (
7101d0c315Sjakllsch     OUT CHAR16          *Buffer,
7201d0c315Sjakllsch     IN EFI_STATUS       Status
7301d0c315Sjakllsch     )
7401d0c315Sjakllsch {
7501d0c315Sjakllsch     UINTN           Index;
7601d0c315Sjakllsch 
7701d0c315Sjakllsch     for (Index = 0; ErrorCodeTable[Index].Desc; Index +=1) {
7801d0c315Sjakllsch         if (ErrorCodeTable[Index].Code == Status) {
7901d0c315Sjakllsch 	    StrCpy (Buffer, ErrorCodeTable[Index].Desc);
8001d0c315Sjakllsch             return;
8101d0c315Sjakllsch         }
8201d0c315Sjakllsch     }
8301d0c315Sjakllsch 
84*51e65385Sjmcneill     UnicodeSPrint (Buffer, 0, L"%X", Status);
8501d0c315Sjakllsch }
86