diff options
Diffstat (limited to 'libphobos/libdruntime/gc/gcinterface.d')
-rw-r--r-- | libphobos/libdruntime/gc/gcinterface.d | 190 |
1 files changed, 0 insertions, 190 deletions
diff --git a/libphobos/libdruntime/gc/gcinterface.d b/libphobos/libdruntime/gc/gcinterface.d deleted file mode 100644 index abe88f1..0000000 --- a/libphobos/libdruntime/gc/gcinterface.d +++ /dev/null @@ -1,190 +0,0 @@ -/** - * Contains the internal GC interface. - * - * Copyright: Copyright Digital Mars 2016. - * License: $(WEB www.boost.org/LICENSE_1_0.txt, Boost License 1.0). - * Authors: Walter Bright, Sean Kelly, Jeremy DeHaan - */ - - /* Copyright Digital Mars 2016. - * Distributed under the Boost Software License, Version 1.0. - * (See accompanying file LICENSE or copy at - * http://www.boost.org/LICENSE_1_0.txt) - */ -module gc.gcinterface; - -static import core.memory; -alias BlkAttr = core.memory.GC.BlkAttr; -alias BlkInfo = core.memory.GC.BlkInfo; - -alias RootIterator = int delegate(scope int delegate(ref Root) nothrow dg); -alias RangeIterator = int delegate(scope int delegate(ref Range) nothrow dg); - - -struct Root -{ - void* proot; - alias proot this; -} - -struct Range -{ - void* pbot; - void* ptop; - TypeInfo ti; // should be tail const, but doesn't exist for references - alias pbot this; // only consider pbot for relative ordering (opCmp) -} - -interface GC -{ - - /* - * - */ - void Dtor(); - - /** - * - */ - void enable(); - - /** - * - */ - void disable(); - - /** - * - */ - void collect() nothrow; - - /** - * - */ - void collectNoStack() nothrow; - - /** - * minimize free space usage - */ - void minimize() nothrow; - - /** - * - */ - uint getAttr(void* p) nothrow; - - /** - * - */ - uint setAttr(void* p, uint mask) nothrow; - - /** - * - */ - uint clrAttr(void* p, uint mask) nothrow; - - /** - * - */ - void* malloc(size_t size, uint bits, const TypeInfo ti) nothrow; - - /* - * - */ - BlkInfo qalloc(size_t size, uint bits, const TypeInfo ti) nothrow; - - /* - * - */ - void* calloc(size_t size, uint bits, const TypeInfo ti) nothrow; - - /* - * - */ - void* realloc(void* p, size_t size, uint bits, const TypeInfo ti) nothrow; - - /** - * Attempt to in-place enlarge the memory block pointed to by p by at least - * minsize bytes, up to a maximum of maxsize additional bytes. - * This does not attempt to move the memory block (like realloc() does). - * - * Returns: - * 0 if could not extend p, - * total size of entire memory block if successful. - */ - size_t extend(void* p, size_t minsize, size_t maxsize, const TypeInfo ti) nothrow; - - /** - * - */ - size_t reserve(size_t size) nothrow; - - /** - * - */ - void free(void* p) nothrow; - - /** - * Determine the base address of the block containing p. If p is not a gc - * allocated pointer, return null. - */ - void* addrOf(void* p) nothrow; - - /** - * Determine the allocated size of pointer p. If p is an interior pointer - * or not a gc allocated pointer, return 0. - */ - size_t sizeOf(void* p) nothrow; - - /** - * Determine the base address of the block containing p. If p is not a gc - * allocated pointer, return null. - */ - BlkInfo query(void* p) nothrow; - - /** - * Retrieve statistics about garbage collection. - * Useful for debugging and tuning. - */ - core.memory.GC.Stats stats() nothrow; - - /** - * add p to list of roots - */ - void addRoot(void* p) nothrow @nogc; - - /** - * remove p from list of roots - */ - void removeRoot(void* p) nothrow @nogc; - - /** - * - */ - @property RootIterator rootIter() @nogc; - - /** - * add range to scan for roots - */ - void addRange(void* p, size_t sz, const TypeInfo ti) nothrow @nogc; - - /** - * remove range - */ - void removeRange(void* p) nothrow @nogc; - - /** - * - */ - @property RangeIterator rangeIter() @nogc; - - /** - * run finalizers - */ - void runFinalizers(in void[] segment) nothrow; - - /* - * - */ - bool inFinalizer() nothrow; -} |