#define EOIB_NUM_SEND_WQES 8 /** Number of EoIB receive work queue entries */ #define EOIB_NUM_RECV_WQES 4 /** Number of EoIB completion queue entries */ #define EOIB_NUM_CQES 16 /** Link status for "broadcast join in progress" */ #define EINPROGRESS_JOINING __einfo_error ( EINFO_EINPROGRESS_JOINING ) #define EINFO_EINPROGRESS_JOINING __einfo_uniqify \ ( EINFO_EINPROGRESS, 0x01, "Joining" ) /** Human-readable message for the link status */ struct errortab eoib_errors[] __errortab = { __einfo_errortab ( EINFO_EINPROGRESS_JOINING ), }; /** List of EoIB devices */ static LIST_HEAD ( eoib_devices ); static struct net_device_operations eoib_operations; /**************************************************************************** * * EoIB peer cache * **************************************************************************** */ /** An EoIB peer cache entry */
* Network interface management * */ /** Default time to wait for link-up */ #define LINK_WAIT_TIMEOUT ( 15 * TICKS_PER_SEC ) /** Default unsuccessful configuration status code */ #define EADDRNOTAVAIL_CONFIG __einfo_error ( EINFO_EADDRNOTAVAIL_CONFIG ) #define EINFO_EADDRNOTAVAIL_CONFIG \ __einfo_uniqify ( EINFO_EADDRNOTAVAIL, 0x01, \ "No configuration methods succeeded" ) /** Human-readable error message */ struct errortab ifmgmt_errors[] __errortab = { __einfo_errortab ( EINFO_EADDRNOTAVAIL_CONFIG ), }; /** * Open network device * * @v netdev Network device * @ret rc Return status code */ int ifopen ( struct net_device *netdev ) { int rc; if ( ( rc = netdev_open ( netdev ) ) != 0 ) { printf ( "Could not open %s: %s\n", netdev->name, strerror ( rc ) ); return rc;
#include <ipxe/uaccess.h> #include <ipxe/io.h> #include <ipxe/errortab.h> #include <ipxe/segment.h> /** * Segment-specific error messages * * This error happens sufficiently often to merit a user-friendly * description. */ #define ERANGE_SEGMENT __einfo_error ( EINFO_ERANGE_SEGMENT ) #define EINFO_ERANGE_SEGMENT \ __einfo_uniqify ( EINFO_ERANGE, 0x01, "Requested memory not available" ) struct errortab segment_errors[] __errortab = { __einfo_errortab ( EINFO_ERANGE_SEGMENT ), }; /** * Prepare segment for loading * * @v segment Segment start * @v filesz Size of the "allocated bytes" portion of the segment * @v memsz Size of the segment * @ret rc Return status code */ int prep_segment ( userptr_t segment, size_t filesz, size_t memsz ) { struct memory_map memmap; physaddr_t start = user_to_phys ( segment, 0 ); physaddr_t mid = user_to_phys ( segment, filesz ); physaddr_t end = user_to_phys ( segment, memsz );
} else { snprintf ( errbuf, sizeof ( errbuf ), "Error %#08x (" PRODUCT_ERROR_URI ")", errno, errno ); } return errbuf; } /* Do not include ERRFILE portion in the numbers in the error table */ #undef ERRFILE #define ERRFILE 0 /** The most common errors */ struct errortab common_errors[] __errortab = { __einfo_errortab ( EINFO_ENOERR ), __einfo_errortab ( EINFO_EACCES ), __einfo_errortab ( EINFO_ECANCELED ), __einfo_errortab ( EINFO_ECONNRESET ), __einfo_errortab ( EINFO_EINVAL ), __einfo_errortab ( EINFO_EIO ), __einfo_errortab ( EINFO_ENETUNREACH ), __einfo_errortab ( EINFO_ENODEV ), __einfo_errortab ( EINFO_ENOENT ), __einfo_errortab ( EINFO_ENOEXEC ), __einfo_errortab ( EINFO_ENOMEM ), __einfo_errortab ( EINFO_ENOSPC ), __einfo_errortab ( EINFO_ENOTCONN ), __einfo_errortab ( EINFO_ENOTSUP ), __einfo_errortab ( EINFO_EPERM ), __einfo_errortab ( EINFO_ERANGE ),
*/ FILE_LICENCE ( GPL2_OR_LATER ); #include <errno.h> #include <gpxe/errortab.h> #include <gpxe/net80211_err.h> /* Record errors as though they come from the 802.11 stack */ #undef ERRFILE #define ERRFILE ERRFILE_net80211 /** All 802.11 errors */ struct errortab wireless_errors[] __errortab = { __einfo_errortab ( EINFO_EINVAL_PKT_TOO_SHORT ), __einfo_errortab ( EINFO_EINVAL_PKT_VERSION ), __einfo_errortab ( EINFO_EINVAL_PKT_NOT_DATA ), __einfo_errortab ( EINFO_EINVAL_PKT_NOT_FROMDS ), __einfo_errortab ( EINFO_EINVAL_PKT_LLC_HEADER ), __einfo_errortab ( EINFO_EINVAL_CRYPTO_REQUEST ), __einfo_errortab ( EINFO_EINVAL_ACTIVE_SCAN ), __einfo_errortab ( EINFO_ECONNREFUSED_FAILURE ), __einfo_errortab ( EINFO_ECONNREFUSED_CAPAB_UNSUPP ), __einfo_errortab ( EINFO_ECONNREFUSED_REASSOC_INVALID ), __einfo_errortab ( EINFO_ECONNREFUSED_ASSOC_DENIED ), __einfo_errortab ( EINFO_ECONNREFUSED_AUTH_ALGO_UNSUPP ), __einfo_errortab ( EINFO_ECONNREFUSED_AUTH_SEQ_INVALID ), __einfo_errortab ( EINFO_ECONNREFUSED_AUTH_CHALL_INVALID ), __einfo_errortab ( EINFO_ECONNREFUSED_AUTH_TIMEOUT ), __einfo_errortab ( EINFO_ECONNREFUSED_ASSOC_NO_ROOM ),
#define EINFO_EPROTO_NOBINDING \ __einfo_uniqify ( EINFO_EPROTO, 3, "Client record unavailable" ) #define EPROTO_NOTONLINK __einfo_error ( EINFO_EPROTO_NOTONLINK ) #define EINFO_EPROTO_NOTONLINK \ __einfo_uniqify ( EINFO_EPROTO, 4, "Prefix not on link" ) #define EPROTO_USEMULTICAST __einfo_error ( EINFO_EPROTO_USEMULTICAST ) #define EINFO_EPROTO_USEMULTICAST \ __einfo_uniqify ( EINFO_EPROTO, 5, "Use multicast address" ) #define EPROTO_STATUS( status ) \ EUNIQ ( EINFO_EPROTO, ( (status) & 0x0f ), EPROTO_UNSPECFAIL, \ EPROTO_NOADDRSAVAIL, EPROTO_NOBINDING, \ EPROTO_NOTONLINK, EPROTO_USEMULTICAST ) /** Human-readable error messages */ struct errortab dhcpv6_errors[] __errortab = { __einfo_errortab ( EINFO_EPROTO_NOADDRSAVAIL ), }; /**************************************************************************** * * DHCPv6 option lists * */ /** A DHCPv6 option list */ struct dhcpv6_option_list { /** Data buffer */ const void *data; /** Length of data buffer */ size_t len; };