1#ifndef SECURITY_OPENPAM_ATTR_H_INCLUDED
2#define SECURITY_OPENPAM_ATTR_H_INCLUDED
3
4/* GCC attributes */
5#if defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__STRICT_ANSI__)
6# define OPENPAM_GNUC_PREREQ(maj, min) \
7        ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
8#else
9# define OPENPAM_GNUC_PREREQ(maj, min) 0
10#endif
11
12#if OPENPAM_GNUC_PREREQ(2,5)
13# define OPENPAM_FORMAT(params) __attribute__((__format__ params))
14#else
15# define OPENPAM_FORMAT(params)
16#endif
17
18#if OPENPAM_GNUC_PREREQ(3,3)
19# define OPENPAM_NONNULL(params) __attribute__((__nonnull__ params))
20#else
21# define OPENPAM_NONNULL(params)
22#endif
23
24#if OPENPAM_GNUC_PREREQ(2,7)
25# define OPENPAM_UNUSED(var) var __attribute__((__unused__))
26#else
27# define OPENPAM_UNUSED(var) var
28#endif
29
30#endif /* !SECURITY_OPENPAM_ATTR_H_INCLUDED */
31