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