1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-17 11:20:39 -08:00

Added a pool argument to cbs creation so that cbss can share a pool. in particular, per-zone allocation cbss for the arena can share a single special block pool.

Copied from Perforce
 Change: 184469
 ServerID: perforce.ravenbrook.com
This commit is contained in:
Richard Brooksby 2014-02-15 15:00:39 +00:00
parent 2151d00c7f
commit f0b07f7bbe
7 changed files with 74 additions and 29 deletions

View file

@ -16,12 +16,26 @@
#include "splay.h"
typedef struct CBSBlockStruct *CBSBlock;
typedef struct CBSBlockStruct {
SplayNodeStruct splayNode;
Addr base;
Addr limit;
Size maxSize; /* accurate maximum block size of sub-tree */
ZoneSet zones; /* union zone set of all ranges in sub-tree */
} CBSBlockStruct;
typedef struct CBSStruct *CBS;
typedef Bool (*CBSIterateMethod)(CBS cbs, Range range,
void *closureP, Size closureS);
extern Bool CBSCheck(CBS cbs);
extern const struct mps_key_s _mps_key_cbs_block_pool;
#define CBSBlockPool (&_mps_key_cbs_block_pool)
#define CBSBlockPool_FIELD pool
extern Res CBSInit(Arena arena, CBS cbs, void *owner,
Align alignment, Bool fastFind, ArgList args);
extern void CBSFinish(CBS cbs);