66#define RMM_HDR_BLOCK_SIZE (APR_ALIGN_DEFAULT(sizeof(rmm_hdr_block_t)))
67#define RMM_BLOCK_SIZE (APR_ALIGN_DEFAULT(sizeof(rmm_block_t)))
89 return includes ?
prev : 0;
94 return includes ?
prev : 0;
128 new->next =
blk->next;
154 rmm->base->firstused =
blk->next;
157 rmm->base->firstfree =
blk->next;
169 blk->next =
rmm->base->firstfree;
170 rmm->base->firstfree =
this;
176 blk->next =
rmm->base->firstused;
177 rmm->base->firstused =
this;
184 if (free && (
blk->prev +
prev->size ==
this)) {
198 if (free && (
this +
blk->size ==
blk->next)) {
233 (*rmm)->lock = *
lock;
235 (*rmm)->base->abssize =
size;
236 (*rmm)->base->firstused = 0;
241 blk->size =
size - (*rmm)->base->firstfree;
257 if (
rmm->base->firstused) {
262 blk->next =
blk->prev = 0;
264 rmm->base->firstused = 0;
266 if (
rmm->base->firstfree) {
271 blk->next =
blk->prev = 0;
273 rmm->base->firstfree = 0;
275 rmm->base->abssize = 0;
296 (*rmm)->size = (*rmm)->base->abssize;
297 (*rmm)->lock = *
lock;
407 if (
prev->next !=
this) {
413 if (
rmm->base->firstused !=
this) {
421 if (
next->prev !=
this) {
438 return (
void*)((
char*)
rmm->base +
entity);
448 return ((
char*)
entity - (
char*)
rmm->base);
#define APR_ANYLOCK_UNLOCK(lck)
#define APR_ANYLOCK_LOCK(lck)
APR Miscellaneous library routines.
APR general purpose library routines.
#define RMM_HDR_BLOCK_SIZE
static apr_rmm_off_t find_block_of_size(apr_rmm_t *rmm, apr_size_t size)
static void move_block(apr_rmm_t *rmm, apr_rmm_off_t this, int free)
static apr_rmm_off_t find_block_by_offset(apr_rmm_t *rmm, apr_rmm_off_t next, apr_rmm_off_t find, int includes)
APR-UTIL Relocatable Memory Management Routines.
APU_DECLARE(void)
Computes SipHash-2-4, producing a 64bit (APR_SIPHASH_DSIZE) hash from a message and a 128bit (APR_SIP...
#define APR_ALIGN_DEFAULT(size)
#define apr_pcalloc(p, size)
enum apr_anylock_t::tm_lock type