1999-08-31 09:17:01 +08:00
|
|
|
/* $OpenLDAP$ */
|
1998-12-29 03:51:35 +08:00
|
|
|
/*
|
2000-05-13 10:25:54 +08:00
|
|
|
* Copyright 1998-2000 The OpenLDAP Foundation, Redwood City, California, USA
|
1998-12-29 03:51:35 +08:00
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms are permitted only
|
|
|
|
* as authorized by the OpenLDAP Public License. A copy of this
|
|
|
|
* license is available at http://www.OpenLDAP.org/license.html or
|
|
|
|
* in file LICENSE in the top-level directory of the distribution.
|
|
|
|
*/
|
1998-10-25 09:41:42 +08:00
|
|
|
/* LDAP C Defines */
|
|
|
|
|
|
|
|
#ifndef _LDAP_CDEFS_H
|
|
|
|
#define _LDAP_CDEFS_H
|
|
|
|
|
1999-07-14 02:41:00 +08:00
|
|
|
#if defined(__cplusplus) || defined(c_plusplus)
|
1998-10-25 09:41:42 +08:00
|
|
|
# define LDAP_BEGIN_DECL extern "C" {
|
|
|
|
# define LDAP_END_DECL }
|
|
|
|
#else
|
1998-12-24 04:01:15 +08:00
|
|
|
# define LDAP_BEGIN_DECL /* begin declarations */
|
|
|
|
# define LDAP_END_DECL /* end declarations */
|
1998-10-25 09:41:42 +08:00
|
|
|
#endif
|
|
|
|
|
2000-06-20 06:20:36 +08:00
|
|
|
#if !defined(LDAP_NO_PROTOTYPES) && ( defined(LDAP_NEEDS_PROTOTYPES) || \
|
1999-07-14 02:41:00 +08:00
|
|
|
defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus) )
|
1998-11-13 04:30:42 +08:00
|
|
|
|
1998-10-25 09:41:42 +08:00
|
|
|
/* ANSI C or C++ */
|
|
|
|
# define LDAP_P(protos) protos
|
|
|
|
# define LDAP_CONCAT1(x,y) x ## y
|
|
|
|
# define LDAP_CONCAT(x,y) LDAP_CONCAT1(x,y)
|
|
|
|
# define LDAP_STRING(x) #x /* stringify without expanding x */
|
|
|
|
# define LDAP_XSTRING(x) LDAP_STRING(x) /* expand x, then stringify */
|
1998-11-13 04:30:42 +08:00
|
|
|
|
1999-05-04 05:10:35 +08:00
|
|
|
#ifndef LDAP_CONST
|
|
|
|
# define LDAP_CONST const
|
|
|
|
#endif
|
|
|
|
|
1998-11-13 04:30:42 +08:00
|
|
|
#else /* no prototypes */
|
|
|
|
|
1998-10-25 09:41:42 +08:00
|
|
|
/* traditional C */
|
|
|
|
# define LDAP_P(protos) ()
|
|
|
|
# define LDAP_CONCAT(x,y) x/**/y
|
|
|
|
# define LDAP_STRING(x) "x"
|
1998-11-13 04:30:42 +08:00
|
|
|
|
1999-05-04 05:10:35 +08:00
|
|
|
#ifndef LDAP_CONST
|
|
|
|
# define LDAP_CONST /* no const */
|
|
|
|
#endif
|
|
|
|
|
1998-11-13 04:30:42 +08:00
|
|
|
#endif /* no prototypes */
|
|
|
|
|
1999-09-04 05:06:33 +08:00
|
|
|
#if (__GNUC__) * 1000 + (__GNUC_MINOR__) >= 2006
|
|
|
|
# define LDAP_GCCATTR(attrs) __attribute__(attrs)
|
|
|
|
#else
|
|
|
|
# define LDAP_GCCATTR(attrs)
|
|
|
|
#endif
|
|
|
|
|
1999-12-19 03:49:13 +08:00
|
|
|
|
|
|
|
/* Support for NT dynamic libraries. */
|
1999-09-04 05:06:33 +08:00
|
|
|
|
2000-06-19 03:48:07 +08:00
|
|
|
/* LBER library */
|
|
|
|
#if defined(LBER_DECL) && defined(_WIN32)
|
|
|
|
# define LBER_F(type) extern __declspec(LBER_DECL) type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LBER_V(type) extern __declspec(LBER_DECL) type
|
2000-06-19 03:48:07 +08:00
|
|
|
#else
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LBER_F(type) extern type
|
|
|
|
# define LBER_V(type) extern type
|
2000-06-19 03:48:07 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/* LDAP library */
|
|
|
|
#if defined(LDAP_DECL) && defined(_WIN32)
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_F(type) extern __declspec(LDAP_DECL) type
|
|
|
|
# define LDAP_V(type) extern __declspec(LDAP_DECL) type
|
2000-06-19 03:48:07 +08:00
|
|
|
#else
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_F(type) extern type
|
|
|
|
# define LDAP_V(type) extern type
|
2000-06-19 03:48:07 +08:00
|
|
|
#endif
|
|
|
|
|
1999-11-28 07:40:08 +08:00
|
|
|
/*
|
|
|
|
* C library. Mingw32 links with the C run-time library by default,
|
|
|
|
* so the explicit definition of CSTATIC will keep dllimport from
|
|
|
|
* being defined.
|
|
|
|
*/
|
|
|
|
#if (defined(__MINGW32__) && !defined(CSTATIC) || \
|
|
|
|
defined(_WIN32) && defined(_DLL))
|
2000-06-19 03:48:07 +08:00
|
|
|
# define LDAP_LIBC_F(type) extern __declspec(dllimport) type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_LIBC_V(type) extern __declspec(dllimport) type
|
1999-11-28 07:40:08 +08:00
|
|
|
#else
|
2000-06-19 03:48:07 +08:00
|
|
|
# define LDAP_LIBC_F(type) extern type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_LIBC_V(type) extern type
|
1999-11-28 07:40:08 +08:00
|
|
|
#endif
|
1998-10-25 09:41:42 +08:00
|
|
|
|
1999-11-28 07:40:08 +08:00
|
|
|
/* AVL library */
|
2000-06-19 03:48:07 +08:00
|
|
|
#if defined(LDAP_AVL_DECL) && defined(_WIN32)
|
|
|
|
# define LDAP_AVL_F(type) extern __declspec(LDAP_AVL_DECL) type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_AVL_V(type) extern __declspec(LDAP_AVL_DECL) type
|
1999-11-28 07:40:08 +08:00
|
|
|
#else
|
2000-06-19 03:48:07 +08:00
|
|
|
# define LDAP_AVL_F(type) extern type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_AVL_V(type) extern type
|
1999-06-04 02:24:22 +08:00
|
|
|
#endif
|
1999-11-28 07:40:08 +08:00
|
|
|
|
2000-06-19 03:48:07 +08:00
|
|
|
/* LDBM library */
|
|
|
|
#if defined(LDAP_LDBM_DECL) && defined(_WIN32)
|
|
|
|
# define LDAP_LDBM_F(type) extern __declspec(LDAP_LDBM_DECL) type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_LDBM_V(type) extern __declspec(LDAP_LDBM_DECL) type
|
1999-11-28 07:40:08 +08:00
|
|
|
#else
|
2000-06-19 03:48:07 +08:00
|
|
|
# define LDAP_LDBM_F(type) extern type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_LDBM_V(type) extern type
|
1999-05-19 09:12:33 +08:00
|
|
|
#endif
|
1998-10-25 09:41:42 +08:00
|
|
|
|
2000-06-19 03:48:07 +08:00
|
|
|
/* LDIF library */
|
|
|
|
#if defined(LDAP_LDIF_DECL) && defined(_WIN32)
|
|
|
|
# define LDAP_LDIF_F(type) extern __declspec(LDAP_LDIF_DECL) type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_LDIF_V(type) extern __declspec(LDAP_LDIF_DECL) type
|
1999-11-28 07:40:08 +08:00
|
|
|
#else
|
2000-06-19 03:48:07 +08:00
|
|
|
# define LDAP_LDIF_F(type) extern type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_LDIF_V(type) extern type
|
1999-11-28 07:40:08 +08:00
|
|
|
#endif
|
|
|
|
|
2000-06-19 03:48:07 +08:00
|
|
|
/* LUNICODE library */
|
|
|
|
#if defined(LDAP_LUNICODE_DECL) && defined(_WIN32)
|
|
|
|
# define LDAP_LUNICODE_F(type) extern __declspec(LDAP_LUNICODE_DECL) type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_LUNICODE_V(type) extern __declspec(LDAP_LUNICODE_DECL) type
|
1999-11-28 07:40:08 +08:00
|
|
|
#else
|
2000-06-19 03:48:07 +08:00
|
|
|
# define LDAP_LUNICODE_F(type) extern type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_LUNICODE_V(type) extern type
|
1999-11-28 07:40:08 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/* LUTIL library */
|
2000-06-19 03:48:07 +08:00
|
|
|
#if defined(LDAP_LUTIL_DECL) && defined(_WIN32)
|
|
|
|
# define LDAP_LUTIL_F(type) extern __declspec(LDAP_LUTIL_DECL) type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_LUTIL_V(type) extern __declspec(LDAP_LUTIL_DECL) type
|
1999-11-28 07:40:08 +08:00
|
|
|
#else
|
2000-06-19 03:48:07 +08:00
|
|
|
# define LDAP_LUTIL_F(type) extern type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_LUTIL_V(type) extern type
|
1999-11-28 07:40:08 +08:00
|
|
|
#endif
|
|
|
|
|
1999-12-17 13:37:33 +08:00
|
|
|
/* SLAPD (as a module exporting symbols) */
|
2000-06-19 03:48:07 +08:00
|
|
|
#if defined(LDAP_SLAPD_DECL) && defined(_WIN32)
|
|
|
|
# define LDAP_SLAPD_F(type) extern __declspec(LDAP_SLAPD_DECL) type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_SLAPD_V(type) extern __declspec(LDAP_SLAPD_DECL) type
|
1999-11-28 07:40:08 +08:00
|
|
|
#else
|
2000-06-19 03:48:07 +08:00
|
|
|
# define LDAP_SLAPD_F(type) extern type
|
2000-06-20 11:53:12 +08:00
|
|
|
# define LDAP_SLAPD_V(type) extern type
|
1999-11-28 07:40:08 +08:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* _LDAP_CDEFS_H */
|