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