Ryan.. slight type in the '@defgroup' line below... SMS == Stackable Memory System not Shared Memory System
..Ian Ian Holsman wrote:
If someone can fill in on what 'ref' and 'accounting' do in the sms structure....
Index: apr_sms.h =================================================================== RCS file: /home/cvspublic/apr/include/apr_sms.h,v retrieving revision 1.39 diff -u -r1.39 apr_sms.h --- apr_sms.h 2001/07/18 09:41:44 1.39 +++ apr_sms.h 2001/08/11 17:20:24 @@ -59,10 +59,24 @@ * * May 2001 */ - + /** + * @file apr_sms.h + * @brief APR SMS Memory routines + */ +/** + * @defgroup SMS SMS StackableMemory allocation system + * @ingroup APR + * @{ + */ +/ #ifndef APR_SMS_H #define APR_SMS_H
+/** + * @typedef apr_sms_t + * @brief holds the internal details required to implement a SMS + * @see sms_private.h + */ typedef struct apr_sms_t apr_sms_t;
#include "apr.h" @@ -419,6 +433,6 @@ #ifdef __cplusplus } #endif - +/** @} */ #endif /* !APR_SMS_H */
Index: sms_private.h =================================================================== RCS file: /home/cvspublic/apr/memory/unix/sms_private.h,v retrieving revision 1.7 diff -u -r1.7 sms_private.h --- sms_private.h 2001/07/11 14:20:05 1.7 +++ sms_private.h 2001/08/11 17:21:20 @@ -51,7 +51,17 @@ * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ - +/** + * @file sms_private.h + * @brief SMS private definitions/routines + * @internal + */ +/** + * + * @defgroup SMS_Private Private routines + * @ingroup SMS + * @{ + */ #ifndef SMS_PRIVATE_H #define SMS_PRIVATE_H
@@ -66,33 +76,34 @@ #endif
/** - * The memory system structure + * @struct apr_sms_t + * @brief The SMS memory system structure */
struct apr_sms_t { - apr_sms_t *parent; - apr_sms_t *child; - apr_sms_t *sibling; + apr_sms_t *parent; /**< parent of the current SMS */ + apr_sms_t *child; /**< children of the current SMS */ + apr_sms_t *sibling; /**< next SMS at the same level */ apr_sms_t **ref; apr_sms_t *accounting; - const char *identity; /* a string identifying the module */ + const char *identity; /**< a string identifying the module */
apr_pool_t *pool; apr_lock_t *sms_lock; struct apr_sms_cleanup *cleanups;
- void * (*malloc_fn) (apr_sms_t *sms, apr_size_t size);
- void * (*calloc_fn) (apr_sms_t *sms, apr_size_t size);
- void * (*realloc_fn) (apr_sms_t *sms, void *memory,
- apr_size_t size);
- apr_status_t (*free_fn) (apr_sms_t *sms, void *memory);
- apr_status_t (*reset_fn) (apr_sms_t *sms);
- apr_status_t (*pre_destroy_fn) (apr_sms_t *sms);
- apr_status_t (*destroy_fn) (apr_sms_t *sms);
- apr_status_t (*lock_fn) (apr_sms_t *sms);
- apr_status_t (*unlock_fn) (apr_sms_t *sms);
+ void * (*malloc_fn) (apr_sms_t *sms, apr_size_t size); /**< malloc fn for this SMS */
+ void * (*calloc_fn) (apr_sms_t *sms, apr_size_t size); /**< calloc fn for this SMS */
+ void * (*realloc_fn) (apr_sms_t *sms, void *memory, + apr_size_t size); /**< realloc fn for this SMS */
+ apr_status_t (*free_fn) (apr_sms_t *sms, void *memory); /**< free fn */
+ apr_status_t (*reset_fn) (apr_sms_t *sms); /**< reset fn */
+ apr_status_t (*pre_destroy_fn) (apr_sms_t *sms); /**< called before destroying memory */
+ apr_status_t (*destroy_fn) (apr_sms_t *sms); /**< function to destory the SMS */
+ apr_status_t (*lock_fn) (apr_sms_t *sms); /**< locking function */
+ apr_status_t (*unlock_fn) (apr_sms_t *sms); /**< unlocking function */
apr_status_t (*apr_abort)(int retcode); struct apr_hash_t *prog_data; @@ -120,14 +131,12 @@
/**
* Initialize a memory system
- * @caution Call this function as soon as you have obtained a block of memory
+ * @warning Call this function as soon as you have obtained a block of memory
* to serve as a memory system structure from your
* apr_xxx_sms_create. Only use this function when you are
* implementing a memory system.
* @param sms The memory system created
* @param parent_sms The parent memory system
- * @deffunc apr_status_t apr_sms_init(apr_sms_t *sms,
- * apr_sms_t *parent_sms)
*/
APR_DECLARE(apr_status_t) apr_sms_init(apr_sms_t *sms,
apr_sms_t *parent_sms);
@@ -136,6 +145,7 @@
* Do post init work that needs the sms to have been fully
* initialised.
* @param sms The memory system to use
+ * @return apr_status_t
*/
APR_DECLARE(apr_status_t) apr_sms_post_init(apr_sms_t *sms);
@@ -143,6 +153,6 @@ #ifdef __cplusplus } #endif - +/** @} */ #endif /* !SMS_PRIVATE_H */
