1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-13 23:10:26 -08:00
emacs/mps/qa/test/testlib/versind.h
Pekka Pirinen 4cf63ac5d8 Fix mps_space_create
Copied from Perforce
 Change: 21672
 ServerID: perforce.ravenbrook.com
2001-03-07 19:52:12 +00:00

120 lines
3.1 KiB
C

/* $HopeName: MMQA_harness!testlib:versind.h(trunk.11) $
*
* If you define mps_ symbols here, you also need to list them in
* MMQA_harness!testlib:assumed.
*/
/* In release.dylan.honeybee, space was renamed arena in lots of functions
We'll use the "destroy" functions to test which versions are available
*/
#define mmqaArenaSIZE ((size_t)1<<30)
#ifdef MMQA_DEFINED_mps_arena_destroy
#ifdef MMQA_DEFINED_mps_space_destroy
/* bizarrely, both versions seem to be present! */
#else
/* need to define "space" variants */
#define mps_space_clamp(a) mps_arena_clamp(a)
#define mps_space_release(a) mps_arena_release(a)
#define mps_space_park(a) mps_arena_park(a)
#define mps_space_collect(a) mps_arena_collect(a)
#define mps_space_destroy(a) mps_arena_destroy(a)
#define mps_space_reserved(a) mps_arena_reserved(a)
#define mps_space_committed(a) mps_arena_committed(a)
#define mps_space_t mps_arena_t
#include "mpsavm.h"
#define mps_space_create(space) \
mps_arena_create(space, mps_arena_class_vm(), mmqaArenaSIZE)
#endif
#else
#ifdef MMQA_DEFINED_mps_space_destroy
/* need to define "arena" variants */
#define mps_arena_clamp(a) mps_space_clamp(a)
#define mps_arena_release(a) mps_space_release(a)
#define mps_arena_park(a) mps_space_park(a)
#define mps_arena_collect(a) mps_space_collect(a)
#define mps_arena_destroy(a) mps_space_destroy(a)
#define mps_arena_reserved(a) mps_space_reserved(a)
#define mps_arena_committed(a) mps_space_committed(a)
#define mps_arena_t mps_space_t
#else
/* Neither exists -- error! */
#error Could find either mps_arena_destroy or mps_space_destroy
#endif
#endif
/* Before release.epcore.brisling / release.dylan.kinglet
there was no spare committed fund
*/
#ifndef MMQA_DEFINED_mps_arena_spare_committed
#define mps_arena_spare_committed(a) ((size_t) 0)
#endif
#ifndef MMQA_DEFINED_mps_arena_spare_commit_limit
#define mps_arena_spare_commit_limit(a) ((size_t) 0)
#endif
#ifndef MMQA_DEFINED_mps_arena_spare_commit_limit_set
#define mps_arena_spare_commit_limit_set(a, l) \
asserts(0, \
"MPS interface versions before HU do not support the spare committed fund")
#endif
/*
The following defs can't be done automatically. I don't think
this is a problem, but here they are just in case.
Before modern interface;
- no closure arguments for mps_root_create_reg
- no rank argument for mps_ap_create (ever)
#define mps_root_create_reg(ro, sp, ra, rm, thr, scan, p, _s) \
(mps_root_create_reg)(ro, sp, ra, rm, thr, scan, p)
#define mps_ap_create(a, p, _r) \
(mps_ap_create)(a, p)
*/
#ifndef MMQA_DEFINED_mps_chain_create
#define mps_chain_t void*
typedef struct mps_gen_param_s {
size_t mps_capacity;
double mps_mortality;
} mps_gen_param_s;
#define mps_chain_create(p, a, s, par) (*(p) = NULL, (void)(par), MPS_RES_OK)
#define mps_chain_destroy(p) do {} while(0)
#define mmqa_pool_create_chain(pool_o, arena, class, format, chain) \
mps_pool_create(pool_o, arena, class, format)
#else
#define mmqa_pool_create_chain(pool_o, arena, class, format, chain) \
mps_pool_create(pool_o, arena, class, format, chain)
#endif