Added ENOENT and EAFNOSUPPORT
[gpxe.git] / src / include / errno.h
1 #ifndef ERRNO_H
2 #define ERRNO_H
3
4 /** @file
5  *
6  * Error codes
7  *
8  */
9
10 /* PXE error codes are determined by the PXE specification */
11
12 /* Generic errors */
13 #define PXENV_STATUS_SUCCESS                            0x00
14 #define PXENV_STATUS_FAILURE                            0x01
15 #define PXENV_STATUS_BAD_FUNC                           0x02
16 #define PXENV_STATUS_UNSUPPORTED                        0x03
17 #define PXENV_STATUS_KEEP_UNDI                          0x04
18 #define PXENV_STATUS_KEEP_ALL                           0x05
19 #define PXENV_STATUS_OUT_OF_RESOURCES                   0x06
20
21 /* ARP errors (0x10 to 0x1f) */
22 #define PXENV_STATUS_ARP_TIMEOUT                        0x11
23
24 /* Base-Code state errors */
25 #define PXENV_STATUS_UDP_CLOSED                         0x18
26 #define PXENV_STATUS_UDP_OPEN                           0x19
27 #define PXENV_STATUS_TFTP_CLOSED                        0x1a
28 #define PXENV_STATUS_TFTP_OPEN                          0x1b
29
30 /* BIOS/system errors (0x20 to 0x2f) */
31 #define PXENV_STATUS_MCOPY_PROBLEM                      0x20
32 #define PXENV_STATUS_BIS_INTEGRITY_FAILURE              0x21
33 #define PXENV_STATUS_BIS_VALIDATE_FAILURE               0x22
34 #define PXENV_STATUS_BIS_INIT_FAILURE                   0x23
35 #define PXENV_STATUS_BIS_SHUTDOWN_FAILURE               0x24
36 #define PXENV_STATUS_BIS_GBOA_FAILURE                   0x25
37 #define PXENV_STATUS_BIS_FREE_FAILURE                   0x26
38 #define PXENV_STATUS_BIS_GSI_FAILURE                    0x27
39 #define PXENV_STATUS_BIS_BAD_CKSUM                      0x28
40
41 /* TFTP/MTFTP errors (0x30 to 0x3f) */
42 #define PXENV_STATUS_TFTP_CANNOT_ARP_ADDRESS            0x30
43 #define PXENV_STATUS_TFTP_OPEN_TIMEOUT                  0x32
44 #define PXENV_STATUS_TFTP_UNKNOWN_OPCODE                0x33
45 #define PXENV_STATUS_TFTP_READ_TIMEOUT                  0x35
46 #define PXENV_STATUS_TFTP_ERROR_OPCODE                  0x36
47 #define PXENV_STATUS_TFTP_CANNOT_OPEN_CONNECTION        0x38
48 #define PXENV_STATUS_TFTP_CANNOT_READ_FROM_CONNECTION   0x39
49 #define PXENV_STATUS_TFTP_TOO_MANY_PACKAGES             0x3a
50 #define PXENV_STATUS_TFTP_FILE_NOT_FOUND                0x3b
51 #define PXENV_STATUS_TFTP_ACCESS_VIOLATION              0x3c
52 #define PXENV_STATUS_TFTP_NO_MCAST_ADDRESS              0x3d
53 #define PXENV_STATUS_TFTP_NO_FILESIZE                   0x3e
54 #define PXENV_STATUS_TFTP_INVALID_PACKET_SIZE           0x3f
55
56 /* Reserved errors 0x40 to 0x4f) */
57
58 /* DHCP/BOOTP errors (0x50 to 0x5f) */
59 #define PXENV_STATUS_DHCP_TIMEOUT                       0x51
60 #define PXENV_STATUS_DHCP_NO_IP_ADDRESS                 0x52
61 #define PXENV_STATUS_DHCP_NO_BOOTFILE_NAME              0x53
62 #define PXENV_STATUS_DHCP_BAD_IP_ADDRESS                0x54
63
64 /* Driver errors (0x60 to 0x6f) */
65 #define PXENV_STATUS_UNDI_INVALID_FUNCTION              0x60
66 #define PXENV_STATUS_UNDI_MEDIATEST_FAILED              0x61
67 #define PXENV_STATUS_UNDI_CANNOT_INIT_NIC_FOR_MCAST     0x62
68 #define PXENV_STATUS_UNDI_CANNOT_INITIALIZE_NIC         0x63
69 #define PXENV_STATUS_UNDI_CANNOT_INITIALIZE_PHY         0x64
70 #define PXENV_STATUS_UNDI_CANNOT_READ_CONFIG_DATA       0x65
71 #define PXENV_STATUS_UNDI_CANNOT_READ_INIT_DATA         0x66
72 #define PXENV_STATUS_UNDI_BAD_MAC_ADDRESS               0x67
73 #define PXENV_STATUS_UNDI_BAD_EEPROM_CHECKSUM           0x68
74 #define PXENV_STATUS_UNDI_ERROR_SETTING_ISR             0x69
75 #define PXENV_STATUS_UNDI_INVALID_STATE                 0x6a
76 #define PXENV_STATUS_UNDI_TRANSMIT_ERROR                0x6b
77 #define PXENV_STATUS_UNDI_INVALID_PARAMETER             0x6c
78
79 /* ROM and NBP bootstrap errors (0x70 to 0x7f) */
80 #define PXENV_STATUS_BSTRAP_PROMPT_MENU                 0x74
81 #define PXENV_STATUS_BSTRAP_MCAST_ADDR                  0x76
82 #define PXENV_STATUS_BSTRAP_MISSING_LIST                0x77
83 #define PXENV_STATUS_BSTRAP_NO_RESPONSE                 0x78
84 #define PXENV_STATUS_BSTRAP_FILE_TOO_BIG                0x79
85
86 /* Environment NBP errors (0x80 to 0x8f) */
87
88 /* Reserved errors (0x90 to 0x9f) */
89
90 /* Miscellaneous errors (0xa0 to 0xaf) */
91 #define PXENV_STATUS_BINL_CANCELED_BY_KEYSTROKE         0xa0
92 #define PXENV_STATUS_BINL_NO_PXE_SERVER                 0xa1
93 #define PXENV_STATUS_NOT_AVAILABLE_IN_PMODE             0xa2
94 #define PXENV_STATUS_NOT_AVAILABLE_IN_RMODE             0xa3
95
96 /* BUSD errors (0xb0 to 0xbf) */
97 #define PXENV_STATUS_BUSD_DEVICE_NOT_SUPPORTED          0xb0
98
99 /* Loader errors (0xc0 to 0xcf) */
100 #define PXENV_STATUS_LOADER_NO_FREE_BASE_MEMORY         0xc0
101 #define PXENV_STATUS_LOADER_NO_BC_ROMID                 0xc1
102 #define PXENV_STATUS_LOADER_BAD_BC_ROMID                0xc2
103 #define PXENV_STATUS_LOADER_BAD_BC_RUNTIME_IMAGE        0xc3
104 #define PXENV_STATUS_LOADER_NO_UNDI_ROMID               0xc4
105 #define PXENV_STATUS_LOADER_BAD_UNDI_ROMID              0xc5
106 #define PXENV_STATUS_LOADER_BAD_UNDI_DRIVER_IMAGE       0xc6
107 #define PXENV_STATUS_LOADER_NO_PXE_STRUCT               0xc8
108 #define PXENV_STATUS_LOADER_NO_PXENV_STRUCT             0xc9
109 #define PXENV_STATUS_LOADER_UNDI_START                  0xca
110 #define PXENV_STATUS_LOADER_BC_START                    0xcb
111
112 /*
113  * The range 0xd0 to 0xff is defined as "Vendor errors" by the PXE
114  * spec.  We place all our Etherboot-specific errors in this range.
115  * We also define some generic errors as aliases to the PXE errors.
116  *
117  */
118
119 #define ENOERR          0x00
120 #define ENOMEM          PXENV_STATUS_OUT_OF_RESOURCES
121 #define EBADIMG         0xd0
122 #define EIMGRET         0xd1
123 #define ETIMEDOUT       0xd2
124 #define EINVAL          0xd3
125 #define ENOENT          0xd4
126 #define EAFNOSUPPORT    0xd5
127
128 /* Data structures and declarations */
129
130 #include "tables.h"
131
132 extern int errno;
133
134 extern const char * strerror ( int errno );
135
136 struct errortab {
137         int errno;
138         const char *text;
139 };
140
141 #define __errortab __table(errortab,01)
142
143 #endif /* ERRNO_H */