#define SLAP_SLAB_STACK 1
 #define SLAP_SLAB_SOBLOCK 64
 
+#define SLAP_ZONE_ALLOC 1
+#undef SLAP_ZONE_ALLOC
+
 #if defined(LDAP_DEVEL) && defined(ENABLE_REWRITE)
 /* use librewrite for sasl-regexp */
 #define SLAP_AUTH_REWRITE      1
        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) \
        int \
        init_module( int argc, char *argv[] ) \