twizzler_rt_abi/
exec.rs

1use core::ffi::{c_char, CStr};
2
3use crate::{
4    bindings::{binding_info, descriptor, exec_flags, exec_spawn_args},
5    error::TwzError,
6    nk,
7};
8
9pub fn twz_rt_exec_spawn(
10    prog: &CStr,
11    args: *const *const c_char,
12    env: *const *const c_char,
13    fd_binds: &[binding_info],
14    flags: exec_flags,
15) -> Result<descriptor, TwzError> {
16    let spawn_args = exec_spawn_args {
17        prog: prog.as_ptr(),
18        args,
19        env,
20        fd_binds: fd_binds.as_ptr(),
21        fd_bind_count: fd_binds.len(),
22        flags,
23    };
24    unsafe { nk!(crate::bindings::twz_rt_exec_spawn(&spawn_args).into()) }
25}