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}