Struct SecureHeapProperties
pub struct SecureHeapProperties {
pub heap: Option<Heap>,
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<Heap>
The Heap 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§
§impl Clone for SecureHeapProperties
impl Clone for SecureHeapProperties
§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 more§impl Debug for SecureHeapProperties
impl Debug for SecureHeapProperties
§impl<D> Decode<SecureHeapProperties, D> for SecureHeapPropertieswhere
D: ResourceDialect,
impl<D> Decode<SecureHeapProperties, D> for SecureHeapPropertieswhere
D: ResourceDialect,
§fn new_empty() -> SecureHeapProperties
fn new_empty() -> SecureHeapProperties
Self
. The specific value does not matter,
since it will be overwritten by decode
.§impl Default for SecureHeapProperties
impl Default for SecureHeapProperties
§fn default() -> SecureHeapProperties
fn default() -> SecureHeapProperties
§impl<D> Encode<SecureHeapProperties, D> for &SecureHeapPropertieswhere
D: ResourceDialect,
impl<D> Encode<SecureHeapProperties, D> for &SecureHeapPropertieswhere
D: ResourceDialect,
§impl PartialEq for SecureHeapProperties
impl PartialEq for SecureHeapProperties
§impl TypeMarker for SecureHeapProperties
impl TypeMarker for SecureHeapProperties
§type Owned = SecureHeapProperties
type Owned = SecureHeapProperties
§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
§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.§impl ValueTypeMarker for SecureHeapProperties
impl ValueTypeMarker for SecureHeapProperties
§type Borrowed<'a> = &'a SecureHeapProperties
type Borrowed<'a> = &'a SecureHeapProperties
Encode<Self>
type cheaply obtainable from &Self::Owned
. There are three cases: Read more§fn borrow(
value: &<SecureHeapProperties as TypeMarker>::Owned,
) -> <SecureHeapProperties as ValueTypeMarker>::Borrowed<'_>
fn borrow( value: &<SecureHeapProperties as TypeMarker>::Owned, ) -> <SecureHeapProperties as ValueTypeMarker>::Borrowed<'_>
&Self::Owned
to Self::Borrowed
.