Move problem 1-2 (join) into project 2 as the "wait" system call.
[pintos-anon] / src / lib / user / syscall.h
index 8dd88fb440f19abeda8544ac7611a3fd16ba2413..c2941087faa09de8dca3c6f434fbcf0f35aea99f 100644 (file)
@@ -1,20 +1,32 @@
-#ifndef LIB_USER_SYSCALL_H
-#define LIB_USER_SYSCALL_H 1
+#ifndef __LIB_USER_SYSCALL_H
+#define __LIB_USER_SYSCALL_H
 
 #include <stdbool.h>
 #include <debug.h>
 
 typedef int pid_t;
+#define PID_ERROR ((pid_t) -1)
+
+typedef int mapid_t;
+#define MAP_FAILED ((mapid_t) -1)
 
 void halt (void) NO_RETURN;
 void exit (int status) NO_RETURN;
-pid_t exec (const char *);
-int join (pid_t);
-bool create (const char *);
-bool remove (const char *);
-int open (const char *);
-int read (int fd, void *, unsigned);
-int write (int fd, const void *, unsigned);
+pid_t exec (const char *file);
+int wait (pid_t);
+bool create (const char *file, unsigned initial_size);
+bool remove (const char *file);
+int open (const char *file);
+int filesize (int fd);
+int read (int fd, void *buffer, unsigned length);
+int write (int fd, const void *buffer, unsigned length);
+void seek (int fd, unsigned position);
+unsigned tell (int fd);
 void close (int fd);
+mapid_t mmap (int fd, void *addr);
+bool munmap (mapid_t);
+bool chdir (const char *dir);
+bool mkdir (const char *dir);
+void lsdir (void);
 
 #endif /* lib/user/syscall.h */