541d9cbdbc45ae8fa7c5d2c03e5970c2182e0d03
[people/xl0/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 use this space for POSIX-like errors that aren't
115  * accounted for by the (somewhat implementation-specific) PXE error
116  * list.
117  */
118
119 #define ENOERR          0x00    /**< Operation completed successfully */
120 #define EACCES          0xd0    /**< Permission denied */
121 #define EADDRNOTAVAIL   0xd1    /**< Cannot assign requested address */
122 #define EADDRINUSE      EADDRNOTAVAIL /**< Address already in use */
123 #define EAFNOSUPPORT    0xd2    /**< Address family not supported by protocol*/
124 #define EAGAIN          0xd3    /**< Resource temporarily unavailable */
125 #define EBUSY           0xd4    /**< Device or resource busy */
126 /** Operation cancelled */
127 #define ECANCELED       PXENV_STATUS_BINL_CANCELED_BY_KEYSTROKE
128 #define ECHILD          ENOENT  /**< No child processes */
129 #define ECONNABORTED    0xd5    /**< Software caused connection abort */
130 #define ECONNREFUSED    0xd6    /**< Connection refused */
131 #define ECONNRESET      0xd7    /**< Connection reset by peer */
132 #define EDESTADDRREQ    0xd8    /**< Destination address required */
133 #define EFBIG           0xd9    /**< File too large */
134 #define EHOSTUNREACH    0xda    /**< No route to host */
135 #define EINPROGRESS     0xdb    /**< Operation now in progress */
136 #define EINTR           0xdc    /**< Interrupted system call */
137 #define EINVAL          0xdd    /**< Invalid argument */
138 #define EIO             0xde    /**< Input/output error */
139 #define EISCONN         0xdf    /**< Transport endpoint is already connected */
140 #define ELOOP           0xf8    /**< Too many symbolic links */
141 #define EMFILE          0xe0    /**< Too many open files */
142 #define EMSGSIZE        0xe1    /**< Message too long */
143 #define ENAMETOOLONG    0xe2    /**< File name too long */
144 #define ENETDOWN        0xe3    /**< Network is down */
145 #define ENETRESET       0xe4    /**< Network dropped connection on reset */
146 #define ENETUNREACH     0xe5    /**< Network is unreachable */
147 #define ENFILE          EMFILE  /**< Too many open files in system */
148 /** Cannot allocate memory */
149 #define ENOMEM          PXENV_STATUS_OUT_OF_RESOURCES
150 #define ENOBUFS         0xe6    /**< No buffer space available */
151 #define ENODATA         0xe7    /**< No data available */
152 #define ENODEV          0xe8    /**< No such device */
153 #define ENOENT          0xe9    /**< No such file or directory */
154 #define ENOEXEC         0xea    /**< Exec format error */
155 #define ENOMSG          ENODATA /**< No message of the desired type */
156 #define ENOSPC          0xeb    /**< No space left on device */
157 #define ENOSR           0xec    /**< No stream resources */
158 #define ENOSTR          0xed    /**< Not a stream */
159 #define ENOSYS          0xee    /**< Function not implemented */
160 #define ENOTCONN        0xef    /**< Transport endpoint is not connected */
161 #define ENOTSOCK        0xf0    /**< Socket operation on non-socket */
162 #define ENOTSUP         0xf1    /**< Not supported */
163 #define ENOTTY          0xf2    /**< Inappropriate ioctl for device */
164 #define ENXIO           ENODEV  /**< No such device or address */
165 #define EOPNOTSUPP      ENOTSUP /**< Operation not supported */
166 #define EOVERFLOW       0xf3    /**< Result too large */
167 #define EPERM           EACCES  /**< Operation not permitted */
168 #define EPROTO          0xf4    /**< Protocol error */
169 #define EPROTONOSUPPORT 0xf5    /**< Protocol not supported */
170 #define EPROTOTYPE      0xf6    /**< Protocol wrong type for socket */
171 #define ERANGE          EOVERFLOW /**< Result too large */
172 #define ETIMEDOUT       0xf7    /**< Connection timed out */
173 #define EWOULDBLOCK     EAGAIN  /**< Resource temporarily unavailable */
174
175 extern int errno;
176
177 #endif /* ERRNO_H */