Added ability to load an arbitrary binary from an ethernet server and launch it
[akaros.git] / user / parlib / src / syscall.c
index c4f643b..e0f6c5b 100644 (file)
@@ -35,7 +35,8 @@ static intreg_t syscall_trap(uint16_t num, intreg_t a1,
                              intreg_t a2, intreg_t a3,
                              intreg_t a4, intreg_t a5)
 {
-       debug("duh!\n");
+       intreg_t ret;
+       
        // Generic system call: pass system call number in AX,
        // up to five parameters in DX, CX, BX, DI, SI.
        // Interrupt kernel with T_SYSCALL.
@@ -111,6 +112,12 @@ ssize_t sys_serial_read(void* buf, size_t len)
        return syscall(SYS_serial_read, (intreg_t)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, void* arg, size_t len) 
+{
+       return syscall(SYS_run_binary, (intreg_t)binary_buf, (intreg_t)arg, len, 0, 0);
+}
+
 //Write a buffer over ethernet
 ssize_t sys_eth_write(void* buf, size_t len) 
 {