forked from Bananymous/banan-os
				
			LibC: define all errnos and strerror{name,desk}_np
This commit is contained in:
		
							parent
							
								
									7c6bf40d0d
								
							
						
					
					
						commit
						508d6311de
					
				| 
						 | 
					@ -2,22 +2,89 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <sys/cdefs.h>
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ENOMEM 1
 | 
					#define E2BIG			1
 | 
				
			||||||
#define EINVAL 2
 | 
					#define EACCES			2
 | 
				
			||||||
#define ENOTDIR 3
 | 
					#define EADDRINUSE		3
 | 
				
			||||||
#define EISDIR 4
 | 
					#define EADDRNOTAVAIL	4
 | 
				
			||||||
#define ENOENT 5
 | 
					#define EAFNOSUPPORT	5
 | 
				
			||||||
#define EIO 6
 | 
					#define EAGAIN			6
 | 
				
			||||||
#define ENOTSUP 7
 | 
					#define EALREADY		7
 | 
				
			||||||
#define EBADF			8
 | 
					#define EBADF			8
 | 
				
			||||||
#define EEXISTS 9
 | 
					#define EBADMSG			9
 | 
				
			||||||
#define ENOTEMPTY 10
 | 
					#define EBUSY			10
 | 
				
			||||||
#define ENAMETOOLONG 11
 | 
					#define ECANCELED		11
 | 
				
			||||||
#define ENOBUFS 12
 | 
					#define ECHILD			12
 | 
				
			||||||
#define ENOTTY 13
 | 
					#define ECONNABORTED	13
 | 
				
			||||||
#define ENOTBLK 14
 | 
					#define ECONNREFUSED	14
 | 
				
			||||||
#define EMFILE 15
 | 
					#define ECONNRESET		15
 | 
				
			||||||
