return ros_syscall(SYS_serial_read, buf, len, 0, 0, 0);
}
-//Run a binary loaded at the specificed address with the specified arguments
-ssize_t sys_run_binary(void* binary_buf, size_t len,
- const procinfo_t* pi, size_t num_colors)
-{
- return ros_syscall(SYS_run_binary, binary_buf, len,
- pi,num_colors,0);
-}
-
//Write a buffer over ethernet
ssize_t sys_eth_write(void* buf, size_t len)
{
ros_syscall(SYS_yield, being_nice, 0, 0, 0, 0);
}
-int sys_proc_create(char* path)
+int sys_proc_create(char *path, size_t path_l, char *argv[], char *envp[])
{
- return ros_syscall(SYS_proc_create, (uintreg_t)path, 0, 0, 0, 0);
+ struct procinfo pi;
+ if (procinfo_pack_args(&pi, argv, envp)) {
+ errno = ENOMEM;
+ return -1;
+ }
+ return ros_syscall(SYS_proc_create, path, path_l, &pi, 0, 0);
}
int sys_proc_run(int pid)