11// All functions here are extern function. There is no point for marking them as unsafe.
22#![ allow( clippy:: not_unsafe_ptr_arg_deref) ]
33
4+ use crate :: DummyVM ;
5+ use crate :: BUILDER ;
6+ use crate :: SINGLETON ;
47use libc:: c_char;
5- use std:: sync:: atomic:: Ordering ;
6- use std:: ffi:: CStr ;
78use mmtk:: memory_manager;
8- use mmtk:: AllocationSemantics ;
9- use mmtk:: util:: { ObjectReference , Address } ;
10- use mmtk:: util:: opaque_pointer:: * ;
119use mmtk:: scheduler:: { GCController , GCWorker } ;
10+ use mmtk:: util:: opaque_pointer:: * ;
11+ use mmtk:: util:: { Address , ObjectReference } ;
12+ use mmtk:: AllocationSemantics ;
1213use mmtk:: Mutator ;
13- use crate :: DummyVM ;
14- use crate :: SINGLETON ;
15- use crate :: BUILDER ;
14+ use std:: ffi:: CStr ;
15+ use std:: sync:: atomic:: Ordering ;
1616
1717#[ no_mangle]
1818pub extern "C" fn mmtk_init ( heap_size : usize ) {
1919 // set heap size first
2020 {
2121 let mut builder = BUILDER . lock ( ) . unwrap ( ) ;
22- let success = builder. options . gc_trigger . set ( mmtk:: util:: options:: GCTriggerSelector :: FixedHeapSize ( heap_size) ) ;
22+ let success =
23+ builder
24+ . options
25+ . gc_trigger
26+ . set ( mmtk:: util:: options:: GCTriggerSelector :: FixedHeapSize (
27+ heap_size,
28+ ) ) ;
2329 assert ! ( success, "Failed to set heap size to {}" , heap_size) ;
2430 }
2531
@@ -43,18 +49,37 @@ pub extern "C" fn mmtk_destroy_mutator(mutator: *mut Mutator<DummyVM>) {
4349}
4450
4551#[ no_mangle]
46- pub extern "C" fn mmtk_alloc ( mutator : * mut Mutator < DummyVM > , size : usize ,
47- align : usize , offset : usize , mut semantics : AllocationSemantics ) -> Address {
48- if size >= SINGLETON . get_plan ( ) . constraints ( ) . max_non_los_default_alloc_bytes {
52+ pub extern "C" fn mmtk_alloc (
53+ mutator : * mut Mutator < DummyVM > ,
54+ size : usize ,
55+ align : usize ,
56+ offset : usize ,
57+ mut semantics : AllocationSemantics ,
58+ ) -> Address {
59+ if size
60+ >= SINGLETON
61+ . get_plan ( )
62+ . constraints ( )
63+ . max_non_los_default_alloc_bytes
64+ {
4965 semantics = AllocationSemantics :: Los ;
5066 }
5167 memory_manager:: alloc :: < DummyVM > ( unsafe { & mut * mutator } , size, align, offset, semantics)
5268}
5369
5470#[ no_mangle]
55- pub extern "C" fn mmtk_post_alloc ( mutator : * mut Mutator < DummyVM > , refer : ObjectReference ,
56- bytes : usize , mut semantics : AllocationSemantics ) {
57- if bytes >= SINGLETON . get_plan ( ) . constraints ( ) . max_non_los_default_alloc_bytes {
71+ pub extern "C" fn mmtk_post_alloc (
72+ mutator : * mut Mutator < DummyVM > ,
73+ refer : ObjectReference ,
74+ bytes : usize ,
75+ mut semantics : AllocationSemantics ,
76+ ) {
77+ if bytes
78+ >= SINGLETON
79+ . get_plan ( )
80+ . constraints ( )
81+ . max_non_los_default_alloc_bytes
82+ {
5883 semantics = AllocationSemantics :: Los ;
5984 }
6085 memory_manager:: post_alloc :: < DummyVM > ( unsafe { & mut * mutator } , refer, bytes, semantics)
@@ -66,7 +91,10 @@ pub extern "C" fn mmtk_will_never_move(object: ObjectReference) -> bool {
6691}
6792
6893#[ no_mangle]
69- pub extern "C" fn mmtk_start_control_collector ( tls : VMWorkerThread , controller : & ' static mut GCController < DummyVM > ) {
94+ pub extern "C" fn mmtk_start_control_collector (
95+ tls : VMWorkerThread ,
96+ controller : & ' static mut GCController < DummyVM > ,
97+ ) {
7098 memory_manager:: start_control_collector ( & SINGLETON , tls, controller) ;
7199}
72100
@@ -106,7 +134,7 @@ pub extern "C" fn mmtk_total_bytes() -> usize {
106134}
107135
108136#[ no_mangle]
109- pub extern "C" fn mmtk_is_live_object ( object : ObjectReference ) -> bool {
137+ pub extern "C" fn mmtk_is_live_object ( object : ObjectReference ) -> bool {
110138 memory_manager:: is_live_object ( object)
111139}
112140
@@ -166,7 +194,11 @@ pub extern "C" fn mmtk_process(name: *const c_char, value: *const c_char) -> boo
166194 let name_str: & CStr = unsafe { CStr :: from_ptr ( name) } ;
167195 let value_str: & CStr = unsafe { CStr :: from_ptr ( value) } ;
168196 let mut builder = BUILDER . lock ( ) . unwrap ( ) ;
169- memory_manager:: process ( & mut builder, name_str. to_str ( ) . unwrap ( ) , value_str. to_str ( ) . unwrap ( ) )
197+ memory_manager:: process (
198+ & mut builder,
199+ name_str. to_str ( ) . unwrap ( ) ,
200+ value_str. to_str ( ) . unwrap ( ) ,
201+ )
170202}
171203
172204#[ no_mangle]
@@ -201,7 +233,11 @@ pub extern "C" fn mmtk_calloc(num: usize, size: usize) -> Address {
201233
202234#[ no_mangle]
203235#[ cfg( feature = "malloc_counted_size" ) ]
204- pub extern "C" fn mmtk_realloc_with_old_size ( addr : Address , size : usize , old_size : usize ) -> Address {
236+ pub extern "C" fn mmtk_realloc_with_old_size (
237+ addr : Address ,
238+ size : usize ,
239+ old_size : usize ,
240+ ) -> Address {
205241 memory_manager:: realloc_with_old_size :: < DummyVM > ( & SINGLETON , addr, size, old_size)
206242}
207243#[ no_mangle]
0 commit comments