pub struct SecureHeapProperties {
pub heap: Option<HeapType>,
pub dynamic_protection_ranges: Option<bool>,
pub protected_range_granularity: Option<u32>,
pub max_protected_range_count: Option<u64>,
pub is_mod_protected_range_available: Option<bool>,
/* private fields */
}
Fields§
§heap: Option<HeapType>
The HeapType is repeated here for convenience.
dynamic_protection_ranges: Option<bool>
If true, more than one call to SetPhysicalSecureHeap() for the same heap is allowed. If false, only one SetPhyscialSecureHeap() call is allowed, and no calls to DeleteSecureHeapPhysicalRange() or ModifySecureHeapPhysicalRange() are allowed. Even when this is false, the SecureMem server (driver) is still responsible for de-protecting just before warm reboot if protected ranges would not otherwise be cleaned up during a warm reboot.
protected_range_granularity: Option<u32>
The granularity of protection ranges. If the granularity of start is different than granularity of end or length, then this is the max granularity value among those values.
This must be a power of 2. The client must not request ranges that specify smaller granularity.
This must be at least zx_system_page_size() even if the HW can do smaller granularity.
max_protected_range_count: Option<u64>
The SecureMem server should not count reserved ranges that the SecureMem server uses internally to get from range set A to range set B, if the SecureMem server needs to do any emulation of that sort. Normally such emulation by the SecureMem server is unnecessary. If any ranges are reserved by the SecureMem server, those reserved ranges are not available for use by the SecureMem client.
If the number of ranges is limited only by available memory, it’s ok for the SecureMem server to report 0xFFFFFFFFFFFFFFFF for this value. The field must still be set. As usual, the SecureMem server should ensure that SetPhysicalSecureHeapRanges() succeeds or fails atomically (either fully updates or rolls back before completing).
is_mod_protected_range_available: Option<bool>
Iff true, ModifySecureHeapPhysicalRange() is implemented. Calling ModifySecureHeapPhysicalRange() when is_mod_protected_range_available is false is prohibited. Don’t attempt to detect availability of ModifySecureHeapPhysicalRange() by calling it to see if it fails; it may ZX_PANIC().
Trait Implementations§
Source§impl Clone for SecureHeapProperties
impl Clone for SecureHeapProperties
Source§fn clone(&self) -> SecureHeapProperties
fn clone(&self) -> SecureHeapProperties
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SecureHeapProperties
impl Debug for SecureHeapProperties
Source§impl<D: ResourceDialect> Decode<SecureHeapProperties, D> for SecureHeapProperties
impl<D: ResourceDialect> Decode<SecureHeapProperties, D> for SecureHeapProperties
Source§impl Default for SecureHeapProperties
impl Default for SecureHeapProperties
Source§fn default() -> SecureHeapProperties
fn default() -> SecureHeapProperties
Source§impl<D: ResourceDialect> Encode<SecureHeapProperties, D> for &SecureHeapProperties
impl<D: ResourceDialect> Encode<SecureHeapProperties, D> for &SecureHeapProperties
Source§impl PartialEq for SecureHeapProperties
impl PartialEq for SecureHeapProperties
Source§impl TypeMarker for SecureHeapProperties
impl TypeMarker for SecureHeapProperties
Source§type Owned = SecureHeapProperties
type Owned = SecureHeapProperties
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align
.§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read more§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.Source§impl ValueTypeMarker for SecureHeapProperties
impl ValueTypeMarker for SecureHeapProperties
Source§type Borrowed<'a> = &'a SecureHeapProperties
type Borrowed<'a> = &'a SecureHeapProperties
Encode<Self>
type cheaply obtainable from &Self::Owned
. There are three cases: Read moreimpl Persistable for SecureHeapProperties
impl StructuralPartialEq for SecureHeapProperties
Auto Trait Implementations§
impl Freeze for SecureHeapProperties
impl RefUnwindSafe for SecureHeapProperties
impl Send for SecureHeapProperties
impl Sync for SecureHeapProperties
impl Unpin for SecureHeapProperties
impl UnwindSafe for SecureHeapProperties
Blanket Implementations§
§impl<T> Body for Twhere
T: Persistable,
impl<T> Body for Twhere
T: Persistable,
§type MarkerAtTopLevel = T
type MarkerAtTopLevel = T
§type MarkerInResultUnion = T
type MarkerInResultUnion = T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)