1 #ifndef __krb5_types_h__ 2 #define __krb5_types_h__ 3 4 #include <inttypes.h> 5 #include <sys/types.h> 6 #include <sys/socket.h> 7 8 9 typedef socklen_t krb5_socklen_t; 10 #include <unistd.h> 11 typedef ssize_t krb5_ssize_t; 12 13 typedef int krb5_socket_t; 14 15 #if !defined(__has_extension) 16 #define __has_extension(x) 0 17 #endif 18 19 #ifndef KRB5TYPES_REQUIRE_GNUC 20 #define KRB5TYPES_REQUIRE_GNUC(m,n,p) \ 21 (((__GNUC__ * 10000) + (__GNUC_MINOR__ * 100) + __GNUC_PATCHLEVEL__) >= \ 22 (((m) * 10000) + ((n) * 100) + (p))) 23 #endif 24 25 #ifndef HEIMDAL_DEPRECATED 26 #if __has_extension(deprecated) || KRB5TYPES_REQUIRE_GNUC(3,1,0) 27 #define HEIMDAL_DEPRECATED __attribute__ ((__deprecated__)) 28 #elif defined(_MSC_VER) && (_MSC_VER>1200) 29 #define HEIMDAL_DEPRECATED __declspec(deprecated) 30 #else 31 #define HEIMDAL_DEPRECATED 32 #endif 33 #endif 34 35 #ifndef HEIMDAL_PRINTF_ATTRIBUTE 36 #if __has_extension(format) || KRB5TYPES_REQUIRE_GNUC(3,1,0) 37 #define HEIMDAL_PRINTF_ATTRIBUTE(x) __attribute__ ((__format__ x)) 38 #else 39 #define HEIMDAL_PRINTF_ATTRIBUTE(x) 40 #endif 41 #endif 42 43 #ifndef HEIMDAL_NORETURN_ATTRIBUTE 44 #if __has_extension(noreturn) || KRB5TYPES_REQUIRE_GNUC(3,1,0) 45 #define HEIMDAL_NORETURN_ATTRIBUTE __attribute__ ((__noreturn__)) 46 #else 47 #define HEIMDAL_NORETURN_ATTRIBUTE 48 #endif 49 #endif 50 51 #ifndef HEIMDAL_UNUSED_ATTRIBUTE 52 #if __has_extension(unused) || KRB5TYPES_REQUIRE_GNUC(3,1,0) 53 #define HEIMDAL_UNUSED_ATTRIBUTE __attribute__ ((__unused__)) 54 #else 55 #define HEIMDAL_UNUSED_ATTRIBUTE 56 #endif 57 #endif 58 59 #ifndef HEIMDAL_WARN_UNUSED_RESULT_ATTRIBUTE 60 #if __has_extension(warn_unused_result) || KRB5TYPES_REQUIRE_GNUC(3,3,0) 61 #define HEIMDAL_WARN_UNUSED_RESULT_ATTRIBUTE __attribute__ ((__warn_unused_result__)) 62 #else 63 #define HEIMDAL_WARN_UNUSED_RESULT_ATTRIBUTE 64 #endif 65 #endif 66 67 #endif /* __krb5_types_h__ */ 68