150476Speter/*
217728Sjkh * $Id: openpam_attr.h 656 2013-03-06 22:58:45Z des $
320488Sjdp */
420488Sjdp
517728Sjkh#ifndef SECURITY_OPENPAM_ATTR_H_INCLUDED
620488Sjdp#define SECURITY_OPENPAM_ATTR_H_INCLUDED
720488Sjdp
820488Sjdp/* GCC attributes */
920488Sjdp#if defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__STRICT_ANSI__)
1020488Sjdp# define OPENPAM_GNUC_PREREQ(maj, min) \
1120488Sjdp        ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
1220488Sjdp#else
1317728Sjkh# define OPENPAM_GNUC_PREREQ(maj, min) 0
1417728Sjkh#endif
1517728Sjkh
1617728Sjkh#if OPENPAM_GNUC_PREREQ(2,5)
1717728Sjkh# define OPENPAM_FORMAT(params) __attribute__((__format__ params))
1817728Sjkh#else
1917728Sjkh# define OPENPAM_FORMAT(params)
2020488Sjdp#endif
2117728Sjkh
2217728Sjkh#if OPENPAM_GNUC_PREREQ(3,3)
2343907Sjdp# define OPENPAM_NONNULL(params) __attribute__((__nonnull__ params))
2420488Sjdp#else
2543907Sjdp# define OPENPAM_NONNULL(params)
2643907Sjdp#endif
27100945Sblackend
2843907Sjdp#if OPENPAM_GNUC_PREREQ(2,7)
2943907Sjdp# define OPENPAM_UNUSED(var) var __attribute__((__unused__))
3020488Sjdp#else
3120488Sjdp# define OPENPAM_UNUSED(var) var
3220488Sjdp#endif
3317728Sjkh
3417728Sjkh#endif /* !SECURITY_OPENPAM_ATTR_H_INCLUDED */
3519619Sjdp