11use super :: mmapper:: MapState ;
22use super :: Mmapper ;
3+ use crate :: util:: memory:: MmapAnnotation ;
34use crate :: util:: Address ;
45
56use crate :: util:: constants:: * ;
@@ -44,7 +45,13 @@ impl Mmapper for ByteMapMmapper {
4445 }
4546 }
4647
47- fn ensure_mapped ( & self , start : Address , pages : usize , strategy : MmapStrategy ) -> Result < ( ) > {
48+ fn ensure_mapped (
49+ & self ,
50+ start : Address ,
51+ pages : usize ,
52+ strategy : MmapStrategy ,
53+ anno : & MmapAnnotation ,
54+ ) -> Result < ( ) > {
4855 let start_chunk = Self :: address_to_mmap_chunks_down ( start) ;
4956 let end_chunk = Self :: address_to_mmap_chunks_up ( start + pages_to_bytes ( pages) ) ;
5057 trace ! (
@@ -62,7 +69,8 @@ impl Mmapper for ByteMapMmapper {
6269
6370 let mmap_start = Self :: mmap_chunks_to_address ( chunk) ;
6471 let _guard = self . lock . lock ( ) . unwrap ( ) ;
65- MapState :: transition_to_mapped ( & self . mapped [ chunk] , mmap_start, strategy) . unwrap ( ) ;
72+ MapState :: transition_to_mapped ( & self . mapped [ chunk] , mmap_start, strategy, anno)
73+ . unwrap ( ) ;
6674 }
6775
6876 Ok ( ( ) )
@@ -73,6 +81,7 @@ impl Mmapper for ByteMapMmapper {
7381 start : Address ,
7482 pages : usize ,
7583 strategy : MmapStrategy ,
84+ anno : & MmapAnnotation ,
7685 ) -> Result < ( ) > {
7786 let start_chunk = Self :: address_to_mmap_chunks_down ( start) ;
7887 let end_chunk = Self :: address_to_mmap_chunks_up ( start + pages_to_bytes ( pages) ) ;
@@ -91,7 +100,8 @@ impl Mmapper for ByteMapMmapper {
91100
92101 let mmap_start = Self :: mmap_chunks_to_address ( chunk) ;
93102 let _guard = self . lock . lock ( ) . unwrap ( ) ;
94- MapState :: transition_to_quarantined ( & self . mapped [ chunk] , mmap_start, strategy) . unwrap ( ) ;
103+ MapState :: transition_to_quarantined ( & self . mapped [ chunk] , mmap_start, strategy, anno)
104+ . unwrap ( ) ;
95105 }
96106
97107 Ok ( ( ) )
@@ -172,6 +182,7 @@ impl Default for ByteMapMmapper {
172182#[ cfg( test) ]
173183mod tests {
174184 use super :: ByteMapMmapper ;
185+ use crate :: mmap_anno_test;
175186 use crate :: util:: heap:: layout:: Mmapper ;
176187 use crate :: util:: Address ;
177188
@@ -237,7 +248,7 @@ mod tests {
237248 || {
238249 let mmapper = ByteMapMmapper :: new ( ) ;
239250 mmapper
240- . ensure_mapped ( FIXED_ADDRESS , pages, MmapStrategy :: TEST )
251+ . ensure_mapped ( FIXED_ADDRESS , pages, MmapStrategy :: TEST , mmap_anno_test ! ( ) )
241252 . unwrap ( ) ;
242253
243254 for chunk in start_chunk..end_chunk {
@@ -266,7 +277,7 @@ mod tests {
266277 || {
267278 let mmapper = ByteMapMmapper :: new ( ) ;
268279 mmapper
269- . ensure_mapped ( FIXED_ADDRESS , pages, MmapStrategy :: TEST )
280+ . ensure_mapped ( FIXED_ADDRESS , pages, MmapStrategy :: TEST , mmap_anno_test ! ( ) )
270281 . unwrap ( ) ;
271282
272283 for chunk in start_chunk..end_chunk {
@@ -295,7 +306,7 @@ mod tests {
295306 || {
296307 let mmapper = ByteMapMmapper :: new ( ) ;
297308 mmapper
298- . ensure_mapped ( FIXED_ADDRESS , pages, MmapStrategy :: TEST )
309+ . ensure_mapped ( FIXED_ADDRESS , pages, MmapStrategy :: TEST , mmap_anno_test ! ( ) )
299310 . unwrap ( ) ;
300311
301312 let start_chunk = ByteMapMmapper :: address_to_mmap_chunks_down ( FIXED_ADDRESS ) ;
@@ -329,7 +340,12 @@ mod tests {
329340 // map 2 chunks
330341 let mmapper = ByteMapMmapper :: new ( ) ;
331342 mmapper
332- . ensure_mapped ( FIXED_ADDRESS , test_memory_pages, MmapStrategy :: TEST )
343+ . ensure_mapped (
344+ FIXED_ADDRESS ,
345+ test_memory_pages,
346+ MmapStrategy :: TEST ,
347+ mmap_anno_test ! ( ) ,
348+ )
333349 . unwrap ( ) ;
334350
335351 // protect 1 chunk
@@ -364,7 +380,12 @@ mod tests {
364380 // map 2 chunks
365381 let mmapper = ByteMapMmapper :: new ( ) ;
366382 mmapper
367- . ensure_mapped ( FIXED_ADDRESS , test_memory_pages, MmapStrategy :: TEST )
383+ . ensure_mapped (
384+ FIXED_ADDRESS ,
385+ test_memory_pages,
386+ MmapStrategy :: TEST ,
387+ mmap_anno_test ! ( ) ,
388+ )
368389 . unwrap ( ) ;
369390
370391 // protect 1 chunk
@@ -382,7 +403,12 @@ mod tests {
382403
383404 // ensure mapped - this will unprotect the previously protected chunk
384405 mmapper
385- . ensure_mapped ( FIXED_ADDRESS , protect_memory_pages_2, MmapStrategy :: TEST )
406+ . ensure_mapped (
407+ FIXED_ADDRESS ,
408+ protect_memory_pages_2,
409+ MmapStrategy :: TEST ,
410+ mmap_anno_test ! ( ) ,
411+ )
386412 . unwrap ( ) ;
387413 assert_eq ! (
388414 mmapper. mapped[ chunk] . load( Ordering :: Relaxed ) ,
0 commit comments