blob: e73f1096db7d5a9b710c313f3707769f395a87bd [file] [log] [blame]
#include "../../runtime/SafePoolAllocator/ParPoolAllocator.h"
PoolTy Pool;
extern "C" void __sc_par_init_runtime(unsigned, unsigned, unsigned);
extern "C" void __sc_par_poolcheck(PoolTy *, void *);
extern "C" void __sc_par_poolcheck_0(void *);
extern "C" void __sc_par_boundscheck(PoolTy*, void*, void*);
extern "C" void __sc_par_boundscheck_0(void*, void*);
extern "C" void __sc_par_wait_for_completion(void);
extern "C" void __sc_par_cachepool_0(PoolTy*);
int main() {
__sc_par_pool_init_runtime(0, 0, 1);
__sc_par_poolinit(&Pool, 128);
__sc_par_cachepool_0(&Pool);
char* obj1 = (char*)__sc_par_poolalloc(&Pool, 128);
#if 0
char* obj2 = (char*)__sc_par_poolalloc(&Pool, 128);
#else
(char*)__sc_par_poolalloc(&Pool, 128);
#endif
for (unsigned x = 0; x < 100000000; ++x) {
__sc_par_poolcheck_0(obj1 + (x % 128));
__sc_par_boundscheck_0(obj1, obj1 + (x % 128));
#if 0
__sc_par_poolcheck(&Pool, obj2 + (x % 128));
__sc_par_boundscheck(&Pool, obj2, obj2 + (x % 128));
#endif
}
__sc_par_wait_for_completion();
return 0;
}
extern "C" void poolcheckfail(void) {
abort();
}