aboutsummaryrefslogtreecommitdiff
path: root/libphobos/libdruntime/gc/gcinterface.d
diff options
context:
space:
mode:
Diffstat (limited to 'libphobos/libdruntime/gc/gcinterface.d')
-rw-r--r--libphobos/libdruntime/gc/gcinterface.d190
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;
-}