Struct Pmt
pub struct Pmt(/* private fields */);Expand description
An object representing a Zircon Pinned Memory Token. See PMT Documentation for details.
As essentially a subtype of NullableHandle, it can be freely interconverted.
Implementations§
§impl Pmt
impl Pmt
pub fn into_raw(self) -> u32
pub fn into_raw(self) -> u32
Return the raw handle’s integer value without closing it when self is dropped.
pub fn duplicate(&self, rights: Rights) -> Result<Pmt, Status>
pub fn duplicate(&self, rights: Rights) -> Result<Pmt, Status>
Wraps the
zx_handle_duplicate
syscall.
pub fn signal(
&self,
clear_mask: Signals,
set_mask: Signals,
) -> Result<(), Status>
pub fn signal( &self, clear_mask: Signals, set_mask: Signals, ) -> Result<(), Status>
Wraps the
zx_object_signal
syscall.
pub fn wait_one(
&self,
signals: Signals,
deadline: Instant<MonotonicTimeline>,
) -> WaitResult
pub fn wait_one( &self, signals: Signals, deadline: Instant<MonotonicTimeline>, ) -> WaitResult
Wraps the
zx_object_wait_one
syscall.
§impl Pmt
impl Pmt
pub unsafe fn unpin(self) -> Result<(), Status>
pub unsafe fn unpin(self) -> Result<(), Status>
Unpins a Pinned Memory Token.
Wraps the
zx_pmt_unpin system call
to unpin a pmt.
This function is marked unsafe because calling it at the wrong time (i.e., while hardware
is still accessing the pinned memory) can lead to memory corruption.
§Safety
The caller must ensure hardware is no longer accessing the memory that has been pinned or else risk arbitrary memory corruption. It is strongly recommended you do not call this in a drop method.
Trait Implementations§
§impl AsHandleRef for Pmt
impl AsHandleRef for Pmt
§fn as_handle_ref(&self) -> Unowned<'_, NullableHandle>
fn as_handle_ref(&self) -> Unowned<'_, NullableHandle>
object_wait_many.§fn raw_handle(&self) -> u32
fn raw_handle(&self) -> u32
§fn wait_async_handle(
&self,
port: &Port,
key: u64,
signals: Signals,
options: WaitAsyncOpts,
) -> Result<(), Status>
fn wait_async_handle( &self, port: &Port, key: u64, signals: Signals, options: WaitAsyncOpts, ) -> Result<(), Status>
§fn get_name(&self) -> Result<Name, Status>
fn get_name(&self) -> Result<Name, Status>
§fn set_name(&self, name: &Name) -> Result<(), Status>
fn set_name(&self, name: &Name) -> Result<(), Status>
§fn basic_info(&self) -> Result<HandleBasicInfo, Status>
fn basic_info(&self) -> Result<HandleBasicInfo, Status>
§fn count_info(&self) -> Result<HandleCountInfo, Status>
fn count_info(&self) -> Result<HandleCountInfo, Status>
Source§impl CompatFrom<Pmt> for Pmt
Available on crate feature fuchsia only.
impl CompatFrom<Pmt> for Pmt
fuchsia only.Source§fn compat_from(value: Pmt) -> Pmt
fn compat_from(value: Pmt) -> Pmt
value into a value of this type.Source§impl<E> Encode<WirePmt, E> for Pmtwhere
E: HandleEncoder + ?Sized,
impl<E> Encode<WirePmt, E> for Pmtwhere
E: HandleEncoder + ?Sized,
Source§fn encode(
self,
encoder: &mut E,
out: &mut MaybeUninit<WirePmt>,
constraint: <WirePmt as Constrained>::Constraint,
) -> Result<(), EncodeError>
fn encode( self, encoder: &mut E, out: &mut MaybeUninit<WirePmt>, constraint: <WirePmt as Constrained>::Constraint, ) -> Result<(), EncodeError>
Source§const COPY_OPTIMIZATION: CopyOptimization<Self, W> = _
const COPY_OPTIMIZATION: CopyOptimization<Self, W> = _
Source§impl<E> EncodeOption<WireOptionalPmt, E> for Pmtwhere
E: HandleEncoder + ?Sized,
impl<E> EncodeOption<WireOptionalPmt, E> for Pmtwhere
E: HandleEncoder + ?Sized,
Source§fn encode_option(
this: Option<Pmt>,
encoder: &mut E,
out: &mut MaybeUninit<WireOptionalPmt>,
constraint: (),
) -> Result<(), EncodeError>
fn encode_option( this: Option<Pmt>, encoder: &mut E, out: &mut MaybeUninit<WireOptionalPmt>, constraint: (), ) -> Result<(), EncodeError>
§impl From<NullableHandle> for Pmt
impl From<NullableHandle> for Pmt
§fn from(handle: NullableHandle) -> Pmt
fn from(handle: NullableHandle) -> Pmt
§impl From<Pmt> for NullableHandle
impl From<Pmt> for NullableHandle
§fn from(x: Pmt) -> NullableHandle
fn from(x: Pmt) -> NullableHandle
Source§impl FromWire<WirePmt> for Pmt
impl FromWire<WirePmt> for Pmt
Source§const COPY_OPTIMIZATION: CopyOptimization<W, Self> = _
const COPY_OPTIMIZATION: CopyOptimization<W, Self> = _
Source§impl FromWireOption<WireOptionalPmt> for Pmt
impl FromWireOption<WireOptionalPmt> for Pmt
Source§fn from_wire_option(wire: WireOptionalPmt) -> Option<Pmt>
fn from_wire_option(wire: WireOptionalPmt) -> Option<Pmt>
wire to an option of this type.§impl HandleBased for Pmt
impl HandleBased for Pmt
§fn duplicate_handle(&self, rights: Rights) -> Result<Self, Status>
fn duplicate_handle(&self, rights: Rights) -> Result<Self, Status>
§fn replace_handle(self, rights: Rights) -> Result<Self, Status>
fn replace_handle(self, rights: Rights) -> Result<Self, Status>
§fn into_handle(self) -> NullableHandle
fn into_handle(self) -> NullableHandle
§fn from_handle(handle: NullableHandle) -> Self
fn from_handle(handle: NullableHandle) -> Self
§fn into_handle_based<H>(self) -> Hwhere
H: HandleBased,
fn into_handle_based<H>(self) -> Hwhere
H: HandleBased,
§fn from_handle_based<H>(h: H) -> Selfwhere
H: HandleBased,
fn from_handle_based<H>(h: H) -> Selfwhere
H: HandleBased,
fn is_invalid_handle(&self) -> bool
§impl Ord for Pmt
impl Ord for Pmt
§impl PartialOrd for Pmt
impl PartialOrd for Pmt
impl Eq for Pmt
impl StructuralPartialEq for Pmt
Auto Trait Implementations§
impl Freeze for Pmt
impl RefUnwindSafe for Pmt
impl Send for Pmt
impl Sync for Pmt
impl Unpin for Pmt
impl UnwindSafe for Pmt
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
§impl<T> EncodableAsHandle for Twhere
T: HandleBased,
impl<T> EncodableAsHandle for Twhere
T: HandleBased,
§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
Source§impl<T, W> FromWireOption<WireBox<'_, W>> for Twhere
T: FromWire<W>,
impl<T, W> FromWireOption<WireBox<'_, W>> for Twhere
T: FromWire<W>,
Source§fn from_wire_option(wire: WireBox<'_, W>) -> Option<T>
fn from_wire_option(wire: WireBox<'_, W>) -> Option<T>
wire to an option of this type.Source§impl<T> InstanceFromServiceTransport<T> for T
impl<T> InstanceFromServiceTransport<T> for T
Source§fn from_service_transport(handle: T) -> T
fn from_service_transport(handle: T) -> T
T to Self