summaryrefslogtreecommitdiff
path: root/include/ap_config.h
diff options
context:
space:
mode:
authorGuenter Knauf <fuankg@apache.org>2011-11-14 21:39:19 +0000
committerGuenter Knauf <fuankg@apache.org>2011-11-14 21:39:19 +0000
commit69218cb9126e098cae7e2a7095dd38f66363603f (patch)
tree932126825e30b8ab8c7cf285c3791658c3390b93 /include/ap_config.h
parent4d4bf43429a9f9b5226b752a4247f6a42f020c55 (diff)
downloadhttpd-69218cb9126e098cae7e2a7095dd38f66363603f.tar.gz
Added apreq to NetWare build.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1201918 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'include/ap_config.h')
-rw-r--r--include/ap_config.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/include/ap_config.h b/include/ap_config.h
index 1a22329bf9..4f0500368e 100644
--- a/include/ap_config.h
+++ b/include/ap_config.h
@@ -102,6 +102,52 @@
#define AP_DECLARE_DATA __declspec(dllimport)
#endif
+#if !defined(WIN32)
+/**
+ * The public APREQ functions are declared with APREQ_DECLARE(), so they may
+ * use the most appropriate calling convention. Public APR functions with
+ * variable arguments must use APR_DECLARE_NONSTD().
+ *
+ * @remark Both the declaration and implementations must use the same macro.
+ */
+/** APREQ_DECLARE(rettype) apeq_func(args)
+ */
+#define APREQ_DECLARE(d) APR_DECLARE(d)
+/**
+ * The public APEQ functions using variable arguments are declared with
+ * APEQ_DECLARE_NONSTD(), as they must follow the C language calling convention.
+ * @see APEQ_DECLARE @see APEQ_DECLARE_DATA
+ * @remark Both the declaration and implementations must use the same macro.
+ * @example
+ */
+/** APEQ_DECLARE_NONSTD(rettype) apr_func(args, ...);
+ */
+#define APREQ_DECLARE_NONSTD(d) APR_DECLARE_NONSTD(d)
+/**
+ * The public APREQ variables are declared with APREQ_DECLARE_DATA.
+ * This assures the appropriate indirection is invoked at compile time.
+ * @see APREQ_DECLARE @see APREQ_DECLARE_NONSTD
+ * @remark Note that the declaration and implementations use different forms,
+ * but both must include the macro.
+ */
+/** extern APREQ_DECLARE_DATA type apr_variable;\n
+ * APREQ_DECLARE_DATA type apr_variable = value;
+ */
+#define APREQ_DECLARE_DATA
+#elif defined (APREQ_DECLARE_STATIC)
+#define APREQ_DECLARE(type) type __stdcall
+#define APREQ_DECLARE_NONSTD(type) type
+#define APREQ_DECLARE_DATA
+#elif defined (APREQ_DECLARE_EXPORT)
+#define APREQ_DECLARE(type) __declspec(dllexport) type __stdcall
+#define APREQ_DECLARE_NONSTD(type) __declspec(dllexport) type
+#define APREQ_DECLARE_DATA __declspec(dllexport)
+#else
+#define APREQ_DECLARE(type) __declspec(dllimport) type __stdcall
+#define APREQ_DECLARE_NONSTD(type) __declspec(dllimport) type
+#define APREQ_DECLARE_DATA __declspec(dllimport)
+#endif
+
#if !defined(WIN32) || defined(AP_MODULE_DECLARE_STATIC)
/**
* Declare a dso module's exported module structure as AP_MODULE_DECLARE_DATA.