pub struct PAtomicI64 { /* private fields */ }Implementations§
Source§impl PAtomicI64
impl PAtomicI64
Sourcepub fn from_ptr_store(
ptr: *mut i64,
value: i64,
verus_tmp_perm: Tracked<&mut PointsTo<i64>>,
)
pub fn from_ptr_store( ptr: *mut i64, value: i64, verus_tmp_perm: Tracked<&mut PointsTo<i64>>, )
Store a value via a raw pointer using atomic store.
This is useful if a user wants to implement lockless algorithm for a struct where elements are linked through pointers. In that case, PointsTo<$value_ty> might be stored in AtomicInvariant.
The specification is similar to raw_ptr::ptr_mut_ref, but the implementation is atomic and so we can mark it as verifier::atomic, and so it can be used in open_atomic_invariant!.
Source§impl PAtomicI64
impl PAtomicI64
pub const fn new(i: i64) -> (PAtomicI64, Tracked<PermissionI64>)
pub fn load(&self, verus_tmp_perm: Tracked<&PermissionI64>) -> i64
pub fn store(&self, verus_tmp_perm: Tracked<&mut PermissionI64>, v: i64)
pub fn compare_exchange( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, current: i64, new: i64, ) -> Result<i64, i64>
pub fn compare_exchange_weak( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, current: i64, new: i64, ) -> Result<i64, i64>
pub fn swap(&self, verus_tmp_perm: Tracked<&mut PermissionI64>, v: i64) -> i64
pub fn into_inner(self, verus_tmp_perm: Tracked<PermissionI64>) -> i64
pub fn fetch_add_wrapping( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, n: i64, ) -> i64
pub fn fetch_sub_wrapping( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, n: i64, ) -> i64
pub fn fetch_add( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, n: i64, ) -> i64
pub fn fetch_sub( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, n: i64, ) -> i64
pub fn fetch_and( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, n: i64, ) -> i64
pub fn fetch_or( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, n: i64, ) -> i64
pub fn fetch_xor( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, n: i64, ) -> i64
pub fn fetch_nand( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, n: i64, ) -> i64
pub fn fetch_max( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, n: i64, ) -> i64
pub fn fetch_min( &self, verus_tmp_perm: Tracked<&mut PermissionI64>, n: i64, ) -> i64
Auto Trait Implementations§
impl !Freeze for PAtomicI64
impl RefUnwindSafe for PAtomicI64
impl Send for PAtomicI64
impl Sync for PAtomicI64
impl Unpin for PAtomicI64
impl UnsafeUnpin for PAtomicI64
impl UnwindSafe for PAtomicI64
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more