diff options
| -rw-r--r-- | src/lib.rs | 50 |
1 files changed, 30 insertions, 20 deletions
@@ -119,6 +119,11 @@ where unsafe { &mut *self.peripheral.get() } } + /// Returns a mutable pointer to the wrapped value + pub fn get(&self) -> *mut P { + self.peripheral.get() + } + /// Locks the resource, preventing tasks with priority lower than `Ceiling` /// from preempting the current task pub fn lock<R, F, Ctxt>(&'static self, _ctxt: &Ctxt, f: F) -> R @@ -204,26 +209,6 @@ impl<T, C> Resource<T, C> where C: Ceiling, { - /// Locks the resource, preventing tasks with priority lower than `Ceiling` - /// from preempting the current task - pub fn lock<F, R, Ctxt>(&'static self, _ctxt: &Ctxt, f: F) -> R - where - F: FnOnce(&T, C) -> R, - Ctxt: Context, - { - unsafe { lock(f, self.data.get(), C::ceiling()) } - } - - /// Mutably locks the resource, preventing tasks with priority lower than - /// `Ceiling` from preempting the current task - pub fn lock_mut<F, R, Ctxt>(&'static self, _ctxt: &mut Ctxt, f: F) -> R - where - F: FnOnce(&mut T, C) -> R, - Ctxt: Context, - { - unsafe { lock_mut(f, self.data.get(), C::ceiling()) } - } - /// Borrows the resource without locking /// /// NOTE The system ceiling must be higher than this resource ceiling @@ -243,6 +228,31 @@ where { unsafe { &mut *self.data.get() } } + + /// Returns a mutable pointer to the wrapped value + pub fn get(&self) -> *mut T { + self.data.get() + } + + /// Locks the resource, preventing tasks with priority lower than `Ceiling` + /// from preempting the current task + pub fn lock<F, R, Ctxt>(&'static self, _ctxt: &Ctxt, f: F) -> R + where + F: FnOnce(&T, C) -> R, + Ctxt: Context, + { + unsafe { lock(f, self.data.get(), C::ceiling()) } + } + + /// Mutably locks the resource, preventing tasks with priority lower than + /// `Ceiling` from preempting the current task + pub fn lock_mut<F, R, Ctxt>(&'static self, _ctxt: &mut Ctxt, f: F) -> R + where + F: FnOnce(&mut T, C) -> R, + Ctxt: Context, + { + unsafe { lock_mut(f, self.data.get(), C::ceiling()) } + } } impl<T> Resource<T, C0> { |
