ERRNO.java

package eu.javaexperience.nativ.posix;

/**
 * A {@link JUnix#errno()} által visszaadott lehetséges értékeket tartalmazza,
 * A hozzá tartozó leírással, számmal és szimbolummal.
 * */
public enum ERRNO
{

	EPERM(1,"Operation not permitted"),
	ENOENT(2,"No such file or directory"),
	ESRCH(       3  , "No such process"),
	EINTR (       4  , "Interrupted system call"),
	EIO    (  5  , "I/O error"),
	ENXIO  (      6  , "No such device or address"),
	E2BIG  (      7  , "Argument list too long"),
	ENOEXEC (     8  , "Exec format error"),
	EBADF   (     9  , "Bad file number"),
	ECHILD  (    10  , "No child processes"),
	EAGAIN  (    11  , "Try again"),
	ENOMEM  (    12  , "Out of memory"),
	EACCES  (    13  , "Permission denied"),
	EFAULT  (    14  , "Bad address"),
	ENOTBLK (    15  , "Block device required"),
	EBUSY   (    16  , "Device or resource busy"),
	EEXIST  (    17  , "File exists"),
	EXDEV   (    18  , "Cross-device link"),
	ENODEV  (    19  , "No such device"),
	ENOTDIR (    20  , "Not a directory"),
	EISDIR  (    21  , "Is a directory"),
	EINVAL  (    22  , "Invalid argument"),
	ENFILE  (    23  , "File table overflow"),
	EMFILE  (    24  , "Too many open files"),
	ENOTTY  (    25  , "Not a typewriter"),
	ETXTBSY  (   26  , "Text file busy"),
	EFBIG    (   27  , "File too large"),
	ENOSPC   (   28  , "No space left on device"),
	ESPIPE   (   29  , "Illegal seek"),
	EROFS    (   30  , "Read-only file system"),
	EMLINK   (   31  , "Too many links"),
	EPIPE    (   32  , "Broken pipe"),
	EDOM     (   33  , "Math argument out of domain of func"),
	ERANGE   (   34  , "Math result not representable"),
	
	EDEADLK  (   35  , "Resource deadlock would occur"),
	ENAMETOOLONG (   36  , "File name too long"),
	ENOLCK   (   37  , "No record locks available"),
	ENOSYS    (  38  , "Function not implemented"),
	ENOTEMPTY (  39  , "Directory not empty"),
	ELOOP     (  40  , "Too many symbolic links encountered"),
	EWOULDBLOCK( 11  , "Operation would block"),
	ENOMSG     ( 42  , "No message of desired type"),
	EIDRM      ( 43  , "Identifier removed"),
	ECHRNG     ( 44  , "Channel number out of range"),
	EL2NSYNC   ( 45  , "Level 2 not synchronized"),
	EL3HLT     ( 46  , "Level 3 halted"),
	EL3RST     ( 47  , "Level 3 reset"),
	ELNRNG     ( 48  , "Link number out of range"),
	EUNATCH    ( 49  , "Protocol driver not attached"),
	ENOCSI     ( 50  , "No CSI structure available"),
	EL2HLT     ( 51  , "Level 2 halted"),
	EBADE      ( 52  , "Invalid exchange"),
	EBADR      ( 53  , "Invalid request descriptor"),
	EXFULL     ( 54  , "Exchange full"),
	ENOANO     ( 55  , "No anode"),
	EBADRQC    ( 56  , "Invalid request code"),
	EBADSLT    ( 57  , "Invalid slot"),
	
	EDEADLOCK(   35  , "Resource deadlock would occur"),
	
