nc 0.9.8

Access system calls directly
Documentation
/// Load a new kernel for later execution.
pub unsafe fn kexec_file_load<P: AsRef<Path>>(
    kernel_fd: i32,
    initrd_fd: i32,
    cmdline: P,
    flags: u32,
) -> Result<(), Errno> {
    let kernel_fd = kernel_fd as usize;
    let initrd_fd = initrd_fd as usize;
    let cmdline_len = cmdline.as_ref().len();
    let cmdline = CString::new(cmdline.as_ref());
    let cmdline_ptr = cmdline.as_ptr() as usize;
    let flags = flags as usize;
    unsafe {
        syscall5(
            SYS_KEXEC_FILE_LOAD,
            kernel_fd,
            initrd_fd,
            cmdline_len,
            cmdline_ptr,
            flags,
        )
        .map(drop)
    }
}