diff options
Diffstat (limited to 'amiga/misc.c')
-rwxr-xr-x | amiga/misc.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/amiga/misc.c b/amiga/misc.c index 141994a31..065909e85 100755 --- a/amiga/misc.c +++ b/amiga/misc.c @@ -47,6 +47,47 @@ void *ami_misc_allocvec_clear(int size, UBYTE value) #endif } +APTR ami_misc_itempool_create(int size) +{ +#ifdef __amigaos4__ + return AllocSysObjectTags(ASOT_ITEMPOOL, + ASOITEM_MFlags, MEMF_PRIVATE, + ASOITEM_ItemSize, size, + ASOITEM_GCPolicy, ITEMGC_AFTERCOUNT, + ASOITEM_GCParameter, 50, + TAG_DONE); +#else + return CreatePool(MEMF_ANY, 2 * size, size); +#endif +} + +void ami_misc_itempool_delete(APTR pool) +{ +#ifdef __amigaos4__ + FreeSysObject(ASOT_ITEMPOOL, pool); +#else + DeletePool(pool); +#endif +} + +APTR ami_misc_itempool_alloc(APTR pool, int size) +{ +#ifdef __amigaos4__ + return ItemPoolAlloc(pool); +#else + return AllocPooled(pool, size); +#endif +} + +void ami_misc_itempool_free(APTR pool, APTR item, int size) +{ +#ifdef __amigaos4__ + return ItemPoolFree(pool, item); +#else + return FreePooled(pool, item, size); +#endif +} + static LONG ami_misc_req(const char *message, uint32 type) { LONG ret = 0; |