pub struct StartOptions {
pub read_only: bool,
pub verbose: bool,
pub fsck_after_every_transaction: bool,
pub write_compression_algorithm: CompressionAlgorithm,
pub write_compression_level: i32,
pub cache_eviction_policy_override: EvictionPolicyOverride,
pub startup_profiling_seconds: u32,
pub inline_crypto_enabled: bool,
pub barriers_enabled: bool,
}
Expand description
Options for starting a filesystem.
Fields§
§read_only: bool
Start the filesystem in read-only mode.
verbose: bool
Enable verbose logging.
fsck_after_every_transaction: bool
If true, run fsck after every transaction. This is for testing purposes only - it’s very slow to run a filesystem like this.
write_compression_algorithm: CompressionAlgorithm
A compression algorithm specifier for the filesystem to use when storing files (if the filesystem supports it). Defaults to ZSTD_CHUNKED.
write_compression_level: i32
An optional compression level for the filesystem to use when storing files (if the filesystem and the configured |write_compression_algorithm| supports it). Setting to < 0 indicates no value (the filesystem chooses a default if necessary).
cache_eviction_policy_override: EvictionPolicyOverride
An optional eviction policy specifier for the filesystem to use for in-memory structures (if the filesystem supports it), specifically for pager-backed files.
startup_profiling_seconds: u32
Set greater than zero to use profiling for the first N seconds after filesystem start. Records the access patterns of objects for N seconds and if the profile already exists, prefetch data and hold the vmos in cache for N seconds. Functionally this means that the first launch with this option records the profile and all other launches with this option will replay that profile.
inline_crypto_enabled: bool
If true, configures the filesystem to use the hardware’s inline encryption engine when
writing encrypted data. This allows the filesystem to store user-encrypted data without
being able to read or write the plaintext contents, which enhances security and privacy.
Requires the block device to support inline encryption and for barriers_enabled
to be
true.
TODO(https://fxbug.dev/393196849): For now, this flag only prevents the filesystem from
computing checksums. Update this comment when the filesystem actually uses inline
encryption.
barriers_enabled: bool
Configures the filesystem to use barriers instead of checksums to ensure consistency. If
set, barriers will be used to enforce proper ordering of data and metadata writes, which
is otherwise provided by computing and verifying data checksums. Requires filesystem
support; at the time of writing, only Fxfs uses this argument.
Must be set to true if inline_crypto_enabled
is true.
Trait Implementations§
Source§impl Debug for StartOptions
impl Debug for StartOptions
Source§impl Decode<StartOptions, DefaultFuchsiaResourceDialect> for StartOptions
impl Decode<StartOptions, DefaultFuchsiaResourceDialect> for StartOptions
Source§impl Encode<StartOptions, DefaultFuchsiaResourceDialect> for &mut StartOptions
impl Encode<StartOptions, DefaultFuchsiaResourceDialect> for &mut StartOptions
Source§impl<T0: Encode<bool, DefaultFuchsiaResourceDialect>, T1: Encode<bool, DefaultFuchsiaResourceDialect>, T2: Encode<bool, DefaultFuchsiaResourceDialect>, T3: Encode<CompressionAlgorithm, DefaultFuchsiaResourceDialect>, T4: Encode<i32, DefaultFuchsiaResourceDialect>, T5: Encode<EvictionPolicyOverride, DefaultFuchsiaResourceDialect>, T6: Encode<u32, DefaultFuchsiaResourceDialect>, T7: Encode<bool, DefaultFuchsiaResourceDialect>, T8: Encode<bool, DefaultFuchsiaResourceDialect>> Encode<StartOptions, DefaultFuchsiaResourceDialect> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
impl<T0: Encode<bool, DefaultFuchsiaResourceDialect>, T1: Encode<bool, DefaultFuchsiaResourceDialect>, T2: Encode<bool, DefaultFuchsiaResourceDialect>, T3: Encode<CompressionAlgorithm, DefaultFuchsiaResourceDialect>, T4: Encode<i32, DefaultFuchsiaResourceDialect>, T5: Encode<EvictionPolicyOverride, DefaultFuchsiaResourceDialect>, T6: Encode<u32, DefaultFuchsiaResourceDialect>, T7: Encode<bool, DefaultFuchsiaResourceDialect>, T8: Encode<bool, DefaultFuchsiaResourceDialect>> Encode<StartOptions, DefaultFuchsiaResourceDialect> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
Source§impl Hash for StartOptions
impl Hash for StartOptions
Source§impl Ord for StartOptions
impl Ord for StartOptions
Source§fn cmp(&self, other: &StartOptions) -> Ordering
fn cmp(&self, other: &StartOptions) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for StartOptions
impl PartialEq for StartOptions
Source§impl PartialOrd for StartOptions
impl PartialOrd for StartOptions
Source§impl ResourceTypeMarker for StartOptions
impl ResourceTypeMarker for StartOptions
Source§type Borrowed<'a> = &'a mut StartOptions
type Borrowed<'a> = &'a mut StartOptions
Encode<Self>
type cheaply obtainable from &mut Self::Owned
. There are three cases: Read moreSource§fn take_or_borrow<'a>(
value: &'a mut <Self as TypeMarker>::Owned,
) -> Self::Borrowed<'a>
fn take_or_borrow<'a>( value: &'a mut <Self as TypeMarker>::Owned, ) -> Self::Borrowed<'a>
&mut Self::Owned
to Self::Borrowed
. For
HandleBased
types this is “take” (it returns an owned handle and
replaces value
with Handle::invalid
), and for all other types it is
“borrow” (just converts from one reference to another).Source§impl TypeMarker for StartOptions
impl TypeMarker for StartOptions
Source§type Owned = StartOptions
type Owned = StartOptions
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
.Source§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 moreSource§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.