mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 16:52:43 +00:00 
			
		
		
		
	Kernel+LibC: Move errno definitions to Kernel/API/POSIX
This fixes at least half of our LibC includes in the kernel. The source of truth for errno codes and their description strings now lives in Kernel/API/POSIX/errno.h as an enumeration, which LibC includes.
This commit is contained in:
		
							parent
							
								
									0cca6cef95
								
							
						
					
					
						commit
						69ef211925
					
				
					 23 changed files with 123 additions and 183 deletions
				
			
		|  | @ -12,7 +12,7 @@ | ||||||
| #include <AK/Variant.h> | #include <AK/Variant.h> | ||||||
| 
 | 
 | ||||||
| #if defined(__serenity__) && defined(KERNEL) | #if defined(__serenity__) && defined(KERNEL) | ||||||
| #    include <LibC/errno_numbers.h> | #    include <LibC/errno_codes.h> | ||||||
| #else | #else | ||||||
| #    include <errno.h> | #    include <errno.h> | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
							
								
								
									
										97
									
								
								Kernel/API/POSIX/errno.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								Kernel/API/POSIX/errno.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,97 @@ | ||||||
|  | /*
 | ||||||
|  |  * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> | ||||||
|  |  * Copyright (c) 2021, sin-ack <sin-ack@protonmail.com> | ||||||
|  |  * | ||||||
|  |  * SPDX-License-Identifier: BSD-2-Clause | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | #pragma once | ||||||
|  | 
 | ||||||
|  | #define ENUMERATE_ERRNO_CODES(E)                                      \ | ||||||
|  |     E(ESUCCESS, "Success (not an error)")                             \ | ||||||
|  |     E(EPERM, "Operation not permitted")                               \ | ||||||
|  |     E(ENOENT, "No such file or directory")                            \ | ||||||
|  |     E(ESRCH, "No such process")                                       \ | ||||||
|  |     E(EINTR, "Interrupted syscall")                                   \ | ||||||
|  |     E(EIO, "I/O error")                                               \ | ||||||
|  |     E(ENXIO, "No such device or address")                             \ | ||||||
|  |     E(E2BIG, "Argument list too long")                                \ | ||||||
|  |     E(ENOEXEC, "Exec format error")                                   \ | ||||||
|  |     E(EBADF, "Bad fd number")                                         \ | ||||||
|  |     E(ECHILD, "No child processes")                                   \ | ||||||
|  |     E(EAGAIN, "Try again")                                            \ | ||||||
|  |     E(ENOMEM, "Out of memory")                                        \ | ||||||
|  |     E(EACCES, "Permission denied")                                    \ | ||||||
|  |     E(EFAULT, "Bad address")                                          \ | ||||||
|  |     E(ENOTBLK, "Block device required")                               \ | ||||||
|  |     E(EBUSY, "Device or resource busy")                               \ | ||||||
|  |     E(EEXIST, "File already exists")                                  \ | ||||||
|  |     E(EXDEV, "Cross-device link")                                     \ | ||||||
|  |     E(ENODEV, "No such device")                                       \ | ||||||
|  |     E(ENOTDIR, "Not a directory")                                     \ | ||||||
|  |     E(EISDIR, "Is a directory")                                       \ | ||||||
|  |     E(EINVAL, "Invalid argument")                                     \ | ||||||
|  |     E(ENFILE, "File table overflow")                                  \ | ||||||
|  |     E(EMFILE, "Too many open files")                                  \ | ||||||
|  |     E(ENOTTY, "Not a TTY")                                            \ | ||||||
|  |     E(ETXTBSY, "Text file busy")                                      \ | ||||||
|  |     E(EFBIG, "File too large")                                        \ | ||||||
|  |     E(ENOSPC, "No space left on device")                              \ | ||||||
|  |     E(ESPIPE, "Illegal seek")                                         \ | ||||||
|  |     E(EROFS, "Read-only filesystem")                                  \ | ||||||
|  |     E(EMLINK, "Too many links")                                       \ | ||||||
|  |     E(EPIPE, "Broken pipe")                                           \ | ||||||
|  |     E(ERANGE, "Range error")                                          \ | ||||||
|  |     E(ENAMETOOLONG, "Name too long")                                  \ | ||||||
|  |     E(ELOOP, "Too many symlinks")                                     \ | ||||||
|  |     E(EOVERFLOW, "Overflow")                                          \ | ||||||
|  |     E(EOPNOTSUPP, "Operation not supported")                          \ | ||||||
|  |     E(ENOSYS, "No such syscall")                                      \ | ||||||
|  |     E(ENOTIMPL, "Not implemented")                                    \ | ||||||
|  |     E(EAFNOSUPPORT, "Address family not supported")                   \ | ||||||
|  |     E(ENOTSOCK, "Not a socket")                                       \ | ||||||
|  |     E(EADDRINUSE, "Address in use")                                   \ | ||||||
|  |     E(EWHYTHO, "Failed without setting an error code (bug!)")         \ | ||||||
|  |     E(ENOTEMPTY, "Directory not empty")                               \ | ||||||
|  |     E(EDOM, "Math argument out of domain")                            \ | ||||||
|  |     E(ECONNREFUSED, "Connection refused")                             \ | ||||||
|  |     E(EHOSTDOWN, "Host is down")                                      \ | ||||||
|  |     E(EADDRNOTAVAIL, "Address not available")                         \ | ||||||
|  |     E(EISCONN, "Already connected")                                   \ | ||||||
|  |     E(ECONNABORTED, "Connection aborted")                             \ | ||||||
|  |     E(EALREADY, "Connection already in progress")                     \ | ||||||
|  |     E(ECONNRESET, "Connection reset")                                 \ | ||||||
|  |     E(EDESTADDRREQ, "Destination address required")                   \ | ||||||
|  |     E(EHOSTUNREACH, "Host unreachable")                               \ | ||||||
|  |     E(EILSEQ, "Illegal byte sequence")                                \ | ||||||
|  |     E(EMSGSIZE, "Message size")                                       \ | ||||||
|  |     E(ENETDOWN, "Network down")                                       \ | ||||||
|  |     E(ENETUNREACH, "Network unreachable")                             \ | ||||||
|  |     E(ENETRESET, "Network reset")                                     \ | ||||||
|  |     E(ENOBUFS, "No buffer space")                                     \ | ||||||
|  |     E(ENOLCK, "No lock available")                                    \ | ||||||
|  |     E(ENOMSG, "No message")                                           \ | ||||||
|  |     E(ENOPROTOOPT, "No protocol option")                              \ | ||||||
|  |     E(ENOTCONN, "Not connected")                                      \ | ||||||
|  |     E(ESHUTDOWN, "Transport endpoint has shutdown")                   \ | ||||||
|  |     E(ETOOMANYREFS, "Too many references")                            \ | ||||||
|  |     E(ESOCKTNOSUPPORT, "Socket type not supported")                   \ | ||||||
|  |     E(EPROTONOSUPPORT, "Protocol not supported")                      \ | ||||||
|  |     E(EDEADLK, "Resource deadlock would occur")                       \ | ||||||
|  |     E(ETIMEDOUT, "Timed out")                                         \ | ||||||
|  |     E(EPROTOTYPE, "Wrong protocol type")                              \ | ||||||
|  |     E(EINPROGRESS, "Operation in progress")                           \ | ||||||
|  |     E(ENOTHREAD, "No such thread")                                    \ | ||||||
|  |     E(EPROTO, "Protocol error")                                       \ | ||||||
|  |     E(ENOTSUP, "Not supported")                                       \ | ||||||
|  |     E(EPFNOSUPPORT, "Protocol family not supported")                  \ | ||||||
|  |     E(EDIRINTOSELF, "Cannot make directory a subdirectory of itself") \ | ||||||
|  |     E(EDQUOT, "Quota exceeded")                                       \ | ||||||
|  |     E(ENOTRECOVERABLE, "State not recoverable")                       \ | ||||||
|  |     E(EMAXERRNO, "The highest errno +1 :^)") | ||||||
|  | 
 | ||||||
|  | enum ErrnoCode { | ||||||
|  | #define __ENUMERATE_ERRNO_CODE(c, s) c, | ||||||
|  |     ENUMERATE_ERRNO_CODES(__ENUMERATE_ERRNO_CODE) | ||||||
|  | #undef __ENUMERATE_ERRNO_CODE | ||||||
|  | }; | ||||||
|  | @ -5,10 +5,10 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/Memory.h> | #include <AK/Memory.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Devices/DeviceManagement.h> | #include <Kernel/Devices/DeviceManagement.h> | ||||||
| #include <Kernel/Devices/FullDevice.h> | #include <Kernel/Devices/FullDevice.h> | ||||||
| #include <Kernel/Sections.h> | #include <Kernel/Sections.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,6 +9,7 @@ | ||||||
| #include <AK/MemoryStream.h> | #include <AK/MemoryStream.h> | ||||||
| #include <AK/StdLibExtras.h> | #include <AK/StdLibExtras.h> | ||||||
| #include <AK/StringView.h> | #include <AK/StringView.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/Devices/BlockDevice.h> | #include <Kernel/Devices/BlockDevice.h> | ||||||
| #include <Kernel/FileSystem/Ext2FileSystem.h> | #include <Kernel/FileSystem/Ext2FileSystem.h> | ||||||
|  | @ -16,7 +17,6 @@ | ||||||
| #include <Kernel/FileSystem/ext2_fs.h> | #include <Kernel/FileSystem/ext2_fs.h> | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <Kernel/UnixTypes.h> | #include <Kernel/UnixTypes.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,6 +5,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/StringView.h> | #include <AK/StringView.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/FileSystem/Inode.h> | #include <Kernel/FileSystem/Inode.h> | ||||||
| #include <Kernel/FileSystem/InodeFile.h> | #include <Kernel/FileSystem/InodeFile.h> | ||||||
| #include <Kernel/FileSystem/OpenFileDescription.h> | #include <Kernel/FileSystem/OpenFileDescription.h> | ||||||
|  | @ -12,7 +13,6 @@ | ||||||
| #include <Kernel/Memory/PrivateInodeVMObject.h> | #include <Kernel/Memory/PrivateInodeVMObject.h> | ||||||
| #include <Kernel/Memory/SharedInodeVMObject.h> | #include <Kernel/Memory/SharedInodeVMObject.h> | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| #include <LibC/sys/ioctl_numbers.h> | #include <LibC/sys/ioctl_numbers.h> | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/MemoryStream.h> | #include <AK/MemoryStream.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/Devices/BlockDevice.h> | #include <Kernel/Devices/BlockDevice.h> | ||||||
| #include <Kernel/FileSystem/Custody.h> | #include <Kernel/FileSystem/Custody.h> | ||||||
|  | @ -20,7 +21,6 @@ | ||||||
| #include <Kernel/TTY/MasterPTY.h> | #include <Kernel/TTY/MasterPTY.h> | ||||||
| #include <Kernel/TTY/TTY.h> | #include <Kernel/TTY/TTY.h> | ||||||
| #include <Kernel/UnixTypes.h> | #include <Kernel/UnixTypes.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/Singleton.h> | #include <AK/Singleton.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/FileSystem/Custody.h> | #include <Kernel/FileSystem/Custody.h> | ||||||
| #include <Kernel/FileSystem/OpenFileDescription.h> | #include <Kernel/FileSystem/OpenFileDescription.h> | ||||||
|  | @ -15,7 +16,6 @@ | ||||||
| #include <Kernel/Heap/kmalloc.h> | #include <Kernel/Heap/kmalloc.h> | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <Kernel/Sections.h> | #include <Kernel/Sections.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -7,6 +7,7 @@ | ||||||
| #include <AK/GenericLexer.h> | #include <AK/GenericLexer.h> | ||||||
| #include <AK/Singleton.h> | #include <AK/Singleton.h> | ||||||
| #include <AK/StringBuilder.h> | #include <AK/StringBuilder.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/Devices/BlockDevice.h> | #include <Kernel/Devices/BlockDevice.h> | ||||||
| #include <Kernel/Devices/DeviceManagement.h> | #include <Kernel/Devices/DeviceManagement.h> | ||||||
|  | @ -19,7 +20,6 @@ | ||||||
| #include <Kernel/KSyms.h> | #include <Kernel/KSyms.h> | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <Kernel/Sections.h> | #include <Kernel/Sections.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/Checked.h> | #include <AK/Checked.h> | ||||||
| #include <AK/Try.h> | #include <AK/Try.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/Devices/DeviceManagement.h> | #include <Kernel/Devices/DeviceManagement.h> | ||||||
| #include <Kernel/Graphics/FramebufferDevice.h> | #include <Kernel/Graphics/FramebufferDevice.h> | ||||||
|  | @ -14,7 +15,6 @@ | ||||||
| #include <Kernel/Memory/MemoryManager.h> | #include <Kernel/Memory/MemoryManager.h> | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <Kernel/Sections.h> | #include <Kernel/Sections.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| #include <LibC/sys/ioctl_numbers.h> | #include <LibC/sys/ioctl_numbers.h> | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/Checked.h> | #include <AK/Checked.h> | ||||||
| #include <AK/Try.h> | #include <AK/Try.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/Devices/DeviceManagement.h> | #include <Kernel/Devices/DeviceManagement.h> | ||||||
| #include <Kernel/Graphics/FramebufferDevice.h> | #include <Kernel/Graphics/FramebufferDevice.h> | ||||||
|  | @ -15,7 +16,6 @@ | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <Kernel/Sections.h> | #include <Kernel/Sections.h> | ||||||
| #include <Kernel/StdLib.h> | #include <Kernel/StdLib.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| 
 | 
 | ||||||
| #define MAX_RESOLUTION_WIDTH 4096 | #define MAX_RESOLUTION_WIDTH 4096 | ||||||
| #define MAX_RESOLUTION_HEIGHT 2160 | #define MAX_RESOLUTION_HEIGHT 2160 | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/Singleton.h> | #include <AK/Singleton.h> | ||||||
| #include <AK/StringBuilder.h> | #include <AK/StringBuilder.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/FileSystem/OpenFileDescription.h> | #include <Kernel/FileSystem/OpenFileDescription.h> | ||||||
| #include <Kernel/Net/ARP.h> | #include <Kernel/Net/ARP.h> | ||||||
|  | @ -21,7 +22,6 @@ | ||||||
| #include <Kernel/Net/UDPSocket.h> | #include <Kernel/Net/UDPSocket.h> | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <Kernel/UnixTypes.h> | #include <Kernel/UnixTypes.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| #include <LibC/sys/ioctl_numbers.h> | #include <LibC/sys/ioctl_numbers.h> | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/Singleton.h> | #include <AK/Singleton.h> | ||||||
| #include <AK/StringBuilder.h> | #include <AK/StringBuilder.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/FileSystem/OpenFileDescription.h> | #include <Kernel/FileSystem/OpenFileDescription.h> | ||||||
| #include <Kernel/FileSystem/VirtualFileSystem.h> | #include <Kernel/FileSystem/VirtualFileSystem.h> | ||||||
|  | @ -15,7 +16,6 @@ | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <Kernel/StdLib.h> | #include <Kernel/StdLib.h> | ||||||
| #include <Kernel/UnixTypes.h> | #include <Kernel/UnixTypes.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| #include <LibC/sys/ioctl_numbers.h> | #include <LibC/sys/ioctl_numbers.h> | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
|  |  | ||||||
|  | @ -5,6 +5,7 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/StringView.h> | #include <AK/StringView.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/FileSystem/OpenFileDescription.h> | #include <Kernel/FileSystem/OpenFileDescription.h> | ||||||
| #include <Kernel/Net/IPv4Socket.h> | #include <Kernel/Net/IPv4Socket.h> | ||||||
|  | @ -13,7 +14,6 @@ | ||||||
| #include <Kernel/Net/Socket.h> | #include <Kernel/Net/Socket.h> | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <Kernel/UnixTypes.h> | #include <Kernel/UnixTypes.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -17,6 +17,7 @@ | ||||||
| #ifdef ENABLE_KERNEL_COVERAGE_COLLECTION | #ifdef ENABLE_KERNEL_COVERAGE_COLLECTION | ||||||
| #    include <Kernel/Devices/KCOVDevice.h> | #    include <Kernel/Devices/KCOVDevice.h> | ||||||
| #endif | #endif | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Devices/NullDevice.h> | #include <Kernel/Devices/NullDevice.h> | ||||||
| #include <Kernel/FileSystem/Custody.h> | #include <Kernel/FileSystem/Custody.h> | ||||||
| #include <Kernel/FileSystem/OpenFileDescription.h> | #include <Kernel/FileSystem/OpenFileDescription.h> | ||||||
|  | @ -34,7 +35,6 @@ | ||||||
| #include <Kernel/TTY/TTY.h> | #include <Kernel/TTY/TTY.h> | ||||||
| #include <Kernel/Thread.h> | #include <Kernel/Thread.h> | ||||||
| #include <Kernel/ThreadTracer.h> | #include <Kernel/ThreadTracer.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| #include <LibC/limits.h> | #include <LibC/limits.h> | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
|  |  | ||||||
|  | @ -4,13 +4,13 @@ | ||||||
|  * SPDX-License-Identifier: BSD-2-Clause |  * SPDX-License-Identifier: BSD-2-Clause | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Arch/x86/InterruptDisabler.h> | #include <Kernel/Arch/x86/InterruptDisabler.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <Kernel/TTY/MasterPTY.h> | #include <Kernel/TTY/MasterPTY.h> | ||||||
| #include <Kernel/TTY/PTYMultiplexer.h> | #include <Kernel/TTY/PTYMultiplexer.h> | ||||||
| #include <Kernel/TTY/SlavePTY.h> | #include <Kernel/TTY/SlavePTY.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| #include <LibC/signal_numbers.h> | #include <LibC/signal_numbers.h> | ||||||
| #include <LibC/sys/ioctl_numbers.h> | #include <LibC/sys/ioctl_numbers.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,12 +5,12 @@ | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| #include <AK/Singleton.h> | #include <AK/Singleton.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/FileSystem/OpenFileDescription.h> | #include <Kernel/FileSystem/OpenFileDescription.h> | ||||||
| #include <Kernel/Sections.h> | #include <Kernel/Sections.h> | ||||||
| #include <Kernel/TTY/MasterPTY.h> | #include <Kernel/TTY/MasterPTY.h> | ||||||
| #include <Kernel/TTY/PTYMultiplexer.h> | #include <Kernel/TTY/PTYMultiplexer.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,11 +6,11 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/ScopeGuard.h> | #include <AK/ScopeGuard.h> | ||||||
| #include <AK/StringView.h> | #include <AK/StringView.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Arch/x86/InterruptDisabler.h> | #include <Kernel/Arch/x86/InterruptDisabler.h> | ||||||
| #include <Kernel/Debug.h> | #include <Kernel/Debug.h> | ||||||
| #include <Kernel/Process.h> | #include <Kernel/Process.h> | ||||||
| #include <Kernel/TTY/TTY.h> | #include <Kernel/TTY/TTY.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| #include <LibC/signal_numbers.h> | #include <LibC/signal_numbers.h> | ||||||
| #include <LibC/sys/ioctl_numbers.h> | #include <LibC/sys/ioctl_numbers.h> | ||||||
| #define TTYDEFCHARS | #define TTYDEFCHARS | ||||||
|  |  | ||||||
|  | @ -9,10 +9,10 @@ | ||||||
| 
 | 
 | ||||||
| #include <AK/Types.h> | #include <AK/Types.h> | ||||||
| #include <AK/Userspace.h> | #include <AK/Userspace.h> | ||||||
|  | #include <Kernel/API/POSIX/errno.h> | ||||||
| #include <Kernel/Memory/MemoryManager.h> | #include <Kernel/Memory/MemoryManager.h> | ||||||
| #include <Kernel/StdLib.h> | #include <Kernel/StdLib.h> | ||||||
| #include <Kernel/UnixTypes.h> | #include <Kernel/UnixTypes.h> | ||||||
| #include <LibC/errno_numbers.h> |  | ||||||
| 
 | 
 | ||||||
| namespace Kernel { | namespace Kernel { | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -6,7 +6,7 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include <errno_numbers.h> | #include <errno_codes.h> | ||||||
| #include <sys/cdefs.h> | #include <sys/cdefs.h> | ||||||
| 
 | 
 | ||||||
| #define __RETURN_WITH_ERRNO(rc, good_ret, bad_ret) \ | #define __RETURN_WITH_ERRNO(rc, good_ret, bad_ret) \ | ||||||
|  |  | ||||||
|  | @ -6,168 +6,89 @@ | ||||||
| 
 | 
 | ||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| enum ErrnoCode { | #include <Kernel/API/POSIX/errno.h> | ||||||
|     EPERM = 1, | 
 | ||||||
|  | // NOTE: You can't define with a macro, so these have to be duplicated.
 | ||||||
| #define EPERM EPERM | #define EPERM EPERM | ||||||
|     ENOENT, |  | ||||||
| #define ENOENT ENOENT | #define ENOENT ENOENT | ||||||
|     ESRCH, |  | ||||||
| #define ESRCH ESRCH | #define ESRCH ESRCH | ||||||
|     EINTR, |  | ||||||
| #define EINTR EINTR | #define EINTR EINTR | ||||||
|     EIO, |  | ||||||
| #define EIO EIO | #define EIO EIO | ||||||
|     ENXIO, |  | ||||||
| #define ENXIO ENXIO | #define ENXIO ENXIO | ||||||
|     E2BIG, |  | ||||||
| #define E2BIG E2BIG | #define E2BIG E2BIG | ||||||
|     ENOEXEC, |  | ||||||
| #define ENOEXEC ENOEXEC | #define ENOEXEC ENOEXEC | ||||||
|     EBADF, |  | ||||||
| #define EBADF EBADF | #define EBADF EBADF | ||||||
|     ECHILD, |  | ||||||
| #define ECHILD ECHILD | #define ECHILD ECHILD | ||||||
|     EAGAIN, |  | ||||||
| #define EAGAIN EAGAIN | #define EAGAIN EAGAIN | ||||||
|     ENOMEM, |  | ||||||
| #define ENOMEM ENOMEM | #define ENOMEM ENOMEM | ||||||
|     EACCES, |  | ||||||
| #define EACCES EACCES | #define EACCES EACCES | ||||||
|     EFAULT, |  | ||||||
| #define EFAULT EFAULT | #define EFAULT EFAULT | ||||||
|     ENOTBLK, |  | ||||||
| #define ENOTBLK ENOTBLK | #define ENOTBLK ENOTBLK | ||||||
|     EBUSY, |  | ||||||
| #define EBUSY EBUSY | #define EBUSY EBUSY | ||||||
|     EEXIST, |  | ||||||
| #define EEXIST EEXIST | #define EEXIST EEXIST | ||||||
|     EXDEV, |  | ||||||
| #define EXDEV EXDEV | #define EXDEV EXDEV | ||||||
|     ENODEV, |  | ||||||
| #define ENODEV ENODEV | #define ENODEV ENODEV | ||||||
|     ENOTDIR, |  | ||||||
| #define ENOTDIR ENOTDIR | #define ENOTDIR ENOTDIR | ||||||
|     EISDIR, |  | ||||||
| #define EISDIR EISDIR | #define EISDIR EISDIR | ||||||
|     EINVAL, |  | ||||||
| #define EINVAL EINVAL | #define EINVAL EINVAL | ||||||
|     ENFILE, |  | ||||||
| #define ENFILE ENFILE | #define ENFILE ENFILE | ||||||
|     EMFILE, |  | ||||||
| #define EMFILE EMFILE | #define EMFILE EMFILE | ||||||
|     ENOTTY, |  | ||||||
| #define ENOTTY ENOTTY | #define ENOTTY ENOTTY | ||||||
|     ETXTBSY, |  | ||||||
| #define ETXTBSY ETXTBSY | #define ETXTBSY ETXTBSY | ||||||
|     EFBIG, |  | ||||||
| #define EFBIG EFBIG | #define EFBIG EFBIG | ||||||
|     ENOSPC, |  | ||||||
| #define ENOSPC ENOSPC | #define ENOSPC ENOSPC | ||||||
|     ESPIPE, |  | ||||||
| #define ESPIPE ESPIPE | #define ESPIPE ESPIPE | ||||||
|     EROFS, |  | ||||||
| #define EROFS EROFS | #define EROFS EROFS | ||||||
|     EMLINK, |  | ||||||
| #define EMLINK EMLINK | #define EMLINK EMLINK | ||||||
|     EPIPE, |  | ||||||
| #define EPIPE EPIPE | #define EPIPE EPIPE | ||||||
|     ERANGE, |  | ||||||
| #define ERANGE ERANGE | #define ERANGE ERANGE | ||||||
|     ENAMETOOLONG, |  | ||||||
| #define ENAMETOOLONG ENAMETOOLONG | #define ENAMETOOLONG ENAMETOOLONG | ||||||
|     ELOOP, |  | ||||||
| #define ELOOP ELOOP | #define ELOOP ELOOP | ||||||
|     EOVERFLOW, |  | ||||||
| #define EOVERFLOW EOVERFLOW | #define EOVERFLOW EOVERFLOW | ||||||
|     EOPNOTSUPP, |  | ||||||
| #define EOPNOTSUPP EOPNOTSUPP | #define EOPNOTSUPP EOPNOTSUPP | ||||||
|     ENOSYS, |  | ||||||
| #define ENOSYS ENOSYS | #define ENOSYS ENOSYS | ||||||
|     ENOTIMPL, |  | ||||||
| #define ENOTIMPL ENOTIMPL | #define ENOTIMPL ENOTIMPL | ||||||
|     EAFNOSUPPORT, |  | ||||||
| #define EAFNOSUPPORT EAFNOSUPPORT | #define EAFNOSUPPORT EAFNOSUPPORT | ||||||
|     ENOTSOCK, |  | ||||||
| #define ENOTSOCK ENOTSOCK | #define ENOTSOCK ENOTSOCK | ||||||
|     EADDRINUSE, |  | ||||||
| #define EADDRINUSE EADDRINUSE | #define EADDRINUSE EADDRINUSE | ||||||
|     EWHYTHO, |  | ||||||
| #define EWHYTHO EWHYTHO | #define EWHYTHO EWHYTHO | ||||||
|     ENOTEMPTY, |  | ||||||
| #define ENOTEMPTY ENOTEMPTY | #define ENOTEMPTY ENOTEMPTY | ||||||
|     EDOM, |  | ||||||
| #define EDOM EDOM | #define EDOM EDOM | ||||||
|     ECONNREFUSED, |  | ||||||
| #define ECONNREFUSED ECONNREFUSED | #define ECONNREFUSED ECONNREFUSED | ||||||
|     EHOSTDOWN, |  | ||||||
| #define EHOSTDOWN EHOSTDOWN | #define EHOSTDOWN EHOSTDOWN | ||||||
|     EADDRNOTAVAIL, |  | ||||||
| #define EADDRNOTAVAIL EADDRNOTAVAIL | #define EADDRNOTAVAIL EADDRNOTAVAIL | ||||||
|     EISCONN, |  | ||||||
| #define EISCONN EISCONN | #define EISCONN EISCONN | ||||||
|     ECONNABORTED, |  | ||||||
| #define ECONNABORTED ECONNABORTED | #define ECONNABORTED ECONNABORTED | ||||||
|     EALREADY, |  | ||||||
| #define EALREADY EALREADY | #define EALREADY EALREADY | ||||||
|     ECONNRESET, |  | ||||||
| #define ECONNRESET ECONNRESET | #define ECONNRESET ECONNRESET | ||||||
|     EDESTADDRREQ, |  | ||||||
| #define EDESTADDRREQ EDESTADDRREQ | #define EDESTADDRREQ EDESTADDRREQ | ||||||
|     EHOSTUNREACH, |  | ||||||
| #define EHOSTUNREACH EHOSTUNREACH | #define EHOSTUNREACH EHOSTUNREACH | ||||||
|     EILSEQ, |  | ||||||
| #define EILSEQ EILSEQ | #define EILSEQ EILSEQ | ||||||
|     EMSGSIZE, |  | ||||||
| #define EMSGSIZE EMSGSIZE | #define EMSGSIZE EMSGSIZE | ||||||
|     ENETDOWN, |  | ||||||
| #define ENETDOWN ENETDOWN | #define ENETDOWN ENETDOWN | ||||||
|     ENETUNREACH, |  | ||||||
| #define ENETUNREACH ENETUNREACH | #define ENETUNREACH ENETUNREACH | ||||||
|     ENETRESET, |  | ||||||
| #define ENETRESET ENETRESET | #define ENETRESET ENETRESET | ||||||
|     ENOBUFS, |  | ||||||
| #define ENOBUFS ENOBUFS | #define ENOBUFS ENOBUFS | ||||||
|     ENOLCK, |  | ||||||
| #define ENOLCK ENOLCK | #define ENOLCK ENOLCK | ||||||
|     ENOMSG, |  | ||||||
| #define ENOMSG ENOMSG | #define ENOMSG ENOMSG | ||||||
|     ENOPROTOOPT, |  | ||||||
| #define ENOPROTOOPT ENOPROTOOPT | #define ENOPROTOOPT ENOPROTOOPT | ||||||
|     ENOTCONN, |  | ||||||
| #define ENOTCONN ENOTCONN | #define ENOTCONN ENOTCONN | ||||||
|     ESHUTDOWN, |  | ||||||
| #define ESHUTDOWN ESHUTDOWN | #define ESHUTDOWN ESHUTDOWN | ||||||
|     ETOOMANYREFS, |  | ||||||
| #define ETOOMANYREFS ETOOMANYREFS | #define ETOOMANYREFS ETOOMANYREFS | ||||||
|     EPROTONOSUPPORT, |  | ||||||
| #define EPROTONOSUPPORT EPROTONOSUPPORT | #define EPROTONOSUPPORT EPROTONOSUPPORT | ||||||
|     ESOCKTNOSUPPORT, |  | ||||||
| #define ESOCKTNOSUPPORT ESOCKTNOSUPPORT | #define ESOCKTNOSUPPORT ESOCKTNOSUPPORT | ||||||
|     EDEADLK, |  | ||||||
| #define EDEADLK EDEADLK | #define EDEADLK EDEADLK | ||||||
|     ETIMEDOUT, |  | ||||||
| #define ETIMEDOUT ETIMEDOUT | #define ETIMEDOUT ETIMEDOUT | ||||||
|     EPROTOTYPE, |  | ||||||
| #define EPROTOTYPE EPROTOTYPE | #define EPROTOTYPE EPROTOTYPE | ||||||
|     EINPROGRESS, |  | ||||||
| #define EINPROGRESS EINPROGRESS | #define EINPROGRESS EINPROGRESS | ||||||
|     ENOTHREAD, |  | ||||||
| #define ENOTHREAD ENOTHREAD | #define ENOTHREAD ENOTHREAD | ||||||
|     EPROTO, |  | ||||||
| #define EPROTO EPROTO | #define EPROTO EPROTO | ||||||
|     ENOTSUP, |  | ||||||
| #define ENOTSUP ENOTSUP | #define ENOTSUP ENOTSUP | ||||||
|     EPFNOSUPPORT, |  | ||||||
| #define EPFNOSUPPORT EPFNOSUPPORT | #define EPFNOSUPPORT EPFNOSUPPORT | ||||||
|     EDIRINTOSELF, |  | ||||||
| #define EDQUOT EDQUOT | #define EDQUOT EDQUOT | ||||||
|     EDQUOT, |  | ||||||
| #define EDIRINTOSELF EDIRINTOSELF | #define EDIRINTOSELF EDIRINTOSELF | ||||||
|     ENOTRECOVERABLE, |  | ||||||
| #define ENOTRECOVERABLE ENOTRECOVERABLE | #define ENOTRECOVERABLE ENOTRECOVERABLE | ||||||
|     EMAXERRNO, |  | ||||||
| #define EMAXERRNO EMAXERRNO | #define EMAXERRNO EMAXERRNO | ||||||
| }; |  | ||||||
| 
 | 
 | ||||||
| #define EWOULDBLOCK EAGAIN | #define EWOULDBLOCK EAGAIN | ||||||
| #define ELAST EMAXERRNO | #define ELAST EMAXERRNO | ||||||
|  | @ -8,7 +8,7 @@ | ||||||
| #include <AK/String.h> | #include <AK/String.h> | ||||||
| #include <AK/Vector.h> | #include <AK/Vector.h> | ||||||
| #include <errno.h> | #include <errno.h> | ||||||
| #include <errno_numbers.h> | #include <errno_codes.h> | ||||||
| #include <grp.h> | #include <grp.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
|  |  | ||||||
|  | @ -264,87 +264,9 @@ char* strncat(char* dest, const char* src, size_t n) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char* const sys_errlist[] = { | const char* const sys_errlist[] = { | ||||||
|     "Success (not an error)", | #define __ENUMERATE_ERRNO_CODE(c, s) s, | ||||||
|     "Operation not permitted", |     ENUMERATE_ERRNO_CODES(__ENUMERATE_ERRNO_CODE) | ||||||
|     "No such file or directory", | #undef __ENUMERATE_ERRNO_CODE | ||||||
|     "No such process", |  | ||||||
|     "Interrupted syscall", |  | ||||||
|     "I/O error", |  | ||||||
|     "No such device or address", |  | ||||||
|     "Argument list too long", |  | ||||||
|     "Exec format error", |  | ||||||
|     "Bad fd number", |  | ||||||
|     "No child processes", |  | ||||||
|     "Try again", |  | ||||||
|     "Out of memory", |  | ||||||
|     "Permission denied", |  | ||||||
|     "Bad address", |  | ||||||
|     "Block device required", |  | ||||||
|     "Device or resource busy", |  | ||||||
|     "File already exists", |  | ||||||
|     "Cross-device link", |  | ||||||
|     "No such device", |  | ||||||
|     "Not a directory", |  | ||||||
|     "Is a directory", |  | ||||||
|     "Invalid argument", |  | ||||||
|     "File table overflow", |  | ||||||
|     "Too many open files", |  | ||||||
|     "Not a TTY", |  | ||||||
|     "Text file busy", |  | ||||||
|     "File too large", |  | ||||||
|     "No space left on device", |  | ||||||
|     "Illegal seek", |  | ||||||
|     "Read-only filesystem", |  | ||||||
|     "Too many links", |  | ||||||
|     "Broken pipe", |  | ||||||
|     "Range error", |  | ||||||
|     "Name too long", |  | ||||||
|     "Too many symlinks", |  | ||||||
|     "Overflow", |  | ||||||
|     "Operation not supported", |  | ||||||
|     "No such syscall", |  | ||||||
|     "Not implemented", |  | ||||||
|     "Address family not supported", |  | ||||||
|     "Not a socket", |  | ||||||
|     "Address in use", |  | ||||||
|     "Failed without setting an error code (bug!)", |  | ||||||
|     "Directory not empty", |  | ||||||
|     "Math argument out of domain", |  | ||||||
|     "Connection refused", |  | ||||||
|     "Host is down", |  | ||||||
|     "Address not available", |  | ||||||
|     "Already connected", |  | ||||||
|     "Connection aborted", |  | ||||||
|     "Connection already in progress", |  | ||||||
|     "Connection reset", |  | ||||||
|     "Destination address required", |  | ||||||
|     "Host unreachable", |  | ||||||
|     "Illegal byte sequence", |  | ||||||
|     "Message size", |  | ||||||
|     "Network down", |  | ||||||
|     "Network unreachable", |  | ||||||
|     "Network reset", |  | ||||||
|     "No buffer space", |  | ||||||
|     "No lock available", |  | ||||||
|     "No message", |  | ||||||
|     "No protocol option", |  | ||||||
|     "Not connected", |  | ||||||
|     "Transport endpoint has shutdown", |  | ||||||
|     "Too many references", |  | ||||||
|     "Protocol not supported", |  | ||||||
|     "Socket type not supported", |  | ||||||
|     "Resource deadlock would occur", |  | ||||||
|     "Timed out", |  | ||||||
|     "Wrong protocol type", |  | ||||||
|     "Operation in progress", |  | ||||||
|     "No such thread", |  | ||||||
|     "Protocol error", |  | ||||||
|     "Not supported", |  | ||||||
|     "Protocol family not supported", |  | ||||||
|     "Cannot make directory a subdirectory of itself", |  | ||||||
|     "Quota exceeded", |  | ||||||
|     "State not recoverable", |  | ||||||
|     "The highest errno +1 :^)", |  | ||||||
| }; | }; | ||||||
| static_assert(array_size(sys_errlist) == (EMAXERRNO + 1)); | static_assert(array_size(sys_errlist) == (EMAXERRNO + 1)); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ | ||||||
| #include <AK/Iterator.h> | #include <AK/Iterator.h> | ||||||
| #include <AK/Vector.h> | #include <AK/Vector.h> | ||||||
| #include <LibCore/ArgsParser.h> | #include <LibCore/ArgsParser.h> | ||||||
| #include <errno_numbers.h> | #include <errno_codes.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <string.h> | #include <string.h> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 sin-ack
						sin-ack