#define ENOSYS 16
 | 
					#define EDEADLK			16
 | 
				
			||||||
 | 
					#define EDESTADDRREQ	17
 | 
				
			||||||
 | 
					#define EDOM			18
 | 
				
			||||||
 | 
					#define EDQUOT			19
 | 
				
			||||||
 | 
					#define EEXIST			20
 | 
				
			||||||
 | 
					#define EFAULT			21
 | 
				
			||||||
 | 
					#define EFBIG			22
 | 
				
			||||||
 | 
					#define EHOSTUNREACH	23
 | 
				
			||||||
 | 
					#define EIDRM			24
 | 
				
			||||||
 | 
					#define EILSEQ			25
 | 
				
			||||||
 | 
					#define EINPROGRESS		26
 | 
				
			||||||
 | 
					#define EINTR			27
 | 
				
			||||||
 | 
					#define EINVAL			28
 | 
				
			||||||
 | 
					#define EIO				29
 | 
				
			||||||
 | 
					#define EISCONN			30
 | 
				
			||||||
 | 
					#define EISDIR			31
 | 
				
			||||||
 | 
					#define ELOOP			32
 | 
				
			||||||
 | 
					#define EMFILE			33
 | 
				
			||||||
 | 
					#define EMLINK			34
 | 
				
			||||||
 | 
					#define EMSGSIZE		35
 | 
				
			||||||
 | 
					#define EMULTIHOP		36
 | 
				
			||||||
 | 
					#define ENAMETOOLONG	37
 | 
				
			||||||
 | 
					#define ENETDOWN		38
 | 
				
			||||||
 | 
					#define ENETRESET		39
 | 
				
			||||||
 | 
					#define ENETUNREACH		40
 | 
				
			||||||
 | 
					#define ENFILE			41
 | 
				
			||||||
 | 
					#define ENOBUFS			42
 | 
				
			||||||
 | 
					#define ENODATA			43
 | 
				
			||||||
 | 
					#define ENODEV			44
 | 
				
			||||||
 | 
					#define ENOENT			45
 | 
				
			||||||
 | 
					#define ENOEXEC			46
 | 
				
			||||||
 | 
					#define ENOLCK			47
 | 
				
			||||||
 | 
					#define ENOLINK			48
 | 
				
			||||||
 | 
					#define ENOMEM			49
 | 
				
			||||||
 | 
					#define ENOMSG			50
 | 
				
			||||||
 | 
					#define ENOPROTOOPT		51
 | 
				
			||||||
 | 
					#define ENOSPC			52
 | 
				
			||||||
 | 
					#define ENOSR			53
 | 
				
			||||||
 | 
					#define ENOSTR			54
 | 
				
			||||||
 | 
					#define ENOSYS			55
 | 
				
			||||||
 | 
					#define ENOTCONN		56
 | 
				
			||||||
 | 
					#define ENOTDIR			57
 | 
				
			||||||
 | 
					#define ENOTEMPTY		58
 | 
				
			||||||
 | 
					#define ENOTRECOVERABLE	59
 | 
				
			||||||
 | 
					#define ENOTSOCK		60
 | 
				
			||||||
 | 
					#define ENOTSUP			61
 | 
				
			||||||
 | 
					#define ENOTTY			62
 | 
				
			||||||
 | 
					#define ENXIO			63
 | 
				
			||||||
 | 
					#define EOPNOTSUPP		64
 | 
				
			||||||
 | 
					#define EOVERFLOW		65
 | 
				
			||||||
 | 
					#define EOWNERDEAD		66
 | 
				
			||||||
 | 
					#define EPERM			67
 | 
				
			||||||
 | 
					#define EPIPE			68
 | 
				
			||||||
 | 
					#define EPROTO			69
 | 
				
			||||||
 | 
					#define EPROTONOSUPPORT	70
 | 
				
			||||||
 | 
					#define EPROTOTYPE		71
 | 
				
			||||||
 | 
					#define ERANGE			72
 | 
				
			||||||
 | 
					#define EROFS			73
 | 
				
			||||||
 | 
					#define ESPIPE			74
 | 
				
			||||||
 | 
					#define ESRCH			75
 | 
				
			||||||
 | 
					#define ESTALE			76
 | 
				
			||||||
 | 
					#define ETIME			77
 | 
				
			||||||
 | 
					#define ETIMEDOUT		78
 | 
				
			||||||
 | 
					#define ETXTBSY			79
 | 
				
			||||||
 | 
					#define EWOULDBLOCK		80
 | 
				
			||||||
 | 
					#define EXDEV			81
 | 
				
			||||||
 | 
					#define EEXISTS			82
 | 
				
			||||||
 | 
					#define ENOTBLK			83
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define errno errno
 | 
					#define errno errno
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										188
									
								
								libc/string.cpp
								
								
								
								
							
							
						
						
									
										188
									
								
								libc/string.cpp
								
								
								
								
							| 
						 | 
					@ -90,22 +90,89 @@ const char* strerrorname_np(int error)
 | 
				
			||||||
	switch (error)
 | 
						switch (error)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		case 0:					return "NOERROR";
 | 
							case 0:					return "NOERROR";
 | 
				
			||||||
		case ENOMEM:		return "ENOMEM";
 | 
							case E2BIG:				return "E2BIG";
 | 
				
			||||||
		case EINVAL:		return "EINVAL";
 | 
							case EACCES:			return "EACCES";
 | 
				
			||||||
		case EISDIR:		return "EISDIR";
 | 
							case EADDRINUSE:		return "EADDRINUSE";
 | 
				
			||||||
		case ENOTDIR:		return "ENOTDIR";
 | 
							case EADDRNOTAVAIL:		return "EADDRNOTAVAIL";
 | 
				
			||||||
		case ENOENT:		return "ENOENT";
 | 
							case EAFNOSUPPORT:		return "EAFNOSUPPORT";
 | 
				
			||||||
		case EIO:			return "EIO";
 | 
							case EAGAIN:			return "EAGAIN";
 | 
				
			||||||
		case ENOTSUP:		return "ENOTSUP";
 | 
							case EALREADY:			return "EALREADY";
 | 
				
			||||||
		case EBADF:				return "EBADF";
 | 
							case EBADF:				return "EBADF";
 | 
				
			||||||
		case EEXISTS:		return "EEXISTS";
 | 
							case EBADMSG:			return "EBADMSG";
 | 
				
			||||||
		case ENOTEMPTY:		return "ENOTEMPTY";
 | 
							case EBUSY:				return "EBUSY";
 | 
				
			||||||
		case ENAMETOOLONG:	return "ENAMETOOLONG";
 | 
							case ECANCELED:			return "ECANCELED";
 | 
				
			||||||
		case ENOBUFS:		return "ENOBUFS";
 | 
							case ECHILD:			return "ECHILD";
 | 
				
			||||||
		case ENOTTY:		return "ENOTTY";
 | 
							case ECONNABORTED:		return "ECONNABORTED";
 | 
				
			||||||
		case ENOTBLK:		return "ENOTBLK";
 | 
							case ECONNREFUSED:		return "ECONNREFUSED";
 | 
				
			||||||
 | 
							case ECONNRESET:		return "ECONNRESET";
 | 
				
			||||||
 | 
							case EDEADLK:			return "EDEADLK";
 | 
				
			||||||
 | 
							case EDESTADDRREQ:		return "EDESTADDRREQ";
 | 
				
			||||||
 | 
							case EDOM:				return "EDOM";
 | 
				
			||||||
 | 
							case EDQUOT:			return "EDQUOT";
 | 
				
			||||||
 | 
							case EEXIST:			return "EEXIST";
 | 
				
			||||||
 | 
							case EFAULT:			return "EFAULT";
 | 
				
			||||||
 | 
							case EFBIG:				return "EFBIG";
 | 
				
			||||||
 | 
							case EHOSTUNREACH:		return "EHOSTUNREACH";
 | 
				
			||||||
 | 
							case EIDRM:				return "EIDRM";
 | 
				
			||||||
 | 
							case EILSEQ:			return "EILSEQ";
 | 
				
			||||||
 | 
							case EINPROGRESS:		return "EINPROGRESS";
 | 
				
			||||||
 | 
							case EINTR:				return "EINTR";
 | 
				
			||||||
 | 
							case EINVAL:			return "EINVAL";
 | 
				
			||||||
 | 
							case EIO:				return "EIO";
 | 
				
			||||||
 | 
							case EISCONN:			return "EISCONN";
 | 
				
			||||||
 | 
							case EISDIR:			return "EISDIR";
 | 
				
			||||||
 | 
							case ELOOP:				return "ELOOP";
 | 
				
			||||||
		case EMFILE:			return "EMFILE";
 | 
							case EMFILE:			return "EMFILE";
 | 
				
			||||||
 | 
							case EMLINK:			return "EMLINK";
 | 
				
			||||||
 | 
							case EMSGSIZE:			return "EMSGSIZE";
 | 
				
			||||||
 | 
							case EMULTIHOP:			return "EMULTIHOP";
 | 
				
			||||||
 | 
							case ENAMETOOLONG:		return "ENAMETOOLONG";
 | 
				
			||||||
 | 
							case ENETDOWN:			return "ENETDOWN";
 | 
				
			||||||
 | 
							case ENETRESET:			return "ENETRESET";
 | 
				
			||||||
 | 
							case ENETUNREACH:		return "ENETUNREACH";
 | 
				
			||||||
 | 
							case ENFILE:			return "ENFILE";
 | 
				
			||||||
 | 
							case ENOBUFS:			return "ENOBUFS";
 | 
				
			||||||
 | 
							case ENODATA:			return "ENODATA";
 | 
				
			||||||
 | 
							case ENODEV:			return "ENODEV";
 | 
				
			||||||
 | 
							case ENOENT:			return "ENOENT";
 | 
				
			||||||
 | 
							case ENOEXEC:			return "ENOEXEC";
 | 
				
			||||||
 | 
							case ENOLCK:			return "ENOLCK";
 | 
				
			||||||
 | 
							case ENOLINK:			return "ENOLINK";
 | 
				
			||||||
 | 
							case ENOMEM:			return "ENOMEM";
 | 
				
			||||||
 | 
							case ENOMSG:			return "ENOMSG";
 | 
				
			||||||
 | 
							case ENOPROTOOPT:		return "ENOPROTOOPT";
 | 
				
			||||||
 | 
							case ENOSPC:			return "ENOSPC";
 | 
				
			||||||
 | 
							case ENOSR:				return "ENOSR";
 | 
				
			||||||
 | 
							case ENOSTR:			return "ENOSTR";
 | 
				
			||||||
		case ENOSYS:			return "ENOSYS";
 | 
							case ENOSYS:			return "ENOSYS";
 | 
				
			||||||
 | 
							case ENOTCONN:			return "ENOTCONN";
 | 
				
			||||||
 | 
							case ENOTDIR:			return "ENOTDIR";
 | 
				
			||||||
 | 
							case ENOTEMPTY:			return "ENOTEMPTY";
 | 
				
			||||||
 | 
							case ENOTRECOVERABLE:	return "ENOTRECOVERABLE";
 | 
				
			||||||
 | 
							case ENOTSOCK:			return "ENOTSOCK";
 | 
				
			||||||
 | 
							case ENOTSUP:			return "ENOTSUP";
 | 
				
			||||||
 | 
							case ENOTTY:			return "ENOTTY";
 | 
				
			||||||
 | 
							case ENXIO:				return "ENXIO";
 | 
				
			||||||
 | 
							case EOPNOTSUPP:		return "EOPNOTSUPP";
 | 
				
			||||||
 | 
							case EOVERFLOW:			return "EOVERFLOW";
 | 
				
			||||||
 | 
							case EOWNERDEAD:		return "EOWNERDEAD";
 | 
				
			||||||
 | 
							case EPERM:				return "EPERM";
 | 
				
			||||||
 | 
							case EPIPE:				return "EPIPE";
 | 
				
			||||||
 | 
							case EPROTO:			return "EPROTO";
 | 
				
			||||||
 | 
							case EPROTONOSUPPORT:	return "EPROTONOSUPPORT";
 | 
				
			||||||
 | 
							case EPROTOTYPE:		return "EPROTOTYPE";
 | 
				
			||||||
 | 
							case ERANGE:			return "ERANGE";
 | 
				
			||||||
 | 
							case EROFS:				return "EROFS";
 | 
				
			||||||
 | 
							case ESPIPE:			return "ESPIPE";
 | 
				
			||||||
 | 
							case ESRCH:				return "ESRCH";
 | 
				
			||||||
 | 
							case ESTALE:			return "ESTALE";
 | 
				
			||||||
 | 
							case ETIME:				return "ETIME";
 | 
				
			||||||
 | 
							case ETIMEDOUT:			return "ETIMEDOUT";
 | 
				
			||||||
 | 
							case ETXTBSY:			return "ETXTBSY";
 | 
				
			||||||
 | 
							case EWOULDBLOCK:		return "EWOULDBLOCK";
 | 
				
			||||||
 | 
							case EXDEV:				return "EXDEV";
 | 
				
			||||||
 | 
							case EEXISTS:			return "EEXISTS";
 | 
				
			||||||
 | 
							case ENOTBLK:			return "ENOTBLK";
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	errno = EINVAL;
 | 
						errno = EINVAL;
 | 
				
			||||||
