1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//! Utilities used by other modules, including allocators, heap implementation, etc.
// Allow unused code in the util mod. We may have some functions that are not in use,
// but will be useful in future implementations.
// The following modules are public. MMTk bindings can use them to help implementation.
/// An abstract of memory address and object reference.
/// Allocators
// This module is made public so the binding could implement allocator slowpaths if they would like to.
/// Helpers for making native APIs.
/// Constants used in MMTk
/// Calculation, conversion and rounding for memory related numbers.
/// The copy allocators for a GC worker.
/// Heap implementation, including page resource, mmapper, etc.
/// Checking if an address is an valid MMTk object.
/// Linear scan through a heap range
/// Various malloc implementations (conditionally compiled by features)
/// Wrapper functions for memory syscalls such as mmap, mprotect, etc.
/// Metadata (OnSide or InHeader) implementation.
/// Opaque pointers used in MMTk, e.g. VMThread.
/// MMTk command line options.
/// Test utilities. We need this module for `MockVM` in criterion benches, which does not include code with `cfg(test)`.
// The following modules are only public in the mmtk crate. They should only be used in MMTk core.
/// An analysis framework for collecting data and profiling in GC.
pub
pub
/// Non-generic refs to generic types of `<VM>`.
pub
/// Finalization implementation.
pub
/// Logger initialization
pub
pub
/// Forwarding word in object copying.
pub
/// Reference processing implementation.
pub
/// Utilities funcitons for Rust
pub
/// Sanity checker for GC.
pub
/// Logging slots to check duplicated edges in GC.
pub
/// Utils for collecting statistics.
pub
/// A treadmill implementation.
pub
// These modules are private. They are only used by other util modules.
/// A very simple, generic malloc-free allocator
/// Implementation of GenericFreeList by an int vector.
/// Implementation of GenericFreeList backed by raw memory, allocated
/// on demand direct from the OS (via mmap).
pub use Address;
pub use ObjectReference;
pub use *;