summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorMichael Brown2013-04-18 02:05:32 +0200
committerMichael Brown2013-04-19 01:45:13 +0200
commite42bc3aa37698941be20cccde599af39c69227e2 (patch)
tree4e6232b003056ad3ae52281407ff73a24e56c803 /src/include
parent[efi] Remove obsolete EFI I/O implementation using EFI_CPU_IO_PROTOCOL (diff)
downloadipxe-e42bc3aa37698941be20cccde599af39c69227e2.tar.gz
ipxe-e42bc3aa37698941be20cccde599af39c69227e2.tar.xz
ipxe-e42bc3aa37698941be20cccde599af39c69227e2.zip
[libc] Use __einfo() tuple as first argument to EUNIQ()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/include')
-rw-r--r--src/include/errno.h11
-rw-r--r--src/include/ipxe/net80211_err.h148
2 files changed, 81 insertions, 78 deletions
diff --git a/src/include/errno.h b/src/include/errno.h
index bd4ddaf41..bb70136bd 100644
--- a/src/include/errno.h
+++ b/src/include/errno.h
@@ -187,8 +187,8 @@ extern char missing_errfile_declaration[] __attribute__ (( deprecated ));
/**
* Disambiguate a base error based on non-constant information
*
- * @v error_base Base error
- * @v uniq Error disambiguator
+ * @v einfo_base Base error information
+ * @v uniq Error disambiguator (0x00-0x1f)
* @v ... List of expected possible disambiguated errors
* @ret error Error
*
@@ -200,9 +200,10 @@ extern char missing_errfile_declaration[] __attribute__ (( deprecated ));
* EUNIQ() should not be used for constant error disambiguators; use
* __einfo_uniqify() instead.
*/
-#define EUNIQ( errno, uniq, ... ) ( { \
- euniq_discard ( 0, ##__VA_ARGS__); \
- ( ( int ) ( (errno) | ( (uniq) << 8 ) ) ); } )
+#define EUNIQ( einfo_base, uniq, ... ) ( { \
+ euniq_discard ( 0, ##__VA_ARGS__ ); \
+ ( ( int ) ( __einfo_error ( einfo_base ) | \
+ ( (uniq) << 8 ) ) ); } )
static inline void euniq_discard ( int dummy __unused, ... ) {}
/**
diff --git a/src/include/ipxe/net80211_err.h b/src/include/ipxe/net80211_err.h
index 2175b1438..7df3d0d85 100644
--- a/src/include/ipxe/net80211_err.h
+++ b/src/include/ipxe/net80211_err.h
@@ -553,81 +553,83 @@ FILE_LICENCE ( GPL2_OR_LATER );
/** Make return status code from 802.11 status code */
#define E80211_STATUS( stat ) \
- EUNIQ ( ( ( stat & 0x20 ) ? EHOSTUNREACH : ECONNREFUSED ), \
- ( stat &0x1f ), \
- ECONNREFUSED_FAILURE, \
- ECONNREFUSED_CAPAB_UNSUPP, \
- ECONNREFUSED_REASSOC_INVALID, \
- ECONNREFUSED_ASSOC_DENIED, \
- ECONNREFUSED_AUTH_ALGO_UNSUPP, \
- ECONNREFUSED_AUTH_SEQ_INVALID, \
- ECONNREFUSED_AUTH_CHALL_INVALID, \
- ECONNREFUSED_AUTH_TIMEOUT, \
- ECONNREFUSED_ASSOC_NO_ROOM, \
- ECONNREFUSED_ASSOC_NEED_RATE, \
- ECONNREFUSED_ASSOC_NEED_SHORT_PMBL, \
- ECONNREFUSED_ASSOC_NEED_PBCC, \
- ECONNREFUSED_ASSOC_NEED_CHAN_AGILITY, \
- ECONNREFUSED_ASSOC_NEED_SPECTRUM_MGMT, \
- ECONNREFUSED_ASSOC_BAD_POWER, \
- ECONNREFUSED_ASSOC_BAD_CHANNELS, \
- ECONNREFUSED_ASSOC_NEED_SHORT_SLOT, \
- ECONNREFUSED_ASSOC_NEED_DSSS_OFDM, \
- EHOSTUNREACH_QOS_FAILURE, \
- EHOSTUNREACH_QOS_NO_ROOM, \
- EHOSTUNREACH_LINK_IS_HORRIBLE, \
- EHOSTUNREACH_ASSOC_NEED_QOS, \
- EHOSTUNREACH_REQUEST_DECLINED, \
- EHOSTUNREACH_REQUEST_INVALID, \
- EHOSTUNREACH_TS_NOT_CREATED_AGAIN, \
- EHOSTUNREACH_INVALID_IE, \
- EHOSTUNREACH_GROUP_CIPHER_INVALID, \
- EHOSTUNREACH_PAIR_CIPHER_INVALID, \
- EHOSTUNREACH_AKMP_INVALID, \
- EHOSTUNREACH_RSN_VERSION_UNSUPP, \
- EHOSTUNREACH_RSN_CAPAB_INVALID, \
- EHOSTUNREACH_CIPHER_REJECTED, \
- EHOSTUNREACH_TS_NOT_CREATED_WAIT, \
- EHOSTUNREACH_DIRECT_LINK_FORBIDDEN, \
- EHOSTUNREACH_DEST_NOT_PRESENT, \
- EHOSTUNREACH_DEST_NOT_QOS, \
- EHOSTUNREACH_ASSOC_LISTEN_TOO_HIGH )
+ ( ( (stat) & 0x20 ) ? \
+ EUNIQ ( EINFO_EHOSTUNREACH, ( (stat) & 0x1f ), \
+ EHOSTUNREACH_QOS_FAILURE, \
+ EHOSTUNREACH_QOS_NO_ROOM, \
+ EHOSTUNREACH_LINK_IS_HORRIBLE, \
+ EHOSTUNREACH_ASSOC_NEED_QOS, \
+ EHOSTUNREACH_REQUEST_DECLINED, \
+ EHOSTUNREACH_REQUEST_INVALID, \
+ EHOSTUNREACH_TS_NOT_CREATED_AGAIN, \
+ EHOSTUNREACH_INVALID_IE, \
+ EHOSTUNREACH_GROUP_CIPHER_INVALID, \
+ EHOSTUNREACH_PAIR_CIPHER_INVALID, \
+ EHOSTUNREACH_AKMP_INVALID, \
+ EHOSTUNREACH_RSN_VERSION_UNSUPP, \
+ EHOSTUNREACH_RSN_CAPAB_INVALID, \
+ EHOSTUNREACH_CIPHER_REJECTED, \
+ EHOSTUNREACH_TS_NOT_CREATED_WAIT, \
+ EHOSTUNREACH_DIRECT_LINK_FORBIDDEN, \
+ EHOSTUNREACH_DEST_NOT_PRESENT, \
+ EHOSTUNREACH_DEST_NOT_QOS, \
+ EHOSTUNREACH_ASSOC_LISTEN_TOO_HIGH ) : \
+ EUNIQ ( EINFO_ECONNREFUSED, ( (stat) & 0x1f ), \
+ ECONNREFUSED_FAILURE, \
+ ECONNREFUSED_CAPAB_UNSUPP, \
+ ECONNREFUSED_REASSOC_INVALID, \
+ ECONNREFUSED_ASSOC_DENIED, \
+ ECONNREFUSED_AUTH_ALGO_UNSUPP, \
+ ECONNREFUSED_AUTH_SEQ_INVALID, \
+ ECONNREFUSED_AUTH_CHALL_INVALID, \
+ ECONNREFUSED_AUTH_TIMEOUT, \
+ ECONNREFUSED_ASSOC_NO_ROOM, \
+ ECONNREFUSED_ASSOC_NEED_RATE, \
+ ECONNREFUSED_ASSOC_NEED_SHORT_PMBL, \
+ ECONNREFUSED_ASSOC_NEED_PBCC, \
+ ECONNREFUSED_ASSOC_NEED_CHAN_AGILITY, \
+ ECONNREFUSED_ASSOC_NEED_SPECTRUM_MGMT, \
+ ECONNREFUSED_ASSOC_BAD_POWER, \
+ ECONNREFUSED_ASSOC_BAD_CHANNELS, \
+ ECONNREFUSED_ASSOC_NEED_SHORT_SLOT, \
+ ECONNREFUSED_ASSOC_NEED_DSSS_OFDM ) )
/** Make return status code from 802.11 reason code */
#define E80211_REASON( reas ) \
- EUNIQ ( ( ( reas & 0x20 ) ? ENETRESET : ECONNRESET ), \
- ( reas & 0x1f ), \
- ECONNRESET_UNSPECIFIED, \
- ECONNRESET_AUTH_NO_LONGER_VALID, \
- ECONNRESET_LEAVING, \
- ECONNRESET_INACTIVITY, \
- ECONNRESET_OUT_OF_RESOURCES, \
- ECONNRESET_NEED_AUTH, \
- ECONNRESET_NEED_ASSOC, \
- ECONNRESET_LEAVING_TO_ROAM, \
- ECONNRESET_REASSOC_INVALID, \
- ECONNRESET_BAD_POWER, \
- ECONNRESET_BAD_CHANNELS, \
- ECONNRESET_INVALID_IE, \
- ECONNRESET_MIC_FAILURE, \
- ECONNRESET_4WAY_TIMEOUT, \
- ECONNRESET_GROUPKEY_TIMEOUT, \
- ECONNRESET_4WAY_INVALID, \
- ECONNRESET_GROUP_CIPHER_INVALID, \
- ECONNRESET_PAIR_CIPHER_INVALID, \
- ECONNRESET_AKMP_INVALID, \
- ECONNRESET_RSN_VERSION_INVALID, \
- ECONNRESET_RSN_CAPAB_INVALID, \
- ECONNRESET_8021X_FAILURE, \
- ECONNRESET_CIPHER_REJECTED, \
- ENETRESET_QOS_UNSPECIFIED, \
- ENETRESET_QOS_OUT_OF_RESOURCES, \
- ENETRESET_LINK_IS_HORRIBLE, \
- ENETRESET_INVALID_TXOP, \
- ENETRESET_REQUESTED_LEAVING, \
- ENETRESET_REQUESTED_NO_USE, \
- ENETRESET_REQUESTED_NEED_SETUP, \
- ENETRESET_REQUESTED_TIMEOUT, \
- ENETRESET_CIPHER_UNSUPPORTED )
+ ( ( (reas) & 0x20 ) ? \
+ EUNIQ ( EINFO_ENETRESET, ( (reas) & 0x1f ), \
+ ENETRESET_QOS_UNSPECIFIED, \
+ ENETRESET_QOS_OUT_OF_RESOURCES, \
+ ENETRESET_LINK_IS_HORRIBLE, \
+ ENETRESET_INVALID_TXOP, \
+ ENETRESET_REQUESTED_LEAVING, \
+ ENETRESET_REQUESTED_NO_USE, \
+ ENETRESET_REQUESTED_NEED_SETUP, \
+ ENETRESET_REQUESTED_TIMEOUT, \
+ ENETRESET_CIPHER_UNSUPPORTED ) : \
+ EUNIQ ( EINFO_ECONNRESET, ( (reas) & 0x1f ), \
+ ECONNRESET_UNSPECIFIED, \
+ ECONNRESET_AUTH_NO_LONGER_VALID, \
+ ECONNRESET_LEAVING, \
+ ECONNRESET_INACTIVITY, \
+ ECONNRESET_OUT_OF_RESOURCES, \
+ ECONNRESET_NEED_AUTH, \
+ ECONNRESET_NEED_ASSOC, \
+ ECONNRESET_LEAVING_TO_ROAM, \
+ ECONNRESET_REASSOC_INVALID, \
+ ECONNRESET_BAD_POWER, \
+ ECONNRESET_BAD_CHANNELS, \
+ ECONNRESET_INVALID_IE, \
+ ECONNRESET_MIC_FAILURE, \
+ ECONNRESET_4WAY_TIMEOUT, \
+ ECONNRESET_GROUPKEY_TIMEOUT, \
+ ECONNRESET_4WAY_INVALID, \
+ ECONNRESET_GROUP_CIPHER_INVALID, \
+ ECONNRESET_PAIR_CIPHER_INVALID, \
+ ECONNRESET_AKMP_INVALID, \
+ ECONNRESET_RSN_VERSION_INVALID, \
+ ECONNRESET_RSN_CAPAB_INVALID, \
+ ECONNRESET_8021X_FAILURE, \
+ ECONNRESET_CIPHER_REJECTED ) )
#endif /* _IPXE_NET80211_ERR_H */