pub struct RawPSpawnConfig {
pub revision: u8,
pub name: OptZero<Str>,
pub argv: OptZero<Slice<Str>>,
pub flags: SpawnFlags,
pub stdio: OptZero<FFINonNull<ProcessStdio>>,
pub env: OptZero<Slice<Slice<u8>>>,
pub priority: RawContextPriority,
pub custom_stack_size: OptZero<ShouldNotBeZero<usize>>,
/* private fields */
}Expand description
configuration for the spawn syscall
Fields§
§revision: u8config version for compatibility added in kernel version 0.2.1 and therefore breaking compatibility with any program compiled for version below 0.2.1 revision 1: added env revision 2: added priority (v0.4.0) revision 3: added custom stack size (v0.4.0)
name: OptZero<Str>§argv: OptZero<Slice<Str>>§flags: SpawnFlags§stdio: OptZero<FFINonNull<ProcessStdio>>§env: OptZero<Slice<Slice<u8>>>revision 1 and above
priority: RawContextPriorityrevision 2 and above
custom_stack_size: OptZero<ShouldNotBeZero<usize>>revision 3 and above
Implementations§
Source§impl RawPSpawnConfig
impl RawPSpawnConfig
Sourcepub const fn new_from_raw(
name: OptZero<Str>,
argv: OptZero<Slice<Str>>,
env: OptZero<Slice<Slice<u8>>>,
flags: SpawnFlags,
stdio: OptZero<FFINonNull<ProcessStdio>>,
priority: RawContextPriority,
custom_stack_size: OptZero<ShouldNotBeZero<usize>>,
) -> Self
pub const fn new_from_raw( name: OptZero<Str>, argv: OptZero<Slice<Str>>, env: OptZero<Slice<Slice<u8>>>, flags: SpawnFlags, stdio: OptZero<FFINonNull<ProcessStdio>>, priority: RawContextPriority, custom_stack_size: OptZero<ShouldNotBeZero<usize>>, ) -> Self
Creates a new process spawn configuration with the latest revision from raw FFI values
Sourcepub unsafe fn new<'a>(
name: Option<&'a str>,
argv: Option<&'a mut [*mut str]>,
envv: Option<&'a mut [*mut [u8]]>,
flags: SpawnFlags,
stdio: Option<&'a ProcessStdio>,
priority: RawContextPriority,
custom_stack_size: Option<NonZero<usize>>,
) -> Self
pub unsafe fn new<'a>( name: Option<&'a str>, argv: Option<&'a mut [*mut str]>, envv: Option<&'a mut [*mut [u8]]>, flags: SpawnFlags, stdio: Option<&'a ProcessStdio>, priority: RawContextPriority, custom_stack_size: Option<NonZero<usize>>, ) -> Self
Construct a new process spawn configuration from the given rust parameters.
§Safety
The given parameters must live as long as the returned value is alive, because currently this doesn’t have any lifetime bounds.
argv and envv may be reused to store their FFI representations,
even though nothing should change because the layout matches the rust representation, it is still not exactly guaranteed
but this should be resolved through this RFC