summaryrefslogtreecommitdiff
path: root/contrib/sendmail/include/sm/rpool.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/sendmail/include/sm/rpool.h')
-rw-r--r--contrib/sendmail/include/sm/rpool.h185
1 files changed, 0 insertions, 185 deletions
diff --git a/contrib/sendmail/include/sm/rpool.h b/contrib/sendmail/include/sm/rpool.h
deleted file mode 100644
index e750fcb7d3fdd..0000000000000
--- a/contrib/sendmail/include/sm/rpool.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
- * All rights reserved.
- *
- * By using this file, you agree to the terms and conditions set
- * forth in the LICENSE file which can be found at the top level of
- * the sendmail distribution.
- *
- * $Id: rpool.h,v 1.15 2001/09/04 22:41:55 ca Exp $
- */
-
-/*
-** libsm resource pools
-** See libsm/rpool.html for documentation.
-*/
-
-#ifndef SM_RPOOL_H
-# define SM_RPOOL_H
-
-# include <sm/gen.h>
-# include <sm/heap.h>
-# include <sm/string.h>
-
-/*
-** Each memory pool object consists of an SM_POOLLINK_T,
-** followed by a platform specific amount of padding,
-** followed by 'poolsize' bytes of pool data,
-** where 'poolsize' is the value of rpool->sm_poolsize at the time
-** the pool is allocated.
-*/
-
-typedef struct sm_poollink SM_POOLLINK_T;
-struct sm_poollink
-{
- SM_POOLLINK_T *sm_pnext;
-};
-
-typedef void (*SM_RPOOL_RFREE_T) __P((void *_rcontext));
-
-typedef SM_RPOOL_RFREE_T *SM_RPOOL_ATTACH_T;
-
-typedef struct sm_resource SM_RESOURCE_T;
-struct sm_resource
-{
- /*
- ** Function for freeing this resource. It may be NULL,
- ** meaning that this resource has already been freed.
- */
-
- SM_RPOOL_RFREE_T sm_rfree;
- void *sm_rcontext; /* resource data */
-};
-
-# define SM_RLIST_MAX 511
-
-typedef struct sm_rlist SM_RLIST_T;
-struct sm_rlist
-{
- SM_RESOURCE_T sm_rvec[SM_RLIST_MAX];
- SM_RLIST_T *sm_rnext;
-};
-
-typedef struct
-{
- /* Points to SmRpoolMagic, or is NULL if rpool is freed. */
- const char *sm_magic;
-
- /*
- ** If this rpool object has no parent, then sm_parentlink
- ** is NULL. Otherwise, we set *sm_parentlink = NULL
- ** when this rpool is freed, so that it isn't freed a
- ** second time when the parent is freed.
- */
-
- SM_RPOOL_RFREE_T *sm_parentlink;
-
- /*
- ** Memory pools
- */
-
- /* Size of the next pool to be allocated, not including the header. */
- size_t sm_poolsize;
-
- /*
- ** If an sm_rpool_malloc_x request is too big to fit
- ** in the current pool, and the request size > bigobjectsize,
- ** then the object will be given its own malloc'ed block.
- ** sm_bigobjectsize <= sm_poolsize. The maximum wasted space
- ** at the end of a pool is maxpooledobjectsize - 1.
- */
-
- size_t sm_bigobjectsize;
-
- /* Points to next free byte in the current pool. */
- char *sm_poolptr;
-
- /*
- ** Number of bytes available in the current pool.
- ** Initially 0. Set to 0 by sm_rpool_free.
- */
-
- size_t sm_poolavail;
-
- /* Linked list of memory pools. Initially NULL. */
- SM_POOLLINK_T *sm_pools;
-
- /*
- ** Resource lists
- */
-
- SM_RESOURCE_T *sm_rptr; /* Points to next free resource slot. */
-
- /*
- ** Number of available resource slots in current list.
- ** Initially 0. Set to 0 by sm_rpool_free.
- */
-
- size_t sm_ravail;
-
- /* Linked list of resource lists. Initially NULL. */
- SM_RLIST_T *sm_rlists;
-
-#if _FFR_PERF_RPOOL
- int sm_nbigblocks;
- int sm_npools;
-#endif /* _FFR_PERF_RPOOL */
-
-} SM_RPOOL_T;
-
-extern SM_RPOOL_T *
-sm_rpool_new_x __P((
- SM_RPOOL_T *_parent));
-
-extern void
-sm_rpool_free __P((
- SM_RPOOL_T *_rpool));
-
-# if SM_HEAP_CHECK
-extern void *
-sm_rpool_malloc_tagged_x __P((
- SM_RPOOL_T *_rpool,
- size_t _size,
- char *_file,
- int _line,
- int _group));
-# define sm_rpool_malloc_x(rpool, size) \
- sm_rpool_malloc_tagged_x(rpool, size, __FILE__, __LINE__, SmHeapGroup)
-extern void *
-sm_rpool_malloc_tagged __P((
- SM_RPOOL_T *_rpool,
- size_t _size,
- char *_file,
- int _line,
- int _group));
-# define sm_rpool_malloc(rpool, size) \
- sm_rpool_malloc_tagged(rpool, size, __FILE__, __LINE__, SmHeapGroup)
-# else /* SM_HEAP_CHECK */
-extern void *
-sm_rpool_malloc_x __P((
- SM_RPOOL_T *_rpool,
- size_t _size));
-extern void *
-sm_rpool_malloc __P((
- SM_RPOOL_T *_rpool,
- size_t _size));
-# endif /* SM_HEAP_CHECK */
-
-# define sm_rpool_strdup_x(rpool, str) \
- strcpy(sm_rpool_malloc_x(rpool, strlen(str) + 1), str)
-
-extern SM_RPOOL_ATTACH_T
-sm_rpool_attach_x __P((
- SM_RPOOL_T *_rpool,
- SM_RPOOL_RFREE_T _rfree,
- void *_rcontext));
-
-# define sm_rpool_detach(a) ((void)(*(a) = NULL))
-
-extern void
-sm_rpool_setsizes __P((
- SM_RPOOL_T *_rpool,
- size_t _poolsize,
- size_t _bigobjectsize));
-
-#endif /* ! SM_RPOOL_H */