#ifndef __LIBS_UNISTD_H__ #define __LIBS_UNISTD_H__ #define T_SYSCALL 0x80 /* syscall number */ #define SYS_exit 1 #define SYS_fork 2 #define SYS_wait 3 #define SYS_exec 4 #define SYS_clone 5 #define SYS_yield 10 #define SYS_sleep 11 #define SYS_kill 12 #define SYS_gettime 17 #define SYS_getpid 18 #define SYS_mmap 20 #define SYS_munmap 21 #define SYS_shmem 22 #define SYS_putc 30 #define SYS_pgdir 31 #define SYS_open 100 #define SYS_close 101 #define SYS_read 102 #define SYS_write 103 #define SYS_seek 104 #define SYS_fstat 110 #define SYS_fsync 111 #define SYS_getcwd 121 #define SYS_getdirentry 128 #define SYS_dup 130 /* OLNY FOR LAB6 */ #define SYS_lab6_set_priority 255 /* SYS_fork flags */ #define CLONE_VM 0x00000100 // set if VM shared between processes #define CLONE_THREAD 0x00000200 // thread group #define CLONE_FS 0x00000800 // set if shared between processes /* VFS flags */ // flags for open: choose one of these #define O_RDONLY 0 // open for reading only #define O_WRONLY 1 // open for writing only #define O_RDWR 2 // open for reading and writing // then or in any of these: #define O_CREAT 0x00000004 // create file if it does not exist #define O_EXCL 0x00000008 // error if O_CREAT and the file exists #define O_TRUNC 0x00000010 // truncate file upon open #define O_APPEND 0x00000020 // append on each write // additonal related definition #define O_ACCMODE 3 // mask for O_RDONLY / O_WRONLY / O_RDWR #define NO_FD -0x9527 // invalid fd /* lseek codes */ #define LSEEK_SET 0 // seek relative to beginning of file #define LSEEK_CUR 1 // seek relative to current position in file #define LSEEK_END 2 // seek relative to end of file #define FS_MAX_DNAME_LEN 31 #define FS_MAX_FNAME_LEN 255 #define FS_MAX_FPATH_LEN 4095 #define EXEC_MAX_ARG_NUM 32 #define EXEC_MAX_ARG_LEN 4095 #endif /* !__LIBS_UNISTD_H__ */