You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ia...@apache.org on 2001/10/02 06:09:53 UTC

cvs commit: httpd-2.0/include http_config.h httpd.h

ianh        01/10/01 21:09:53

  Modified:    include  http_config.h httpd.h
  Log:
  Added Doxygen Comments
  With these 2 changes most of the Doxygen warnings go away.
  (these patch just modifies comments/slight moves in typedefs, no other changes)
  
  Revision  Changes    Path
  1.87      +49 -10    httpd-2.0/include/http_config.h
  
  Index: http_config.h
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/include/http_config.h,v
  retrieving revision 1.86
  retrieving revision 1.87
  diff -u -r1.86 -r1.87
  --- http_config.h	2001/08/23 21:01:11	1.86
  +++ http_config.h	2001/10/02 04:09:53	1.87
  @@ -101,49 +101,78 @@
       TAKE123,			/**< one, two or three arguments */
       TAKE13			/**< one or three arguments */
   };
  -
  +/**
  + * This structure is passed to a command which is being invoked,
  + * to carry a large variety of miscellaneous data which is all of
  + * use to *somebody*...
  + */
   typedef struct cmd_parms_struct cmd_parms;
   
   #if defined(AP_HAVE_DESIGNATED_INITIALIZER) || defined(DOXYGEN)
   
  -/** All the types of functions that can be used in directives */
  +/** 
  + * All the types of functions that can be used in directives
  + * @internal
  + */
   typedef union {
  +    /** function to call for a no-args */
       const char *(*no_args) (cmd_parms *parms, void *mconfig);
  +    /** function to call for a raw-args */
       const char *(*raw_args) (cmd_parms *parms, void *mconfig,
   			     const char *args);
  +    /** function to call for a take1 */
       const char *(*take1) (cmd_parms *parms, void *mconfig, const char *w);
  +    /** function to call for a take2 */
       const char *(*take2) (cmd_parms *parms, void *mconfig, const char *w,
   			  const char *w2);
  +    /** function to call for a take3 */
       const char *(*take3) (cmd_parms *parms, void *mconfig, const char *w,
   			  const char *w2, const char *w3);
  +    /** function to call for a flag */
       const char *(*flag) (cmd_parms *parms, void *mconfig, int on);
   } cmd_func;
   
  +/** This configuration directive does not take any arguments */
   # define AP_NO_ARGS	func.no_args
  +/** This configuration directive will handle it's own parsing of arguments*/
   # define AP_RAW_ARGS	func.raw_args
  +/** This configuration directive takes 1 argument*/
   # define AP_TAKE1	func.take1
  +/** This configuration directive takes 2 arguments */
   # define AP_TAKE2	func.take2
  +/** This configuration directive takes 3 arguments */
   # define AP_TAKE3	func.take3
  +/** This configuration directive takes a flag (on/off) as a argument*/
   # define AP_FLAG	func.flag
   
  +/** method of decalring a directive with no arguments */
   # define AP_INIT_NO_ARGS(directive, func, mconfig, where, help) \
       { directive, { .no_args=func }, mconfig, where, RAW_ARGS, help }
  +/** method of decalring a directive with raw argument parsing */
   # define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help) \
       { directive, { .raw_args=func }, mconfig, where, RAW_ARGS, help }
  +/** method of decalring a directive which takes 1 argument */
   # define AP_INIT_TAKE1(directive, func, mconfig, where, help) \
       { directive, { .take1=func }, mconfig, where, TAKE1, help }
  +/** method of decalring a directive which takes multiple arguments */
   # define AP_INIT_ITERATE(directive, func, mconfig, where, help) \
       { directive, { .take1=func }, mconfig, where, ITERATE, help }
  +/** method of decalring a directive which takes 2 arguments */
   # define AP_INIT_TAKE2(directive, func, mconfig, where, help) \
       { directive, { .take2=func }, mconfig, where, TAKE2, help }
  +/** method of decalring a directive which takes 1 or 2 arguments */
   # define AP_INIT_TAKE12(directive, func, mconfig, where, help) \
       { directive, { .take2=func }, mconfig, where, TAKE12, help }
  +/** method of decalring a directive which takes multiple 2 arguments */
   # define AP_INIT_ITERATE2(directive, func, mconfig, where, help) \
       { directive, { .take2=func }, mconfig, where, ITERATE2, help }
  +/** method of decalring a directive which takes 2 or 3 arguments */
   # define AP_INIT_TAKE23(directive, func, mconfig, where, help) \
       { directive, { .take3=func }, mconfig, where, TAKE23, help }
  +/** method of decalring a directive which takes 3 arguments */
   # define AP_INIT_TAKE3(directive, func, mconfig, where, help) \
       { directive, { .take3=func }, mconfig, where, TAKE3, help }
  +/** method of decalring a directive which takes a flag (on/off) as a argument*/
   # define AP_INIT_FLAG(directive, func, mconfig, where, help) \
       { directive, { .flag=func }, mconfig, where, FLAG, help }
   
  @@ -181,11 +210,11 @@
   
   #endif /* AP_HAVE_DESIGNATED_INITIALIZER */
   
  -typedef struct command_struct command_rec; 
   /**
    * The command record structure.  Each modules can define a table of these
    * to define the directives it will implement.
    */
  +typedef struct command_struct command_rec; 
   struct command_struct {
       /** Name of this command */
       const char *name;
  @@ -211,7 +240,7 @@
    *
    * @{
    */
  -#define OR_NONE 0
  +#define OR_NONE 0             /**< *.conf is not available anywhere in this override */
   #define OR_LIMIT 1	     /**< *.conf inside <Directory> or <Location>
   				and .htaccess when AllowOverride Limit */
   #define OR_OPTIONS 2         /**< *.conf anywhere
  @@ -222,10 +251,13 @@
   				and .htaccess when AllowOverride AuthConfig */
   #define OR_INDEXES 16        /**< *.conf anywhere
   				and .htaccess when AllowOverride Indexes */
  -#define OR_UNSET 32
  +#define OR_UNSET 32          /**< unset a directive (in Allow) */
   #define ACCESS_CONF 64       /**< *.conf inside <Directory> or <Location> */
   #define RSRC_CONF 128	     /**< *.conf outside <Directory> or <Location> */
  -#define EXEC_ON_READ 256
  +#define EXEC_ON_READ 256     /**< force directive to execute a command 
  +                which would modify the conifguration (like including another
  +                file, or IFModule */
  +/** this directive can be placed anywhere */
   #define OR_ALL (OR_LIMIT|OR_OPTIONS|OR_FILEINFO|OR_AUTHCFG|OR_INDEXES)
   
   /** @} */
  @@ -237,8 +269,8 @@
    */
   #define DECLINE_CMD "\a\b"
   
  -typedef struct ap_configfile_t ap_configfile_t;
   /** Common structure for reading of config files / passwd files etc. */
  +typedef struct ap_configfile_t ap_configfile_t;
   struct ap_configfile_t {
       int (*getch) (void *param);	    /**< a getc()-like function */
       void *(*getstr) (void *buf, size_t bufsiz, void *param);
  @@ -261,7 +293,9 @@
       int override;
       /** Which methods are <Limit>ed */
       apr_int64_t limited;
  +    /** methods which are limited */
       apr_array_header_t *limited_xmethods;
  +    /** methods which are xlimited */
       ap_method_list_t *xlimited;
   
       /** Config file structure. */
  @@ -292,12 +326,12 @@
       const ap_directive_t *err_directive;
   };
   
  -typedef struct module_struct module;
   /**
    * Module structures.  Just about everything is dispatched through
    * these, directly or indirectly (through the command and handler
    * tables).
    */
  +typedef struct module_struct module;
   struct module_struct {
       /** API version, *not* module version; check that module is 
        * compatible with this version of the server.
  @@ -411,6 +445,7 @@
   
   /* CONFIGURATION VECTOR FUNCTIONS */
   
  +/** configuration vector structure */
   typedef struct ap_conf_vector_t ap_conf_vector_t;
   
   #if defined(AP_DEBUG) || defined(DOXYGEN)
  @@ -676,6 +711,8 @@
   /**
    * @defgroup ap_check_cmd_context ap_check_cmd_context
    * @{
  + */
  +/**
    * Check the context a command is used in.
    * @param cmd The command to check
    * @param forbidden Where the command is forbidden.
  @@ -688,8 +725,10 @@
   #define  NOT_IN_DIRECTORY       0x04 /**< Forbidden in <Directory> */
   #define  NOT_IN_LOCATION        0x08 /**< Forbidden in <Location> */
   #define  NOT_IN_FILES           0x10 /**< Forbidden in <Files> */
  -#define  NOT_IN_DIR_LOC_FILE    (NOT_IN_DIRECTORY|NOT_IN_LOCATION|NOT_IN_FILES) /**< Forbidden in <Directory>/<Location>/<Files>*/
  -#define  GLOBAL_ONLY            (NOT_IN_VIRTUALHOST|NOT_IN_LIMIT|NOT_IN_DIR_LOC_FILE)
  +/** Forbidden in <Directory>/<Location>/<Files>*/
  +#define  NOT_IN_DIR_LOC_FILE    (NOT_IN_DIRECTORY|NOT_IN_LOCATION|NOT_IN_FILES) 
  +/** Forbidden in <VirtualHost>/<Limit>/Directory>/<Location>/<Files> */
  +#define  GLOBAL_ONLY            (NOT_IN_VIRTUALHOST|NOT_IN_LIMIT|NOT_IN_DIR_LOC_FILE) 
   
   /** @} */
   
  
  
  
  1.166     +129 -53   httpd-2.0/include/httpd.h
  
  Index: httpd.h
  ===================================================================
  RCS file: /home/cvs/httpd-2.0/include/httpd.h,v
  retrieving revision 1.165
  retrieving revision 1.166
  diff -u -r1.165 -r1.166
  --- httpd.h	2001/09/14 23:30:41	1.165
  +++ httpd.h	2001/10/02 04:09:53	1.166
  @@ -223,7 +223,7 @@
   #endif /* default limit on number of request header fields */
   
   
  -/*
  +/**
    * The default default character set name to add if AddDefaultCharset is
    * enabled.  Overridden with AddDefaultCharsetName.
    */
  @@ -231,24 +231,28 @@
   
   #endif /* CORE_PRIVATE */
   
  +/** default HTTP Server protocol */
   #define AP_SERVER_PROTOCOL "HTTP/1.1"
   
   
   /* ------------------ stuff that modules are allowed to look at ----------- */
   
  -/* Define this to be what your HTML directory content files are called */
  +/** Define this to be what your HTML directory content files are called */
   #ifndef AP_DEFAULT_INDEX
   #define AP_DEFAULT_INDEX "index.html"
   #endif
   
   
  -/* Define this to be what type you'd like returned for files with unknown */
  -/* suffixes.  MUST be all lower case. */
  +/** 
  + * Define this to be what type you'd like returned for files with unknown 
  + * suffixes.  
  + * @warning MUST be all lower case. 
  + */
   #ifndef DEFAULT_CONTENT_TYPE
   #define DEFAULT_CONTENT_TYPE "text/plain"
   #endif
   
  -/* The name of the MIME types file */
  +/** The name of the MIME types file */
   #ifndef AP_TYPES_CONFIG_FILE
   #define AP_TYPES_CONFIG_FILE "conf/mime.types"
   #endif
  @@ -256,29 +260,38 @@
   /*
    * Define the HTML doctype strings centrally.
    */
  +/** HTML 2.0 Doctype */
   #define DOCTYPE_HTML_2_0  "<!DOCTYPE HTML PUBLIC \"-//IETF//" \
                             "DTD HTML 2.0//EN\">\n"
  +/** HTML 3.2 Doctype */
   #define DOCTYPE_HTML_3_2  "<!DOCTYPE HTML PUBLIC \"-//W3C//" \
                             "DTD HTML 3.2 Final//EN\">\n"
  +/** HTML 4.0 Strict Doctype */
   #define DOCTYPE_HTML_4_0S "<!DOCTYPE HTML PUBLIC \"-//W3C//" \
                             "DTD HTML 4.0//EN\"\n" \
                             "\"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
  +/** HTML 4.0 Transitional Doctype */
   #define DOCTYPE_HTML_4_0T "<!DOCTYPE HTML PUBLIC \"-//W3C//" \
                             "DTD HTML 4.0 Transitional//EN\"\n" \
                             "\"http://www.w3.org/TR/REC-html40/loose.dtd\">\n"
  +/** HTML 4.0 Frameset Doctype */
   #define DOCTYPE_HTML_4_0F "<!DOCTYPE HTML PUBLIC \"-//W3C//" \
                             "DTD HTML 4.0 Frameset//EN\"\n" \
                             "\"http://www.w3.org/TR/REC-html40/frameset.dtd\">\n"
   
  -/* -- Internal representation for a HTTP protocol number, e.g., HTTP/1.1 -- */
  +/** Internal representation for a HTTP protocol number, e.g., HTTP/1.1 */
   
   #define HTTP_VERSION(major,minor) (1000*(major)+(minor))
  +/** Major part of HTTP protocol */
   #define HTTP_VERSION_MAJOR(number) ((number)/1000)
  +/** Minor part of HTTP protocol */
   #define HTTP_VERSION_MINOR(number) ((number)%1000)
   
   /* -------------- Port number for server running standalone --------------- */
   
  +/** default HTTP Port */
   #define DEFAULT_HTTP_PORT	80
  +/** default HTTPS Port */
   #define DEFAULT_HTTPS_PORT	443
   /**
    * Check whether @a port is the default port for the request @a r.
  @@ -299,14 +312,15 @@
    */
   #define ap_http_method(r)	ap_run_http_method(r)
   
  -/* The default string lengths */
  +/** The default string lengths */
   #define MAX_STRING_LEN HUGE_STRING_LEN
   #define HUGE_STRING_LEN 8192
   
  -/* The size of the server's internal read-write buffers */
  +/** The size of the server's internal read-write buffers */
   #define AP_IOBUFSIZE 8192
   
  -/* APR_HAS_LARGE_FILES introduces the problem of spliting sendfile into 
  +/**
  + * APR_HAS_LARGE_FILES introduces the problem of spliting sendfile into 
    * mutiple buckets, no greater than MAX(apr_size_t), and more granular 
    * than that in case the brigade code/filters attempt to read it directly.
    * ### 4mb is an invention, no idea if it is reasonable.
  @@ -314,28 +328,24 @@
   #define AP_MAX_SENDFILE 16777216
   
   
  -/*
  +/**
    * Special Apache error codes. These are basically used
    *  in http_main.c so we can keep track of various errors.
  - *
  - *   APEXIT_OK:
  - *     A normal exit
  - *   APEXIT_INIT:
  - *     A fatal error arising during the server's init sequence
  - *   APEXIT_CHILDINIT:
  - *     The child died during its init sequence
  - *   APEXIT_CHILDFATAL:
  - *     A fatal error, resulting in the whole server aborting.
  - *     If a child exits with this error, the parent process
  - *     considers this a server-wide fatal error and aborts.
  - *                 
  + *        
    */
  +/** a normal exit */
   #define APEXIT_OK		0x0
  +/** A fatal error arising during the server's init sequence */
   #define APEXIT_INIT		0x2
  +/**  The child died during its init sequence */
   #define APEXIT_CHILDINIT	0x3
  +/** 
  + *     A fatal error, resulting in the whole server aborting.
  + *     If a child exits with this error, the parent process
  + *     considers this a server-wide fatal error and aborts.
  + */
   #define APEXIT_CHILDFATAL	0xf
   
  -
   #ifndef AP_DECLARE
   /**
    * Stuff marked #AP_DECLARE is part of the API, and intended for use
  @@ -369,11 +379,18 @@
   # define AP_MODULE_DECLARE_DATA
   #endif
   
  -/* modules should not used functions marked AP_CORE_DECLARE
  - * or AP_CORE_DECLARE_NONSTD */
  +/**
  + * @internal
  + * modules should not used functions marked AP_CORE_DECLARE
  + */
   #ifndef AP_CORE_DECLARE
   # define AP_CORE_DECLARE	AP_DECLARE
   #endif
  +/**
  + * @internal
  + * modules should not used functions marked AP_CORE_DECLARE_NONSTD
  + */
  +
   #ifndef AP_CORE_DECLARE_NONSTD
   # define AP_CORE_DECLARE_NONSTD	AP_DECLARE_NONSTD
   #endif
  @@ -397,16 +414,19 @@
    */
   AP_DECLARE(const char *) ap_get_server_built(void);
   
  -#define DECLINED -1		/* Module declines to handle */
  -#define DONE -2			/* Module has served the response completely 
  +#define DECLINED -1		/**< Module declines to handle */
  +#define DONE -2			/**< Module has served the response completely 
   				 *  - it's safe to die() with no more output
   				 */
  -#define OK 0			/* Module has handled this stage. */
  -
  +#define OK 0			/**< Module has handled this stage. */
   
  -/* ----------------------- HTTP Status Codes  ------------------------- */
   
  -/* The size of the static array in http_protocol.c for storing
  +/**
  + * @defgroup HTTP_Status HTTP Status Codes
  + * @{
  + */
  +/**
  + * The size of the static array in http_protocol.c for storing
    * all of the potential response status-lines (a sparse table).
    * A future version should dynamically generate the apr_table_t at startup.
    */
  @@ -461,13 +481,20 @@
   #define HTTP_INSUFFICIENT_STORAGE          507
   #define HTTP_NOT_EXTENDED                  510
   
  +/** is the status code informational */
   #define ap_is_HTTP_INFO(x)         (((x) >= 100)&&((x) < 200))
  +/** is the status code OK ?*/
   #define ap_is_HTTP_SUCCESS(x)      (((x) >= 200)&&((x) < 300))
  +/** is the status code a redirect */
   #define ap_is_HTTP_REDIRECT(x)     (((x) >= 300)&&((x) < 400))
  +/** is the status code a error (client or server) */
   #define ap_is_HTTP_ERROR(x)        (((x) >= 400)&&((x) < 600))
  +/** is the status code a client error  */
   #define ap_is_HTTP_CLIENT_ERROR(x) (((x) >= 400)&&((x) < 500))
  +/** is the status code a server error  */
   #define ap_is_HTTP_SERVER_ERROR(x) (((x) >= 500)&&((x) < 600))
   
  +/** should the status code drop the connection */
   #define ap_status_drops_connection(x) \
                                      (((x) == HTTP_BAD_REQUEST)           || \
                                       ((x) == HTTP_REQUEST_TIME_OUT)      || \
  @@ -477,8 +504,13 @@
                                       ((x) == HTTP_INTERNAL_SERVER_ERROR) || \
                                       ((x) == HTTP_SERVICE_UNAVAILABLE) || \
   				    ((x) == HTTP_NOT_IMPLEMENTED))
  -
  -/* Methods recognized (but not necessarily handled) by the server.
  +/** @} */
  +/**
  + * @defgroup Methods List of Methods recognized by the server
  + * @{
  + */
  +/**
  + * Methods recognized (but not necessarily handled) by the server.
    * These constants are used in bit shifting masks of size int, so it is
    * unsafe to have more methods than bits in an int.  HEAD == M_GET.
    * This list must be tracked by the list in http_protocol.c in routine
  @@ -501,7 +533,8 @@
   #define M_UNLOCK    14
   #define M_INVALID   15
   
  -/* METHODS needs to be equal to the number of bits
  +/**
  + * METHODS needs to be equal to the number of bits
    * we are using for limit masks.
    */
   #define METHODS     64
  @@ -510,30 +543,42 @@
    * The method mask bit to shift for anding with a bitmask.
    */
   #define AP_METHOD_BIT (apr_int64_t)1
  +/** @} */
   
   
  -typedef struct ap_method_list_t ap_method_list_t;
   /**
    * Structure for handling HTTP methods.  Methods known to the server are
    * accessed via a bitmask shortcut; extension methods are handled by
    * an array.
    */
  +typedef struct ap_method_list_t ap_method_list_t;
   struct ap_method_list_t {
       /* The bitmask used for known methods */
       apr_int64_t method_mask;
       /* the array used for extension methods */
       apr_array_header_t *method_list;
   };
  -
  +/**
  + * @defgroup module_magic Module Magic mime types
  + * @{
  + */
  +/** Magic for mod_cgi[d] */
   #define CGI_MAGIC_TYPE "application/x-httpd-cgi"
  +/** Magic for mod_include */
   #define INCLUDES_MAGIC_TYPE "text/x-server-parsed-html"
  +/** Magic for mod_include */
   #define INCLUDES_MAGIC_TYPE3 "text/x-server-parsed-html3"
  +/** Magic for mod_dir */
   #define DIR_MAGIC_TYPE "httpd/unix-directory"
   
  +/** @} */
   /* Just in case your linefeed isn't the one the other end is expecting. */
   #if !APR_CHARSET_EBCDIC
  +/** linefeed */
   #define LF 10
  +/** carrige return */
   #define CR 13
  +/** carrige return /Line Feed Combo */
   #define CRLF "\015\012"
   #else /* APR_CHARSET_EBCDIC */
   /* For platforms using the EBCDIC charset, the transition ASCII->EBCDIC is done
  @@ -547,16 +592,22 @@
   #define CRLF "\r\n"
   #endif /* APR_CHARSET_EBCDIC */                                   
   
  -/* Possible values for request_rec.read_body (set by handling module):
  - *    REQUEST_NO_BODY          Send 413 error if message has any body
  - *    REQUEST_CHUNKED_ERROR    Send 411 error if body without Content-Length
  - *    REQUEST_CHUNKED_DECHUNK  If chunked, remove the chunks for me.
  +/**
  + * @defgroup values_requet_rec_body Possible values for request_rec.read_body 
  + * @{
  + * Possible values for request_rec.read_body (set by handling module):
    */
  +
  +/** Send 413 error if message has any body */
   #define REQUEST_NO_BODY          0
  +/** Send 411 error if body without Content-Length */
   #define REQUEST_CHUNKED_ERROR    1
  +/** If chunked, remove the chunks for me. */
   #define REQUEST_CHUNKED_DECHUNK  2
  +/** @} */
   
  -/* Things which may vary per file-lookup WITHIN a request ---
  +/*
  + * Things which may vary per file-lookup WITHIN a request ---
    * e.g., state of MIME config.  Basically, the name of an object, info
    * about the object, and any other info we may ahve which may need to
    * change as we go poking around looking for it (e.g., overridden by
  @@ -591,9 +642,14 @@
    * threaded versions of the server you must consider multiplexing
    * issues.  */
   
  +
  +/** A structure that represents one process */
   typedef struct process_rec process_rec;
  +/** A structure that represents a virtual server */
   typedef struct server_rec server_rec;
  +/** A structure that represents one connection */
   typedef struct conn_rec conn_rec;
  +/** A structure that represents the current request */
   typedef struct request_rec request_rec;
   
   /* ### would be nice to not include this from httpd.h ... */
  @@ -913,14 +969,15 @@
   
   /* Per-vhost config... */
   
  -/* The address 255.255.255.255, when used as a virtualhost address,
  +/**
  + * The address 255.255.255.255, when used as a virtualhost address,
    * will become the "default" server when the ip doesn't match other vhosts.
    */
   #define DEFAULT_VHOST_ADDR 0xfffffffful
   
  -typedef struct server_addr_rec server_addr_rec;
   
   /** A structure to be used for Per-vhost config */
  +typedef struct server_addr_rec server_addr_rec;
   struct server_addr_rec {
       /** The next server in the list */
       server_addr_rec *next;
  @@ -1215,6 +1272,7 @@
    * @return The converted URL
    */
   AP_DECLARE(char *) ap_os_escape_path(apr_pool_t *p, const char *path, int partial);
  +/** @see ap_os_escape_path */
   #define ap_escape_uri(ppool,path) ap_os_escape_path(ppool,path,1)
   
   /**
  @@ -1484,13 +1542,6 @@
    */
   char *ap_get_local_host(apr_pool_t *p);
   
  -/*
  - * Redefine assert() to something more useful for an Apache...
  - *
  - * Use ap_assert() if the condition should always be checked.
  - * Use AP_DEBUG_ASSERT() if the condition should only be checked when AP_DEBUG
  - * is defined.
  - */
   /**
    * Log an assertion to the error log
    * @param szExp The assertion that failed
  @@ -1499,25 +1550,44 @@
    */
   AP_DECLARE(void) ap_log_assert(const char *szExp, const char *szFile, int nLine)
   			    __attribute__((noreturn));
  +
  +/** @internal */
   #define ap_assert(exp) ((exp) ? (void)0 : ap_log_assert(#exp,__FILE__,__LINE__))
   
  +/**
  + * Redefine assert() to something more useful for an Apache...
  + *
  + * Use ap_assert() if the condition should always be checked.
  + * Use AP_DEBUG_ASSERT() if the condition should only be checked when AP_DEBUG
  + * is defined.
  + */
  +
   #ifdef AP_DEBUG
   #define AP_DEBUG_ASSERT(exp) ap_assert(exp)
   #else
   #define AP_DEBUG_ASSERT(exp) ((void)0)
   #endif
   
  -/* A set of flags which indicate places where the server should raise(SIGSTOP).
  +/**
  + * @defgroup stopsignal flags which indicate places where the sever should stop for debugging.
  + * @{
  + * A set of flags which indicate places where the server should raise(SIGSTOP).
    * This is useful for debugging, because you can then attach to that process
    * with gdb and continue.  This is important in cases where one_process
    * debugging isn't possible.
    */
  +/** stop on a Detach */
   #define SIGSTOP_DETACH			1
  +/** stop making a child process */
   #define SIGSTOP_MAKE_CHILD		2
  +/** stop spawning a child process */
   #define SIGSTOP_SPAWN_CHILD		4
  +/** stop spawning a child process with a piped log */
   #define SIGSTOP_PIPED_LOG_SPAWN		8
  +/** stop spawning a CGI child process */
   #define SIGSTOP_CGI_CHILD		16
   
  +/** Macro to get GDB started */
   #ifdef DEBUG_SIGSTOP
   extern int raise_sigstop_flags;
   #define RAISE_SIGSTOP(x)	do { \
  @@ -1526,7 +1596,7 @@
   #else
   #define RAISE_SIGSTOP(x)
   #endif
  -
  +/** @} */
   /**
    * Get HTML describing the address and (optionally) admin of the server.
    * @param prefix Text which is prepended to the return value
  @@ -1535,7 +1605,7 @@
    */
   AP_DECLARE(const char *) ap_psignature(const char *prefix, request_rec *r);
   
  -/* strtoul does not exist on sunos4. */
  +/** strtoul does not exist on sunos4. */
   #ifdef strtoul
   #undef strtoul
   #endif
  @@ -1568,11 +1638,17 @@
   
   #else
   
  +/** use this instead of strchr */
   # define ap_strchr(s, c)	strchr(s, c)
  +/** use this instead of strchr */
   # define ap_strchr_c(s, c)	strchr(s, c)
  +/** use this instead of strrchr */
   # define ap_strrchr(s, c)	strrchr(s, c)
  +/** use this instead of strrchr */
   # define ap_strrchr_c(s, c)	strrchr(s, c)
  +/** use this instead of strrstr*/
   # define ap_strstr(s, c)	strstr(s, c)
  +/** use this instead of strrstr*/
   # define ap_strstr_c(s, c)	strstr(s, c)
   
   #endif