diff --git a/src/userprog/syscall.c b/src/userprog/syscall.c index cf353cc..98c9dd4 100644 --- a/src/userprog/syscall.c +++ b/src/userprog/syscall.c @@ -116,10 +116,15 @@ syscall_exit (int status) } static pid_t -syscall_exec (const char *cmd_line UNUSED) +syscall_exec (const char *cmd_line) { - //TODO - return 0; + validate_user_pointer (cmd_line, 1); + + lock_acquire (&filesys_lock); + pid_t pid = process_execute(cmd_line); + lock_release (&filesys_lock); + + return pid; } static int