	EBFONT    (  59  , "Bad font file format"),
	ENOSTR    (  60  , "Device not a stream"),
	ENODATA   (  61  , "No data available"),
	ETIME     (  62  , "Timer expired"),
	ENOSR     (  63  , "Out of streams resources"),
	ENONET    (  64  , "Machine is not on the network"),
	ENOPKG    (  65  , "Package not installed"),
	EREMOTE   (  66  , "Object is remote"),
	ENOLINK   (  67  , "Link has been severed"),
	EADV      (  68  , "Advertise error"),
	ESRMNT    (  69  , "Srmount error"),
	ECOMM     (  70  , "Communication error on send"),
	EPROTO    (  71  , "Protocol error"),
	EMULTIHOP (  72  , "Multihop attempted"),
	EDOTDOT   (  73  , "RFS specific error"),
	EBADMSG   (  74  , "Not a data message"),
	EOVERFLOW (  75  , "Value too large for defined data type"),
	ENOTUNIQ  (  76  , "Name not unique on network"),
	EBADFD    (  77  , "File descriptor in bad state"),
	EREMCHG   (  78  , "Remote address changed"),
	ELIBACC   (  79  , "Can not access a needed shared library"),
	ELIBBAD   (  80  , "Accessing a corrupted shared library"),
	ELIBSCN   (  81  , ".lib section in a.out corrupted"),
	ELIBMAX   (  82  , "Attempting to link in too many shared libraries"),
	ELIBEXEC  (  83  , "Cannot exec a shared library directly"),
	EILSEQ    (  84  , "Illegal byte sequence"),
	ERESTART  (  85  , "Interrupted system call should be restarted"),
	ESTRPIPE  (  86  , "Streams pipe error"),
	EUSERS    (  87  , "Too many users"),
	ENOTSOCK  (  88  , "Socket operation on non-socket"),
	EDESTADDRREQ(    89  , "Destination address required"),
	EMSGSIZE    (90  , "Message too long"),
	 EPROTOTYPE  (91  , "Protocol wrong type for socket"),
	 ENOPROTOOPT (92  , "Protocol not available"),
	EPROTONOSUPPORT( 93  , "Protocol not supported"),
	ESOCKTNOSUPPORT( 94  , "Socket type not supported"),
	EOPNOTSUPP ( 95  , "Operation not supported on transport endpoint"),
	EPFNOSUPPORT(    96  , "Protocol family not supported"),
	EAFNOSUPPORT (   97  , "Address family not supported by protocol"),
	EADDRINUSE ( 98  , "Address already in use"),
	EADDRNOTAVAIL (  99  , "Cannot assign requested address"),
	ENETDOWN   ( 100 , "Network is down"),
	ENETUNREACH( 101 , "Network is unreachable"),
	ENETRESET  ( 102 , "Network dropped connection because of reset"),
	ECONNABORTED(    103 , "Software caused connection abort"),
	ECONNRESET  (104 , "Connection reset by peer"),
	ENOBUFS     (105 , "No buffer space available"),
	EISCONN     (106 , "Transport endpoint is already connected"),
	ENOTCONN    (107 , "Transport endpoint is not connected"),
	ESHUTDOWN   (108 , "Cannot send after transport endpoint shutdown"),
	ETOOMANYREFS (   109 , "Too many references: cannot splice"),
	ETIMEDOUT  ( 110 , "Connection timed out"),
	ECONNREFUSED  (  111 , "Connection refused"),
	EHOSTDOWN  ( 112 , "Host is down"),
	EHOSTUNREACH  (  113 , "No route to host"),
	EALREADY   ( 114 , "Operation already in progress"),
	EINPROGRESS( 115 , "Operation now in progress"),
	ESTALE     ( 116 , "Stale NFS file handle"),
	EUCLEAN    ( 117 , "Structure needs cleaning"),
	ENOTNAM    ( 118 , "Not a XENIX named type file"),
	ENAVAIL    ( 119 , "No XENIX semaphores available"),
	EISNAM     ( 120 , "Is a named type file"),
	EREMOTEIO  ( 121 , "Remote I/O error"),
	EDQUOT     ( 122 , "Quota exceeded"),
	
	ENOMEDIUM  ( 123 , "No medium found"),
	EMEDIUMTYPE( 124 , "Wrong medium type"),
	ECANCELED  ( 125 , "Operation Canceled"),
	ENOKEY     ( 126 , "Required key not available"),
	EKEYEXPIRED( 127 , "Key has expired"),
	EKEYREVOKED( 128 , "Key has been revoked"),
	EKEYREJECTED (   129 , "Key was rejected by service"),
	
	EOWNERDEAD ( 130 , "Owner died"),
	ENOTRECOVERABLE( 131 , "State not recoverable");

		public final int value;
		public final String descripton;

	private ERRNO(int val,String desc)
	{
		value = val;
		descripton = desc;
	}

	public static String descriptionOfValue(int errno)
	{
		for(int i=0;i<ERRNO.values().length;i++)
			if(ERRNO.values()[i].value == errno)
				return ERRNO.values()[i].descripton;
		return "undefined";
	}
	
	public String toString()
	{
		return name()+"("+value+"): "+descripton;
	}
	
	public static ERRNO ERRNOOfValue(int errno)
	{
		for(int i=0;i<ERRNO.values().length;i++)
			if(ERRNO.values()[i].value == errno)
				return ERRNO.values()[i];
		
		return null;
	}
	
	public static void main(String[] args)
	{
		for(ERRNO e:ERRNO.values())
		{
			System.out.println("#define "+e.name()+" "+e.value);
		}
	}
	
}