| 
						 | 
					@ -117,22 +184,89 @@ const char* strerrordesc_np(int error)
 | 
				
			||||||
	switch (error)
 | 
						switch (error)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		case 0:					return "Success";
 | 
							case 0:					return "Success";
 | 
				
			||||||
		case ENOMEM:		return "Cannot allocate memory";
 | 
							case E2BIG:				return "Argument list too long.";
 | 
				
			||||||
		case EINVAL:		return "Invalid argument";
 | 
							case EACCES:			return "Permission denied.";
 | 
				
			||||||
		case EISDIR:		return "Is a directory";
 | 
							case EADDRINUSE:		return "Address in use.";
 | 
				
			||||||
		case ENOTDIR:		return "Not a directory";
 | 
							case EADDRNOTAVAIL:		return "Address not available.";
 | 
				
			||||||
		case ENOENT:		return "No such file or directory";
 | 
							case EAFNOSUPPORT:		return "Address family not supported.";
 | 
				
			||||||
		case EIO:			return "Input/output error";
 | 
							case EAGAIN:			return "Resource unavailable, try again.";
 | 
				
			||||||
		case ENOTSUP:		return "Operation not supported";
 | 
							case EALREADY:			return "Connection already in progress.";
 | 
				
			||||||
		case EBADF:			return "Bad file descriptor";
 | 
							case EBADF:				return "Bad file descriptor.";
 | 
				
			||||||
 | 
							case EBADMSG:			return "Bad message.";
 | 
				
			||||||
 | 
							case EBUSY:				return "Device or resource busy.";
 | 
				
			||||||
 | 
							case ECANCELED:			return "Operation canceled.";
 | 
				
			||||||
 | 
							case ECHILD:			return "No child processes.";
 | 
				
			||||||
 | 
							case ECONNABORTED:		return "Connection aborted.";
 | 
				
			||||||
 | 
							case ECONNREFUSED:		return "Connection refused.";
 | 
				
			||||||
 | 
							case ECONNRESET:		return "Connection reset.";
 | 
				
			||||||
 | 
							case EDEADLK:			return "Resource deadlock would occur.";
 | 
				
			||||||
 | 
							case EDESTADDRREQ:		return "Destination address required.";
 | 
				
			||||||
 | 
							case EDOM:				return "Mathematics argument out of domain of function.";
 | 
				
			||||||
 | 
							case EDQUOT:			return "Reserved.";
 | 
				
			||||||
 | 
							case EEXIST:			return "File exists.";
 | 
				
			||||||
 | 
							case EFAULT:			return "Bad address.";
 | 
				
			||||||
 | 
							case EFBIG:				return "File too large.";
 | 
				
			||||||
 | 
							case EHOSTUNREACH:		return "Host is unreachable.";
 | 
				
			||||||
 | 
							case EIDRM:				return "Identifier removed.";
 | 
				
			||||||
 | 
							case EILSEQ:			return "Illegal byte sequence.";
 | 
				
			||||||
 | 
							case EINPROGRESS:		return "Operation in progress.";
 | 
				
			||||||
 | 
							case EINTR:				return "Interrupted function.";
 | 
				
			||||||
 | 
							case EINVAL:			return "Invalid argument.";
 | 
				
			||||||
 | 
							case EIO:				return "I/O error.";
 | 
				
			||||||
 | 
							case EISCONN:			return "Socket is connected.";
 | 
				
			||||||
 | 
							case EISDIR:			return "Is a directory.";
 | 
				
			||||||
 | 
							case ELOOP:				return "Too many levels of symbolic links.";
 | 
				
			||||||
 | 
							case EMFILE:			return "File descriptor value too large.";
 | 
				
			||||||
 | 
							case EMLINK:			return "Too many links.";
 | 
				
			||||||
 | 
							case EMSGSIZE:			return "Message too large.";
 | 
				
			||||||
 | 
							case EMULTIHOP:			return "Reserved.";
 | 
				
			||||||
 | 
							case ENAMETOOLONG:		return "Filename too long.";
 | 
				
			||||||
 | 
							case ENETDOWN:			return "Network is down.";
 | 
				
			||||||
 | 
							case ENETRESET:			return "Connection aborted by network.";
 | 
				
			||||||
 | 
							case ENETUNREACH:		return "Network unreachable.";
 | 
				
			||||||
 | 
							case ENFILE:			return "Too many files open in system.";
 | 
				
			||||||
 | 
							case ENOBUFS:			return "No buffer space available.";
 | 
				
			||||||
 | 
							case ENODATA:			return "No message is available on the STREAM head read queue.";
 | 
				
			||||||
 | 
							case ENODEV:			return "No such device.";
 | 
				
			||||||
 | 
							case ENOENT:			return "No such file or directory.";
 | 
				
			||||||
 | 
							case ENOEXEC:			return "Executable file format error.";
 | 
				
			||||||
 | 
							case ENOLCK:			return "No locks available.";
 | 
				
			||||||
 | 
							case ENOLINK:			return "Reserved.";
 | 
				
			||||||
 | 
							case ENOMEM:			return "Not enough space.";
 | 
				
			||||||
 | 
							case ENOMSG:			return "No message of the desired type.";
 | 
				
			||||||
 | 
							case ENOPROTOOPT:		return "Protocol not available.";
 | 
				
			||||||
 | 
							case ENOSPC:			return "No space left on device.";
 | 
				
			||||||
 | 
							case ENOSR:				return "No STREAM resources.";
 | 
				
			||||||
 | 
							case ENOSTR:			return "Not a STREAM.";
 | 
				
			||||||
 | 
							case ENOSYS:			return "Functionality not supported.";
 | 
				
			||||||
 | 
							case ENOTCONN:			return "The socket is not connected.";
 | 
				
			||||||
 | 
							case ENOTDIR:			return "Not a directory or a symbolic link to a directory.";
 | 
				
			||||||
 | 
							case ENOTEMPTY:			return "Directory not empty.";
 | 
				
			||||||
 | 
							case ENOTRECOVERABLE:	return "State not recoverable.";
 | 
				
			||||||
 | 
							case ENOTSOCK:			return "Not a socket.";
 | 
				
			||||||
 | 
							case ENOTSUP:			return "Not supported.";
 | 
				
			||||||
 | 
							case ENOTTY:			return "Inappropriate I/O control operation.";
 | 
				
			||||||
 | 
							case ENXIO:				return "No such device or address.";
 | 
				
			||||||
 | 
							case EOPNOTSUPP:		return "Operation not supported on socket .";
 | 
				
			||||||
 | 
							case EOVERFLOW:			return "Value too large to be stored in data type.";
 | 
				
			||||||
 | 
							case EOWNERDEAD:		return "Previous owner died.";
 | 
				
			||||||
 | 
							case EPERM:				return "Operation not permitted.";
 | 
				
			||||||
 | 
							case EPIPE:				return "Broken pipe.";
 | 
				
			||||||
 | 
							case EPROTO:			return "Protocol error.";
 | 
				
			||||||
 | 
							case EPROTONOSUPPORT:	return "Protocol not supported.";
 | 
				
			||||||
 | 
							case EPROTOTYPE:		return "Protocol wrong type for socket.";
 | 
				
			||||||
 | 
							case ERANGE:			return "Result too large.";
 | 
				
			||||||
 | 
							case EROFS:				return "Read-only file system.";
 | 
				
			||||||
 | 
							case ESPIPE:			return "Invalid seek.";
 | 
				
			||||||
 | 
							case ESRCH:				return "No such process.";
 | 
				
			||||||
 | 
							case ESTALE:			return "Reserved.";
 | 
				
			||||||
 | 
							case ETIME:				return "Stream ioctl() timeout.";
 | 
				
			||||||
 | 
							case ETIMEDOUT:			return "Connection timed out.";
 | 
				
			||||||
 | 
							case ETXTBSY:			return "Text file busy.";
 | 
				
			||||||
 | 
							case EWOULDBLOCK:		return "Operation would block.";
 | 
				
			||||||
 | 
							case EXDEV:				return "Cross-device link.";
 | 
				
			||||||
		case EEXISTS:			return "File exists";
 | 
							case EEXISTS:			return "File exists";
 | 
				
			||||||
		case ENOTEMPTY:		return "Directory not empty";
 | 
					 | 
				
			||||||
		case ENAMETOOLONG:	return "Filename too long";
 | 
					 | 
				
			||||||
		case ENOBUFS:		return "No buffer space available";
 | 
					 | 
				
			||||||
		case ENOTTY:		return "Inappropriate I/O control operation";
 | 
					 | 
				
			||||||
		case ENOTBLK:			return "Block device required";
 | 
							case ENOTBLK:			return "Block device required";
 | 
				
			||||||
		case EMFILE:		return "File descriptor value too large";
 | 
					 | 
				
			||||||
		case ENOSYS:		return "Function not implemented";
 | 
					 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	errno = EINVAL;
 | 
						errno = EINVAL;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue