00001 /* errno.h 00002 * Error codes for system calls. 00003 * 00004 * Do not modify the contents of this file. 00005 * 00006 * Try to use the most descriptive error number for the error. 00007 * You may find it helpful to see what errors equivalent UNIX 00008 * system calls return under various error conditions. 00009 * For example the man page for the write system call "man 2 write" 00010 * provides a list of different error number values for different 00011 * conditions. 00012 * NOTE: there are way more errors here than you should be supporting 00013 * and many more error conditions listed in man pages than 00014 * Nachos can possibly generate. The list here is to give you 00015 * some ideas and to hopefully standardize on some error numbers. 00016 * 00017 * ALSO NOTE: These definitions may not correspond to Solaris definitions 00018 * (for copyright reasons these are taken from Linux). 00019 */ 00020 00021 #ifndef ERRNO_H 00022 #define ERRNO_H 00023 00024 #include "copyright.h" 00025 00026 #define EPERM -1 /* Operation not permitted */ 00027 #define ENOENT -2 /* No such file or directory */ 00028 #define ESRCH -3 /* No such process */ 00029 #define EINTR -4 /* Interrupted system call */ 00030 #define EIO -5 /* I/O error */ 00031 #define ENXIO -6 /* No such device or address */ 00032 #define E2BIG -7 /* Arg list too long */ 00033 #define ENOEXEC -8 /* Exec format error */ 00034 #define EBADF -9 /* Bad file number */ 00035 #define ECHILD -10 /* No child processes */ 00036 #define EAGAIN -11 /* Try again */ 00037 #define ENOMEM -12 /* Out of memory */ 00038 #define EACCES -13 /* Permission denied */ 00039 #define EFAULT -14 /* Bad address */ 00040 #define ENOTBLK -15 /* Block device required */ 00041 #define EBUSY -16 /* Device or resource busy */ 00042 #define EEXIST -17 /* File exists */ 00043 #define EXDEV -18 /* Cross-device link */ 00044 #define ENODEV -19 /* No such device */ 00045 #define ENOTDIR -20 /* Not a directory */ 00046 #define EISDIR -21 /* Is a directory */ 00047 #define EINVAL -22 /* Invalid argument */ 00048 #define ENFILE -23 /* File table overflow */ 00049 #define EMFILE -24 /* Too many open files */ 00050 #define ENOTTY -25 /* Not a typewriter */ 00051 #define ETXTBSY -26 /* Text file busy */ 00052 #define EFBIG -27 /* File too large */ 00053 #define ENOSPC -28 /* No space left on device */ 00054 #define ESPIPE -29 /* Illegal seek */ 00055 #define EROFS -30 /* Read-only file system */ 00056 #define EMLINK -31 /* Too many links */ 00057 #define EPIPE -32 /* Broken pipe */ 00058 #define EDOM -33 /* Math argument out of domain of func */ 00059 #define ERANGE -34 /* Math result not representable */ 00060 #define EDEADLK -35 /* Resource deadlock would occur */ 00061 #define ENAMETOOLONG -36 /* File name too long */ 00062 #define ENOLCK -37 /* No record locks available */ 00063 #define ENOSYS -38 /* Function not implemented */ 00064 #define ENOTEMPTY -39 /* Directory not empty */ 00065 #define ELOOP -40 /* Too many symbolic links encountered */ 00066 #define EWOULDBLOCK EAGAIN /* Operation would block */ 00067 #define ENOMSG -42 /* No message of desired type */ 00068 #define EIDRM -43 /* Identifier removed */ 00069 #define ECHRNG -44 /* Channel number out of range */ 00070 #define EL2NSYNC -45 /* Level 2 not synchronized */ 00071 #define EL3HLT -46 /* Level 3 halted */ 00072 #define EL3RST -47 /* Level 3 reset */ 00073 #define ELNRNG -48 /* Link number out of range */ 00074 #define EUNATCH -49 /* Protocol driver not attached */ 00075 #define ENOCSI -50 /* No CSI structure available */ 00076 #define EL2HLT -51 /* Level 2 halted */ 00077 #define EBADE -52 /* Invalid exchange */ 00078 #define EBADR -53 /* Invalid request descriptor */ 00079 #define EXFULL -54 /* Exchange full */ 00080 #define ENOANO -55 /* No anode */ 00081 #define EBADRQC -56 /* Invalid request code */ 00082 #define EBADSLT -57 /* Invalid slot */ 00083 00084 #endif // ERRNO_H