blob: 2d2c50176dbbcd4f35b01f70a6b4466d4769f931 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
#ifndef _IPXE_ERRNO_EFI_H
#define _IPXE_ERRNO_EFI_H
/**
* @file
*
* EFI platform error codes
*
* We derive our platform error codes from the possible values for
* EFI_STATUS defined in the UEFI specification.
*
* EFI_STATUS codes are 32/64-bit values consisting of a top bit which
* is set for errors and clear for warnings, and a mildly undefined
* code of low bits indicating the precise error/warning code. Errors
* and warnings have completely separate namespaces.
*
* We assume that no EFI_STATUS code will ever be defined which uses
* more than bits 0-6 of the low bits. We then choose to encode our
* platform-specific error by mapping bit 31/63 of the EFI_STATUS to
* bit 7 of the platform-specific error code, and preserving bits 0-6
* as-is.
*/
FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/efi/efi.h>
#include <ipxe/efi/Uefi/UefiBaseType.h>
/** Bit shift for EFI error/warning bit */
#define EFI_ERR_SHIFT ( 8 * ( sizeof ( EFI_STATUS ) - 1 ) )
/**
* Convert platform error code to platform component of iPXE error code
*
* @v platform Platform error code
* @ret errno Platform component of iPXE error code
*/
#define PLATFORM_TO_ERRNO( platform ) \
( ( (platform) | \
( ( ( EFI_STATUS ) (platform) ) >> EFI_ERR_SHIFT ) ) & 0xff )
/**
* Convert iPXE error code to platform error code
*
* @v errno iPXE error code
* @ret platform Platform error code
*/
#define ERRNO_TO_PLATFORM( errno ) \
( ( ( ( EFI_STATUS ) (errno) & 0x80 ) << EFI_ERR_SHIFT ) | \
( (errno) & 0x7f ) )
/* Platform-specific error codes */
#define PLATFORM_ENOERR EFI_SUCCESS
#define PLATFORM_E2BIG EFI_BUFFER_TOO_SMALL
#define PLATFORM_EACCES EFI_ACCESS_DENIED
#define PLATFORM_EADDRINUSE EFI_ALREADY_STARTED
#define PLATFORM_EADDRNOTAVAIL EFI_NOT_READY
#define PLATFORM_EAFNOSUPPORT EFI_UNSUPPORTED
#define PLATFORM_EAGAIN EFI_NOT_READY
#define PLATFORM_EALREADY EFI_ALREADY_STARTED
#define PLATFORM_EBADF EFI_INVALID_PARAMETER
#define PLATFORM_EBADMSG EFI_PROTOCOL_ERROR
#define PLATFORM_EBUSY EFI_NO_RESPONSE
#define PLATFORM_ECANCELED EFI_ABORTED
#define PLATFORM_ECHILD EFI_NOT_FOUND
#define PLATFORM_ECONNABORTED EFI_ABORTED
#define PLATFORM_ECONNREFUSED EFI_NO_RESPONSE
#define PLATFORM_ECONNRESET EFI_ABORTED
#define PLATFORM_EDEADLK EFI_NOT_READY
#define PLATFORM_EDESTADDRREQ EFI_PROTOCOL_ERROR
#define PLATFORM_EDOM EFI_INVALID_PARAMETER
#define PLATFORM_EDQUOT EFI_VOLUME_FULL
#define PLATFORM_EEXIST EFI_WRITE_PROTECTED
#define PLATFORM_EFAULT EFI_INVALID_PARAMETER
#define PLATFORM_EFBIG EFI_END_OF_MEDIA
#define PLATFORM_EHOSTUNREACH EFI_NO_RESPONSE
#define PLATFORM_EIDRM EFI_INVALID_PARAMETER
#define PLATFORM_EILSEQ EFI_INVALID_PARAMETER
#define PLATFORM_EINPROGRESS EFI_ALREADY_STARTED
#define PLATFORM_EINTR EFI_NOT_READY
#define PLATFORM_EINVAL EFI_INVALID_PARAMETER
#define PLATFORM_EIO EFI_PROTOCOL_ERROR
#define PLATFORM_EISCONN EFI_ALREADY_STARTED
#define PLATFORM_EISDIR EFI_PROTOCOL_ERROR
#define PLATFORM_ELOOP EFI_VOLUME_CORRUPTED
#define PLATFORM_EMFILE EFI_OUT_OF_RESOURCES
#define PLATFORM_EMLINK EFI_OUT_OF_RESOURCES
#define PLATFORM_EMSGSIZE EFI_BAD_BUFFER_SIZE
#define PLATFORM_EMULTIHOP EFI_INVALID_PARAMETER
#define PLATFORM_ENAMETOOLONG EFI_INVALID_PARAMETER
#define PLATFORM_ENETDOWN EFI_NO_RESPONSE
#define PLATFORM_ENETRESET EFI_ABORTED
#define PLATFORM_ENETUNREACH EFI_NO_RESPONSE
#define PLATFORM_ENFILE EFI_OUT_OF_RESOURCES
#define PLATFORM_ENOBUFS EFI_OUT_OF_RESOURCES
#define PLATFORM_ENODATA EFI_NO_RESPONSE
#define PLATFORM_ENODEV EFI_DEVICE_ERROR
#define PLATFORM_ENOENT EFI_NOT_FOUND
#define PLATFORM_ENOEXEC EFI_LOAD_ERROR
#define PLATFORM_ENOLCK EFI_OUT_OF_RESOURCES
#define PLATFORM_ENOLINK EFI_OUT_OF_RESOURCES
#define PLATFORM_ENOMEM EFI_OUT_OF_RESOURCES
#define PLATFORM_ENOMSG EFI_PROTOCOL_ERROR
#define PLATFORM_ENOPROTOOPT EFI_UNSUPPORTED
#define PLATFORM_ENOSPC EFI_VOLUME_FULL
#define PLATFORM_ENOSR EFI_OUT_OF_RESOURCES
#define PLATFORM_ENOSTR EFI_PROTOCOL_ERROR
#define PLATFORM_ENOSYS EFI_UNSUPPORTED
#define PLATFORM_ENOTCONN EFI_NOT_STARTED
#define PLATFORM_ENOTDIR EFI_VOLUME_CORRUPTED
#define PLATFORM_ENOTEMPTY EFI_VOLUME_CORRUPTED
#define PLATFORM_ENOTSOCK EFI_INVALID_PARAMETER
#define PLATFORM_ENOTSUP EFI_UNSUPPORTED
#define PLATFORM_ENOTTY EFI_UNSUPPORTED
#define PLATFORM_ENXIO EFI_NOT_FOUND
#define PLATFORM_EOPNOTSUPP EFI_UNSUPPORTED
#define PLATFORM_EOVERFLOW EFI_BUFFER_TOO_SMALL
#define PLATFORM_EPERM EFI_ACCESS_DENIED
#define PLATFORM_EPIPE EFI_ABORTED
#define PLATFORM_EPROTO EFI_PROTOCOL_ERROR
#define PLATFORM_EPROTONOSUPPORT EFI_UNSUPPORTED
#define PLATFORM_EPROTOTYPE EFI_INVALID_PARAMETER
#define PLATFORM_ERANGE EFI_BUFFER_TOO_SMALL
#define PLATFORM_EROFS EFI_WRITE_PROTECTED
#define PLATFORM_ESPIPE EFI_END_OF_FILE
#define PLATFORM_ESRCH EFI_NOT_STARTED
#define PLATFORM_ESTALE EFI_PROTOCOL_ERROR
#define PLATFORM_ETIME EFI_TIMEOUT
#define PLATFORM_ETIMEDOUT EFI_TIMEOUT
#define PLATFORM_ETXTBSY EFI_MEDIA_CHANGED
#define PLATFORM_EWOULDBLOCK EFI_NOT_READY
#define PLATFORM_EXDEV EFI_VOLUME_CORRUPTED
#endif /* _IPXE_ERRNO_EFI_H */
|