Skip to content

Commit ee46c21

Browse files
authored
make read_val-* not trusted and move primitives for Pods as trusted wrappers (#345)
1 parent 194f48b commit ee46c21

9 files changed

Lines changed: 394 additions & 87 deletions

File tree

ostd/specs/mm/page_table/node/child.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ impl<'a, C: PageTableConfig> OwnerOf for ChildRef<'a, C> {
5252
Self::None => owner.is_absent(),
5353
}
5454
}
55-
}
55+
}
5656

5757
impl<C: PageTableConfig> Child<C> {
5858

ostd/specs/mm/page_table/owners.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,10 @@ use vstd_extra::ghost_tree::*;
1313
use vstd_extra::ownership::*;
1414
use vstd_extra::prelude::TreeNodeValue;
1515

16-
use crate::mm::{
17-
page_table::EntryOwner,
18-
Paddr, PagingLevel, Vaddr, MAX_NR_LEVELS,
19-
};
16+
use crate::mm::{page_table::EntryOwner, Paddr, PagingLevel, Vaddr, MAX_NR_LEVELS};
2017

2118
use crate::mm::frame::frame_to_index;
22-
use crate::mm::page_table::{PageTableGuard, PageTableEntryTrait};
19+
use crate::mm::page_table::{PageTableEntryTrait, PageTableGuard};
2320

2421
use crate::specs::arch::*;
2522
use crate::specs::mm::frame::meta_region_owners::MetaRegionOwners;

ostd/src/mm/frame/frame_ref.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ impl<M: AnyFrameMeta> FrameRef<'_, M> {
6767
pub(in crate::mm) fn borrow_paddr(raw: Paddr) -> Self {
6868
proof {
6969
broadcast use crate::mm::frame::meta::mapping::group_page_meta;
70+
7071
old(regions).inv_implies_correct_addr(raw);
7172
}
7273

ostd/src/mm/frame/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -417,8 +417,8 @@ impl<'a, M: AnyFrameMeta> Frame<M> {
417417
pub fn borrow(&self) -> FrameRef<'a, M> {
418418
assert(regions.slot_owners.contains_key(self.index()));
419419
broadcast use crate::mm::frame::meta::mapping::group_page_meta;
420-
421420
// SAFETY: Both the lifetime and the type matches `self`.
421+
422422
#[verus_spec(with Tracked(&perm.points_to))]
423423
let paddr = self.start_paddr();
424424

0 commit comments

Comments
 (0)