Wrapper docs
This commit is contained in:
parent
eae7d9c670
commit
a34dec35c6
2 changed files with 56 additions and 3 deletions
|
|
@ -66,9 +66,9 @@ static_lib:
|
|||
# remove old files
|
||||
rm -f lib/event.o lib/profiler.o lib/heap.o lib/gcoll.a tests/extern_lib.out
|
||||
# compile object files
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/event.o lib/event.cpp -fPIC
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/profiler.o lib/profiler.cpp -fPIC
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -g -c -o lib/heap.o lib/heap.cpp -fPIC
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -c -o lib/event.o lib/event.cpp -fPIC
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -c -o lib/profiler.o lib/profiler.cpp -fPIC
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -c -o lib/heap.o lib/heap.cpp -fPIC
|
||||
# create static library
|
||||
ar r lib/gcoll.a lib/event.o lib/profiler.o lib/heap.o
|
||||
|
||||
|
|
@ -76,6 +76,7 @@ static_lib:
|
|||
static_lib_test: static_lib
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -o tests/extern_lib.out tests/extern_lib.cpp lib/gcoll.a
|
||||
|
||||
<<<<<<< HEAD
|
||||
<<<<<<< HEAD
|
||||
static_lib_c:
|
||||
# remove old files
|
||||
|
|
@ -93,6 +94,18 @@ wrapper:
|
|||
# create static library
|
||||
ar r lib/gcoll.a lib/event.o lib/profiler.o lib/heap.o
|
||||
=======
|
||||
=======
|
||||
wrapper:
|
||||
# remove old files
|
||||
rm -f lib/event.o lib/profiler.o lib/heap.o lib/coll.a tests/wrapper.out
|
||||
# compile object files
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -c -o lib/event.o lib/event.cpp -fPIC
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -c -o lib/profiler.o lib/profiler.cpp -fPIC
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -c -o lib/heap.o lib/heap.cpp -fPIC
|
||||
$(CC) $(STDFLAGS) $(WFLAGS) $(LIB_INCL) -O3 -c -o lib/cheap.o lib/cheap.cpp -fPIC
|
||||
# compile object files into library
|
||||
>>>>>>> 01c93a6 (Wrapper docs)
|
||||
ar rcs lib/gcoll.a lib/event.o lib/profiler.o lib/heap.o lib/cheap.o
|
||||
# compile test program wrapper.c with normal clang
|
||||
clang -stdlib=libc++ $(WFLAGS) $(LIB_INCL) -o tests/wrapper.out tests/wrapper.c lib/gcoll.a -lstdc++
|
||||
>>>>>>> 12816ea (Wrapper works)
|
||||
|
|
|
|||
40
src/GC/docs/lib/cheap.md
Normal file
40
src/GC/docs/lib/cheap.md
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
# cheap.h & cheap.cpp
|
||||
|
||||
A wrapper interface for the class `GC::Heap` for easier use
|
||||
in LLVM (no nasty namespaces). This interface is relatively
|
||||
straight-forward and only defines functions to use the already
|
||||
public functions in the class `GC::Heap`.
|
||||
|
||||
The functions are declared in a normal C-style header and
|
||||
defined as "pure" C-functions. Because the public functions
|
||||
exposed in `GC::Heap` are static, some of the functions
|
||||
just call the static functions but are wrapped as C-functions.
|
||||
|
||||
For the non-static function `GC::Heap::set_profiler()` and the
|
||||
singleton get-instance function `GC::Heap::the()` a struct
|
||||
is used to encapsulate the heap-object. If this library is
|
||||
compiled with `DEBUG` defined a struct is typedef-ed and
|
||||
can be used everywhere, otherwise this struct is opaque
|
||||
and cannot be used explicitly. This struct only contains
|
||||
a pointer to the heap instance and is called `cheap_t`.
|
||||
|
||||
## Functions
|
||||
`cheap_t *cheap_the()`: Returns an encapsulated singleton
|
||||
instance. It is encapsulated in an opaque struct as the
|
||||
instance itself is not meant to be used outside the C++
|
||||
library.
|
||||
|
||||
`void cheap_init()`: Simply calls the `Heap::init()`
|
||||
function.
|
||||
|
||||
`void cheap_dispose()`: Only calls the `Heap::dispose()`
|
||||
function.
|
||||
|
||||
`void *cheap_alloc(unsigned long size)`: Calls `Heap::alloc(size_t size)`
|
||||
and returns whatever `alloc` returns.
|
||||
|
||||
`void cheap_set_profiler(cheap_t *cheap, bool mode)`:
|
||||
The argument `cheap` is the encapsulated Heap singleton instance.
|
||||
`mode` is the same as for `Heap::set_profiler(bool mode)`.
|
||||
|
||||
For more documentation on functionality, see `src/GC/docs/lib/heap.md`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue