data struct for zone allocator

This commit is contained in:
Jong Hyuk Choi 2004-12-11 17:16:58 +00:00
parent fa4918ec1e
commit 7e310a62d8

View File

@ -2631,6 +2631,9 @@ typedef int (SLAP_CTRL_PARSE_FN) LDAP_P((
#define SLAP_SLAB_STACK 1 #define SLAP_SLAB_STACK 1
#define SLAP_SLAB_SOBLOCK 64 #define SLAP_SLAB_SOBLOCK 64
#define SLAP_ZONE_ALLOC 1
#undef SLAP_ZONE_ALLOC
#if defined(LDAP_DEVEL) && defined(ENABLE_REWRITE) #if defined(LDAP_DEVEL) && defined(ENABLE_REWRITE)
/* use librewrite for sasl-regexp */ /* use librewrite for sasl-regexp */
#define SLAP_AUTH_REWRITE 1 #define SLAP_AUTH_REWRITE 1
@ -2849,6 +2852,38 @@ struct slab_heap {
LDAP_LIST_HEAD( sh_so, slab_object ) sh_sopool; LDAP_LIST_HEAD( sh_so, slab_object ) sh_sopool;
}; };
#ifdef SLAP_ZONE_ALLOC
#define SLAP_ZONE_SIZE 0x80000 /* 512KB */
#define SLAP_ZONE_SHIFT 19
#define SLAP_ZONE_INITSIZE 0x800000 /* 8MB */
#define SLAP_ZONE_DELTA 0x800000 /* 8MB */
#define SLAP_ZONE_ZOBLOCK 256
struct zone_object {
void *zo_ptr;
int zo_siz;
int zo_idx;
int zo_blockhead;
LDAP_LIST_ENTRY(zone_object) zo_link;
};
struct zone_heap {
int zh_fd;
int zh_zonesize;
int zh_zoneorder;
int zh_numzones;
int zh_maxzones;
int zh_deltazones;
void **zh_zones;
Avlnode *zh_zonetree;
unsigned char ***zh_maps;
unsigned long *zh_seqno;
LDAP_LIST_HEAD( zh_freelist, zone_object ) *zh_free;
LDAP_LIST_HEAD( zh_so, zone_object ) zh_zopool;
ldap_pvt_thread_mutex_t zh_mutex;
};
#endif
#define SLAP_BACKEND_INIT_MODULE(b) \ #define SLAP_BACKEND_INIT_MODULE(b) \
int \ int \
init_module( int argc, char *argv[] ) \ init_module( int argc, char *argv[] ) \