32 ERR_WRITE = 0x000402, |
32 ERR_WRITE = 0x000402, |
33 |
33 |
34 /* GnuTLS errors */ |
34 /* GnuTLS errors */ |
35 ERR_GNUTLS_CERT_ALLOC_CRED = 0x010101, |
35 ERR_GNUTLS_CERT_ALLOC_CRED = 0x010101, |
36 ERR_GNUTLS_GLOBAL_INIT = 0x010102, |
36 ERR_GNUTLS_GLOBAL_INIT = 0x010102, |
|
37 ERR_GNUTLS_INIT = 0x010103, |
|
38 ERR_GNUTLS_SET_DEFAULT_PRIORITY = 0x010104, |
|
39 ERR_GNUTLS_CRED_SET = 0x010105, |
|
40 ERR_GNUTLS_HANDSHAKE = 0x010106, |
37 }; |
41 }; |
38 |
42 |
39 /* |
43 /* |
40 * An error code and associated extra infos |
44 * An error code and associated extra infos |
41 */ |
45 */ |
67 |
71 |
68 /* Set error_info.code/extra. XXX: should evaluate to err_code */ |
72 /* Set error_info.code/extra. XXX: should evaluate to err_code */ |
69 #define _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) (err_info_ptr)->code = (err_code); (err_info_ptr)->extra = (err_extra) |
73 #define _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) (err_info_ptr)->code = (err_code); (err_info_ptr)->extra = (err_extra) |
70 #define SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) do { _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra); } while (0) |
74 #define SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) do { _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra); } while (0) |
71 |
75 |
72 /* Set error.info.code to err_code, and .extra to errno. XXX: should evaulate to err_code */ |
76 /* Set error_info.code to err_code, and .extra to errno. XXX: should evaulate to err_code */ |
73 #define _SET_ERROR_ERRNO(err_info_ptr, err_code) _SET_ERROR_EXTRA(err_info_ptr, err_code, errno); |
77 #define _SET_ERROR_ERRNO(err_info_ptr, err_code) _SET_ERROR_EXTRA(err_info_ptr, err_code, errno); |
74 #define SET_ERROR_ERRNO(err_info_ptr, err_code) SET_ERROR_EXTRA(err_info_ptr, err_code, errno); |
78 #define SET_ERROR_ERRNO(err_info_ptr, err_code) SET_ERROR_EXTRA(err_info_ptr, err_code, errno); |
75 |
79 |
76 /* Ss above, but also return err_code from func. XXX: use 'return SET_ERROR...' instead */ |
80 /* Set error_info from another error_info. Evaluates to the new error_info */ |
77 #define RETURN_SET_ERROR(err_info_ptr, err_code) do { _SET_ERROR(err_info_ptr, err_code); return (err_code); } while (0) |
81 #define SET_ERROR_INFO(err_info_ptr, from_ptr) (*err_info_ptr = *from_ptr) |
|
82 |
|
83 /* Same as above, but also return err_code from func. XXX: use 'return SET_ERROR...' instead */ |
|
84 #define RETURN_SET_ERROR(err_info_ptr, err_code) do { SET_ERROR(err_info_ptr, err_code); return (err_code); } while (0) |
78 #define RETURN_SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) do { _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra); return (err_code); } while (0) |
85 #define RETURN_SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra) do { _SET_ERROR_EXTRA(err_info_ptr, err_code, err_extra); return (err_code); } while (0) |
79 #define RETURN_SET_ERROR_ERRNO(err_info_ptr, err_code) do { _SET_ERROR_ERRNO(err_info_ptr, err_code); return (err_code); } while (0) |
86 #define RETURN_SET_ERROR_ERRNO(err_info_ptr, err_code) do { _SET_ERROR_ERRNO(err_info_ptr, err_code); return (err_code); } while (0) |
80 |
87 |
|
88 /* Same as above, but also do a 'goto error' */ |
|
89 #define JUMP_SET_ERROR(err_info_ptr, err_code) do { SET_ERROR(err_info_ptr, err_code); goto error; } while (0) |
|
90 #define JUMP_SET_ERROR_INFO(err_info_ptr, from_ptr) do { SET_ERROR_INFO(err_info_ptr, from_ptr); goto error; } while (0) |
|
91 |
81 #endif |
92 #endif |