aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_alloc_util.h
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2013-05-17 14:47:08 +0200
committerSverker Eriksson <[email protected]>2013-06-03 14:24:24 +0200
commite5bbae8ae46bb11ab1c4f1a5e4e671d7a888ad84 (patch)
tree51a57d316842a93edaad9c4c01790857c7ca8828 /erts/emulator/beam/erl_alloc_util.h
parentc6a4999a5e6692f35cf384b854595db6302039b9 (diff)
downloadotp-e5bbae8ae46bb11ab1c4f1a5e4e671d7a888ad84.tar.gz
otp-e5bbae8ae46bb11ab1c4f1a5e4e671d7a888ad84.tar.bz2
otp-e5bbae8ae46bb11ab1c4f1a5e4e671d7a888ad84.zip
erts: Change naive list to rb-tree of carriers in AOFF allocator
and add new callbacks add_mbc(), remove_mbc() and largest_fblk_in_mbc() for carrier migration.
Diffstat (limited to 'erts/emulator/beam/erl_alloc_util.h')
-rw-r--r--erts/emulator/beam/erl_alloc_util.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_alloc_util.h b/erts/emulator/beam/erl_alloc_util.h
index 1183bf901d..739871957c 100644
--- a/erts/emulator/beam/erl_alloc_util.h
+++ b/erts/emulator/beam/erl_alloc_util.h
@@ -475,6 +475,12 @@ struct Allctr_t_ {
Uint (*get_next_mbc_size) (Allctr_t *);
void (*creating_mbc) (Allctr_t *, Carrier_t *, Uint32);
void (*destroying_mbc) (Allctr_t *, Carrier_t *, Uint32);
+
+ /* The three callbacks below are needed to support carrier migration */
+ void (*add_mbc) (Allctr_t *, Carrier_t *, Uint32);
+ void (*remove_mbc) (Allctr_t *, Carrier_t *, Uint32);
+ UWord (*largest_fblk_in_mbc) (Allctr_t *, Carrier_t *);
+
void (*init_atoms) (void);
#ifdef ERTS_ALLOC_UTIL_HARD_DEBUG