Apache2
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ap_config.h File Reference

Symbol export macros and hook functions. More...

#include "ap_hooks.h"
#include "os.h"
#include "ap_config_auto.h"
#include "ap_config_layout.h"
#include "apache_noprobes.h"
Include dependency graph for ap_config.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define AP_DECLARE_STATIC
 
#define AP_DECLARE_EXPORT
 
#define AP_DECLARE(type)   type
 
#define AP_DECLARE_NONSTD(type)   type
 
#define AP_DECLARE_DATA
 
#define APREQ_DECLARE(d)   APR_DECLARE(d)
 
#define APREQ_DECLARE_NONSTD(d)   APR_DECLARE_NONSTD(d)
 
#define APREQ_DECLARE_DATA
 
#define AP_MODULE_DECLARE(type)   type
 
#define AP_MODULE_DECLARE_NONSTD(type)   type
 
#define AP_MODULE_DECLARE_DATA
 
#define DEFAULT_PIDLOG   "httpd.pid"
 
#define AP_HAVE_RELIABLE_PIPED_LOGS   TRUE
 
#define __has_attribute(x)   0
 
#define AP_FN_ATTR_SENTINEL
 
#define AP_FN_ATTR_WARN_UNUSED_RESULT
 
#define AP_FN_ATTR_ALLOC_SIZE(x)
 
#define AP_FN_ATTR_ALLOC_SIZE2(x, y)
 
#define AP_FN_ATTR_NONNULL_ALL
 
#define AP_FN_ATTR_NONNULL(x)
 

Detailed Description

Symbol export macros and hook functions.

Macro Definition Documentation

#define __has_attribute (   x)    0
#define AP_DECLARE (   type)    type

Apache Core dso functions are declared with AP_DECLARE(), so they may use the most appropriate calling convention. Hook functions and other Core functions with variable arguments must use AP_DECLARE_NONSTD().

AP_DECLARE(rettype) ap_func(args)
#define AP_DECLARE_DATA

Apache Core dso variables are declared with AP_MODULE_DECLARE_DATA. This assures the appropriate indirection is invoked at compile time.

Note
AP_DECLARE_DATA extern type apr_variable; syntax is required for declarations within headers to properly import the variable.
AP_DECLARE_DATA type apr_variable
#define AP_DECLARE_EXPORT

AP_DECLARE_EXPORT is defined when building the Apache Core dynamic library, so that all public symbols are exported.

See Also
AP_DECLARE_STATIC
#define AP_DECLARE_NONSTD (   type)    type

Apache Core dso variable argument and hook functions are declared with AP_DECLARE_NONSTD(), as they must use the C language calling convention.

See Also
AP_DECLARE
AP_DECLARE_NONSTD(rettype) ap_func(args [...])
#define AP_DECLARE_STATIC

AP_DECLARE_STATIC is defined when including Apache's Core headers, to provide static linkage when the dynamic library may be unavailable.

See Also
AP_DECLARE_EXPORT

AP_DECLARE_STATIC and AP_DECLARE_EXPORT are left undefined when including Apache's Core headers, to import and link the symbols from the dynamic Apache Core library and assure appropriate indirection and calling conventions at compile time.

#define AP_FN_ATTR_ALLOC_SIZE (   x)
#define AP_FN_ATTR_ALLOC_SIZE2 (   x,
 
)
#define AP_FN_ATTR_NONNULL (   x)
#define AP_FN_ATTR_NONNULL_ALL
#define AP_FN_ATTR_SENTINEL
#define AP_FN_ATTR_WARN_UNUSED_RESULT
#define AP_HAVE_RELIABLE_PIPED_LOGS   TRUE
#define AP_MODULE_DECLARE (   type)    type

Declare a dso module's exported module structure as AP_MODULE_DECLARE_DATA.

Unless AP_MODULE_DECLARE_STATIC is defined at compile time, symbols declared with AP_MODULE_DECLARE_DATA are always exported.

#define AP_MODULE_DECLARE_DATA
#define AP_MODULE_DECLARE_NONSTD (   type)    type
#define APREQ_DECLARE (   d)    APR_DECLARE(d)

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().

Remarks
Both the declaration and implementations must use the same macro.APREQ_DECLARE(rettype) apeq_func(args)
#define APREQ_DECLARE_DATA

The public APREQ variables are declared with APREQ_DECLARE_DATA. This assures the appropriate indirection is invoked at compile time.

See Also
APREQ_DECLARE
APREQ_DECLARE_NONSTD
Remarks
Note that the declaration and implementations use different forms, but both must include the macro. extern APREQ_DECLARE_DATA type apr_variable;
APREQ_DECLARE_DATA type apr_variable = value;
#define APREQ_DECLARE_NONSTD (   d)    APR_DECLARE_NONSTD(d)

APEQ_DECLARE_NONSTD(rettype) apr_func(args, ...);

#define DEFAULT_PIDLOG   "httpd.pid"