mirror of
https://github.com/ipxe/ipxe
synced 2025-12-24 15:23:42 +03:00
[libc] Use __einfo() tuple as first argument to EUNIQ()
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -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, ... ) {}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user