File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -1895,6 +1895,23 @@ impl GuestMemory {
18951895 } )
18961896 }
18971897
1898+ /// Check if a given PagedRange is readable or not.
1899+ pub fn probe_gpn_readable_range ( & self , range : & PagedRange < ' _ > ) -> Result < ( ) , GuestMemoryError > {
1900+ self . op_range ( GuestMemoryOperation :: Probe , range, move |addr, _r| {
1901+ let mut b = [ 0 ] ;
1902+ self . read_at_inner ( addr, & mut b)
1903+ } )
1904+ }
1905+
1906+ /// Check if a given PagedRange is writable or not.
1907+ pub fn probe_gpn_writable_range ( & self , range : & PagedRange < ' _ > ) -> Result < ( ) , GuestMemoryError > {
1908+ self . op_range ( GuestMemoryOperation :: Probe , range, move |addr, _r| {
1909+ self . compare_exchange ( addr, 0u8 , 0 )
1910+ . map ( |_| ( ) )
1911+ . map_err ( |err| GuestMemoryBackingError :: other ( addr, err) )
1912+ } )
1913+ }
1914+
18981915 /// Check if a given GPA is readable or not.
18991916 pub fn probe_gpa_readable ( & self , gpa : u64 ) -> Result < ( ) , GuestMemoryErrorKind > {
19001917 let mut b = [ 0 ] ;
You can’t perform that action at this time.
0 commit comments