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