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