]> rtime.felk.cvut.cz Git - l4.git/blob - l4/pkg/moe/server/libgc/include/private/gcconfig.h
update
[l4.git] / l4 / pkg / moe / server / libgc / include / private / gcconfig.h
1 #pragma once
2
3 #include <l4/sys/types.h>
4 #include <l4/sys/kip.h>
5
6 extern l4_kernel_info_t *_current_kip;
7
8 #ifndef __L4
9 #  define __L4
10 #endif
11
12 #define CLOCK_TYPE l4_cpu_time_t
13 #define CLOCKS_PER_SEC 1000000
14 #define MS_TIME_DIFF(a,b) ((long)((a)-(b)))
15 #define GET_TIME(x) x = _current_kip->clock
16
17 #define OS_TYPE "L4"
18 #define MARK_BIT_PER_GRANULE
19 #undef MARK_BIT_PER_OBJ
20
21 #define NO_DEBUGGING
22 //#define USE_MUNMAP
23 #define USE_MARK_BITS
24 #define IF_CANCEL(x)
25
26 #define ALL_INTERIOR_POINTERS
27 #define JAVA_FINALIZATION
28 #define NO_CLOCK
29 #define NO_GETENV
30 #define DEFAULT_VDB
31
32 #if defined(GC_ADD_CALLER)
33 # undef GC_ADD_CALLER
34 #endif
35
36 #if defined(SAVE_CALL_CHAIN)
37 #undef SAVE_CALL_CHAIN
38 #endif
39
40 #define STACK_GROWS_DOWN
41
42 extern void *__libc_stack_end;
43 //#define STACKBOTTOM __libc_stack_end
44
45
46 #if defined(L4_ARCH_amd64)
47 # define CPP_WORDSZ 64
48 # define ALIGNMENT  8
49 #else
50 # define CPP_WORDSZ 32
51 # define ALIGNMENT  4
52 #endif
53
54 #define USE_MMAP
55
56 # ifndef STATIC
57 #   ifndef NO_DEBUGGING
58 #     define STATIC /* ignore to aid profiling and possibly debugging */
59 #   else
60 #     define STATIC static
61 #   endif
62 # endif
63
64 struct hblk *GC_get_mem(size_t bytes);
65 #define GET_MEM(bytes) GC_get_mem(bytes)
66
67 #if defined(FIXUP_POINTER)
68 # define NEED_FIXUP_POINTER 1
69 #else
70 # define NEED_FIXUP_POINTER 0
71 # define FIXUP_POINTER(p)
72 #endif
73
74 #ifndef PREFETCH
75 # define PREFETCH(x)
76 # define NO_PREFETCH
77 #endif
78
79 #ifndef PREFETCH_FOR_WRITE
80 # define PREFETCH_FOR_WRITE(x)
81 # define NO_PREFETCH_FOR_WRITE
82 #endif
83
84 # ifndef CACHE_LINE_SIZE
85 #   define CACHE_LINE_SIZE 32   /* Wild guess   */
86 # endif
87
88
89
90 # ifndef CLEAR_DOUBLE
91 #   define CLEAR_DOUBLE(x) \
92                 ((word*)x)[0] = 0; \
93                 ((word*)x)[1] = 0;
94 # endif /* CLEAR_DOUBLE */
95