X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flib%2Fuser%2Fsyscall.h;h=8a9e0c013e91a74bb87b318b7f2f3f094c341bd6;hb=6d19139b337fcb7c9b31e5b6724e6ae19499e4c5;hp=e10d39e1fd47e3e7997c78354bf6f6bfcce2d7e9;hpb=6916b246f3be8c72d6e77fd98c4a1447fd2c1de7;p=pintos-anon diff --git a/src/lib/user/syscall.h b/src/lib/user/syscall.h index e10d39e..8a9e0c0 100644 --- a/src/lib/user/syscall.h +++ b/src/lib/user/syscall.h @@ -4,17 +4,45 @@ #include #include +/* Process identifier. */ typedef int pid_t; +#define PID_ERROR ((pid_t) -1) +/* Map region identifier. */ +typedef int mapid_t; +#define MAP_FAILED ((mapid_t) -1) + +/* Maximum characters in a filename written by readdir(). */ +#define READDIR_MAX_LEN 14 + +/* Typical return values from main() and arguments to exit(). */ +#define EXIT_SUCCESS 0 /* Successful execution. */ +#define EXIT_FAILURE 1 /* Unsuccessful execution. */ + +/* Projects 2 and later. */ 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); +/* Project 3 and optionally project 4. */ +mapid_t mmap (int fd, void *addr); +void munmap (mapid_t); + +/* Project 4 only. */ +bool chdir (const char *dir); +bool mkdir (const char *dir); +bool readdir (int fd, char name[READDIR_MAX_LEN + 1]); +bool isdir (int fd); +int inumber (int fd); + #endif /* lib/user/syscall.h */