1 ! Copyright (C) 2009, 2010 Phil Dawes, Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: classes.struct alien.c-types alien.syntax kernel.private ;
6 TYPEDEF: uintptr_t cell_t
14 { callstack-top cell_t }
15 { callstack-bottom cell_t }
17 { retainstack cell_t }
18 { callstack-save cell_t }
19 { datastack-seg segment* }
20 { retainstack-seg segment* }
21 { callstack-seg segment* }
22 { context-objects cell_t[context-object-count] } ;
30 ! dispatch-statistics should be kept in sync with:
32 STRUCT: dispatch-statistics
33 { megamorphic-cache-hits cell_t }
34 { megamorphic-cache-misses cell_t }
36 { cold-call-to-ic-transitions cell_t }
37 { ic-to-pic-transitions cell_t }
38 { pic-to-mega-transitions cell_t }
40 { pic-tag-count cell_t }
41 { pic-tuple-count cell_t } ;
45 { spare-ctx context* }
47 { cards-offset cell_t }
48 { decks-offset cell_t }
49 { signal-handler-addr cell_t }
51 { special-objects cell_t[special-object-count] }
53 { datastack-size cell_t }
54 { retainstack-size cell_t }
55 { callstack-size cell_t } ;
57 CONSTANT: collect-nursery-op 0
58 CONSTANT: collect-aging-op 1
59 CONSTANT: collect-to-tenured-op 2
60 CONSTANT: collect-full-op 3
61 CONSTANT: collect-compact-op 4
62 CONSTANT: collect-growing-heap-op 5
69 STRUCT: mark-sweep-sizes
73 { contiguous-free cell_t }
74 { free-block-count cell_t } ;
76 STRUCT: data-heap-room
77 { nursery copying-sizes }
78 { aging copying-sizes }
79 { tenured mark-sweep-sizes }
82 { mark-stack cell_t } ;
86 { data-heap-before data-heap-room }
87 { code-heap-before mark-sweep-sizes }
88 { data-heap-after data-heap-room }
89 { code-heap-after mark-sweep-sizes }
90 { cards-scanned cell_t }
91 { decks-scanned cell_t }
92 { code-blocks-scanned cell_t }
93 { start-time ulonglong }
95 { card-scan-time cell_t }
96 { code-scan-time cell_t }
97 { data-sweep-time cell_t }
98 { code-sweep-time cell_t }
99 { compaction-time cell_t }
100 { temp-time ulonglong } ;
102 ! gc-info should be kept in sync with:
105 { gc-root-count uint read-only }
106 { derived-root-count uint read-only }
107 { return-address-count uint read-only } ;