aboutsummaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/kstd/kstd/system_error.hpp403
1 files changed, 367 insertions, 36 deletions
diff --git a/libs/kstd/kstd/system_error.hpp b/libs/kstd/kstd/system_error.hpp
index 221347a8..df378b5d 100644
--- a/libs/kstd/kstd/system_error.hpp
+++ b/libs/kstd/kstd/system_error.hpp
@@ -215,12 +215,127 @@ namespace kstd
enum struct errc : std::uint32_t
{
success = 0,
+ operation_not_permitted,
no_such_file_or_directory,
+ no_such_process,
+ interrupted,
io_error,
+ no_such_device_or_address,
+ argument_list_too_long,
+ executable_format_error,
+ bad_file_descriptor,
+ no_child_process,
+ resource_unavailable_try_again,
not_enough_memory,
permission_denied,
+ bad_address,
+ not_a_block_device,
device_or_resource_busy,
+ file_exists,
+ cross_device_link,
+ no_such_device,
+ not_a_directory,
+ is_a_directory,
invalid_argument,
+ too_many_files_open_in_system,
+ too_many_files_open,
+ inappropriate_io_control_operation,
+ text_file_busy,
+ file_too_large,
+ no_space_on_device,
+ invalid_seek,
+ read_only_file_system,
+ too_many_links,
+ broken_pipe,
+ argument_out_of_range,
+ result_out_of_range,
+ resource_deadlock_would_occur,
+ file_name_too_long,
+ no_lock_available,
+ function_not_supported,
+ directory_not_empty,
+ too_many_symbolic_link_levels,
+ no_message = 42,
+ identifier_removed,
+ channel_number_out_of_range,
+ level_2_not_synchronized,
+ level_3_halted,
+ level_3_reset,
+ link_number_out_of_range,
+ protocol_driver_not_attached,
+ no_csi_structure_available,
+ level_2_halted,
+ invalid_exchange,
+ invalid_request_descriptor,
+ exchange_full,
+ no_anode,
+ invalid_request_code,
+ invalid_slot,
+ bad_font_file_format = 59,
+ machine_is_not_on_the_network = 64,
+ package_not_installed,
+ object_is_remote,
+ no_link,
+ advertise_error,
+ srmount_error,
+ communication_error_on_send,
+ protocol_error,
+ multihop_attempt,
+ bad_message = 74,
+ value_too_large,
+ name_not_unique_on_network,
+ file_descriptor_in_bad_state,
+ remote_address_changed,
+ shared_library_inaccessible,
+ shared_library_corrupted,
+ too_many_shared_libraries,
+ cannot_execute_shared_library = 83,
+ illegal_byte_sequence,
+ interrupted_try_again,
+ too_many_users = 87,
+ not_a_socket,
+ destination_address_required,
+ message_size,
+ wrong_protocol_type,
+ no_protocol_option,
+ protocol_not_supported,
+ socket_type_not_supported,
+ operation_not_supported,
+ protocol_family_not_supported,
+ address_family_not_supported,
+ address_in_use,
+ address_not_available,
+ network_down,
+ network_unreachable,
+ network_reset,
+ connection_aborted,
+ connection_reset,
+ no_buffer_space,
+ already_connected,
+ not_connected,
+ connection_shut_down,
+ too_many_references,
+ timed_out,
+ connection_refused,
+ host_is_down,
+ host_unreachable,
+ connection_already_in_progress,
+ operation_in_progress,
+ stale_file_handle,
+ structure_needs_cleaning,
+ remote_io_error = 121,
+ disk_quota_exceeded,
+ no_medium_found,
+ wrong_medium_type,
+ operation_canceled,
+ required_key_not_available,
+ key_expired,
+ key_revoked,
+ key_rejected,
+ owner_dead,
+ state_not_recoverable,
+ rf_kill,
+ memory_page_hardware_error,
not_supported,
};
@@ -242,24 +357,132 @@ namespace kstd
{
switch (static_cast<errc>(value))
{
- case errc::success:
- return "success";
- case errc::no_such_file_or_directory:
- return "no such file or directory";
- case errc::io_error:
- return "input/output error";
- case errc::not_enough_memory:
- return "not enough memory";
- case errc::permission_denied:
- return "permission denied";
- case errc::device_or_resource_busy:
- return "device or resource busy";
- case errc::invalid_argument:
- return "invalid argument";
- case errc::not_supported:
- return "not supported";
- default:
- return "unknown generic error";
+ // clang-format off
+ case errc::success: return "success";
+ case errc::operation_not_permitted: return "operation not permitted";
+ case errc::no_such_file_or_directory: return "no such file or directory";
+ case errc::no_such_process: return "no such process";
+ case errc::interrupted: return "system call interrupted";
+ case errc::io_error: return "input/output error";
+ case errc::no_such_device_or_address: return "no such device or address";
+ case errc::argument_list_too_long: return "argument list too long";
+ case errc::executable_format_error: return "invalid executable format";
+ case errc::bad_file_descriptor: return "bad file descriptor";
+ case errc::no_child_process: return "no child process";
+ case errc::resource_unavailable_try_again: return "resource unavailable, try again";
+ case errc::not_enough_memory: return "not enough memory";
+ case errc::permission_denied: return "permission denied";
+ case errc::bad_address: return "bad address";
+ case errc::not_a_block_device: return "not a block device";
+ case errc::device_or_resource_busy: return "device or resource busy";
+ case errc::file_exists: return "file exists";
+ case errc::cross_device_link: return "cross device link";
+ case errc::no_such_device: return "no such device";
+ case errc::not_a_directory: return "not a directory";
+ case errc::is_a_directory: return "is a directory";
+ case errc::invalid_argument: return "invalid argument";
+ case errc::too_many_files_open_in_system: return "too many files open in system";
+ case errc::too_many_files_open: return "too many files open";
+ case errc::inappropriate_io_control_operation: return "inappropriate io control operation";
+ case errc::text_file_busy: return "text file busy";
+ case errc::file_too_large: return "file too large";
+ case errc::no_space_on_device: return "no space on device";
+ case errc::invalid_seek: return "invalid seek";
+ case errc::read_only_file_system: return "read only file system";
+ case errc::too_many_links: return "too many links";
+ case errc::broken_pipe: return "broken pipe";
+ case errc::argument_out_of_range: return "argument out of range";
+ case errc::result_out_of_range: return "result out of range";
+ case errc::resource_deadlock_would_occur: return "resource deadlock would occur";
+ case errc::file_name_too_long: return "file name too long";
+ case errc::no_lock_available: return "no lock available";
+ case errc::function_not_supported: return "function not supported";
+ case errc::directory_not_empty: return "directory not empty";
+ case errc::too_many_symbolic_link_levels: return "too many symbolic link levels";
+ case errc::no_message: return "no message";
+ case errc::identifier_removed: return "identifier removed";
+ case errc::channel_number_out_of_range: return "channel number out of range";
+ case errc::level_2_not_synchronized: return "level 2 not synchronized";
+ case errc::level_3_halted: return "level 3 halted";
+ case errc::level_3_reset: return "level 3 reset";
+ case errc::link_number_out_of_range: return "link number out of range";
+ case errc::protocol_driver_not_attached: return "protocol driver not attached";
+ case errc::no_csi_structure_available: return "no csi structure available";
+ case errc::level_2_halted: return "level 2 halted";
+ case errc::invalid_exchange: return "invalid exchange";
+ case errc::invalid_request_descriptor: return "invalid request descriptor";
+ case errc::exchange_full: return "exchange full";
+ case errc::no_anode: return "no anode";
+ case errc::invalid_request_code: return "invalid request code";
+ case errc::invalid_slot: return "invalid slot";
+ case errc::bad_font_file_format: return "bad font file format";
+ case errc::machine_is_not_on_the_network: return "machine is not on the network";
+ case errc::package_not_installed: return "package not installed";
+ case errc::object_is_remote: return "object is remote";
+ case errc::no_link: return "no link";
+ case errc::advertise_error: return "advertisement error";
+ case errc::srmount_error: return "srmount error";
+ case errc::communication_error_on_send: return "communication error on send";
+ case errc::protocol_error: return "protocol error";
+ case errc::multihop_attempt: return "multihop attempt";
+ case errc::bad_message: return "bad message";
+ case errc::value_too_large: return "value too large";
+ case errc::name_not_unique_on_network: return "name not unique on network";
+ case errc::file_descriptor_in_bad_state: return "file descriptor in bad state";
+ case errc::remote_address_changed: return "remote address changed";
+ case errc::shared_library_inaccessible: return "failed to access shared library";
+ case errc::shared_library_corrupted: return "shared library corrupted";
+ case errc::too_many_shared_libraries: return "attempted to load too many shared libraries";
+ case errc::cannot_execute_shared_library: return "cannot execute shared library";
+ case errc::illegal_byte_sequence: return "illegal byte sequence";
+ case errc::interrupted_try_again: return "system call interrupted, try again";
+ case errc::too_many_users: return "too many logged in users";
+ case errc::not_a_socket: return "not a socket";
+ case errc::destination_address_required: return "destination address required";
+ case errc::message_size: return "message size";
+ case errc::wrong_protocol_type: return "wrong protocol type";
+ case errc::no_protocol_option: return "no protocol option";
+ case errc::protocol_not_supported: return "protocol not supported";
+ case errc::socket_type_not_supported: return "socket type not supported";
+ case errc::operation_not_supported: return "operation not supported";
+ case errc::protocol_family_not_supported: return "protocol family not supported";
+ case errc::address_family_not_supported: return "address family not supported";
+ case errc::address_in_use: return "address in use";
+ case errc::address_not_available: return "address not available";
+ case errc::network_down: return "network down";
+ case errc::network_unreachable: return "network unreachable";
+ case errc::network_reset: return "network reset";
+ case errc::connection_aborted: return "connection aborted";
+ case errc::connection_reset: return "connection reset";
+ case errc::no_buffer_space: return "no buffer space";
+ case errc::already_connected: return "already connected";
+ case errc::not_connected: return "not connected";
+ case errc::connection_shut_down: return "connection shut down";
+ case errc::too_many_references: return "too many references";
+ case errc::timed_out: return "timed out";
+ case errc::connection_refused: return "connection refused";
+ case errc::host_is_down: return "host is down";
+ case errc::host_unreachable: return "host unreachable";
+ case errc::connection_already_in_progress: return "connection already in progress";
+ case errc::operation_in_progress: return "operation in progress";
+ case errc::stale_file_handle: return "stale file handle";
+ case errc::structure_needs_cleaning: return "structure needs cleaning";
+ case errc::remote_io_error: return "remote input/output error";
+ case errc::disk_quota_exceeded: return "disk quota exceeded";
+ case errc::no_medium_found: return "no medium found";
+ case errc::wrong_medium_type: return "wrong medium type";
+ case errc::operation_canceled: return "operation canceled";
+ case errc::required_key_not_available: return "required key not available";
+ case errc::key_expired: return "key expired";
+ case errc::key_revoked: return "key revoked";
+ case errc::key_rejected: return "key rejected";
+ case errc::owner_dead: return "owner dead";
+ case errc::state_not_recoverable: return "state not recoverable";
+ case errc::rf_kill: return "operation not possible due to RFkill";
+ case errc::memory_page_hardware_error: return "memory page hardware error";
+ case errc::not_supported: return "not supported";
+ default: return "unknown system error";
+ // clang-format on
}
}
} constexpr inline generic_category_instance{};
@@ -275,24 +498,132 @@ namespace kstd
{
switch (static_cast<errc>(value))
{
- case errc::success:
- return "success";
- case errc::no_such_file_or_directory:
- return "no such file or directory";
- case errc::io_error:
- return "input/output error";
- case errc::not_enough_memory:
- return "not enough memory";
- case errc::permission_denied:
- return "permission denied";
- case errc::device_or_resource_busy:
- return "device or resource busy";
- case errc::invalid_argument:
- return "invalid argument";
- case errc::not_supported:
- return "not supported";
- default:
- return "unknown system error";
+ // clang-format off
+ case errc::success: return "success";
+ case errc::operation_not_permitted: return "operation not permitted";
+ case errc::no_such_file_or_directory: return "no such file or directory";
+ case errc::no_such_process: return "no such process";
+ case errc::interrupted: return "system call interrupted";
+ case errc::io_error: return "input/output error";
+ case errc::no_such_device_or_address: return "no such device or address";
+ case errc::argument_list_too_long: return "argument list too long";
+ case errc::executable_format_error: return "invalid executable format";
+ case errc::bad_file_descriptor: return "bad file descriptor";
+ case errc::no_child_process: return "no child process";
+ case errc::resource_unavailable_try_again: return "resource unavailable, try again";
+ case errc::not_enough_memory: return "not enough memory";
+ case errc::permission_denied: return "permission denied";
+ case errc::bad_address: return "bad address";
+ case errc::not_a_block_device: return "not a block device";
+ case errc::device_or_resource_busy: return "device or resource busy";
+ case errc::file_exists: return "file exists";
+ case errc::cross_device_link: return "cross device link";
+ case errc::no_such_device: return "no such device";
+ case errc::not_a_directory: return "not a directory";
+ case errc::is_a_directory: return "is a directory";
+ case errc::invalid_argument: return "invalid argument";
+ case errc::too_many_files_open_in_system: return "too many files open in system";
+ case errc::too_many_files_open: return "too many files open";
+ case errc::inappropriate_io_control_operation: return "inappropriate io control operation";
+ case errc::text_file_busy: return "text file busy";
+ case errc::file_too_large: return "file too large";
+ case errc::no_space_on_device: return "no space on device";
+ case errc::invalid_seek: return "invalid seek";
+ case errc::read_only_file_system: return "read only file system";
+ case errc::too_many_links: return "too many links";
+ case errc::broken_pipe: return "broken pipe";
+ case errc::argument_out_of_range: return "argument out of range";
+ case errc::result_out_of_range: return "result out of range";
+ case errc::resource_deadlock_would_occur: return "resource deadlock would occur";
+ case errc::file_name_too_long: return "file name too long";
+ case errc::no_lock_available: return "no lock available";
+ case errc::function_not_supported: return "function not supported";
+ case errc::directory_not_empty: return "directory not empty";
+ case errc::too_many_symbolic_link_levels: return "too many symbolic link levels";
+ case errc::no_message: return "no message";
+ case errc::identifier_removed: return "identifier removed";
+ case errc::channel_number_out_of_range: return "channel number out of range";
+ case errc::level_2_not_synchronized: return "level 2 not synchronized";
+ case errc::level_3_halted: return "level 3 halted";
+ case errc::level_3_reset: return "level 3 reset";
+ case errc::link_number_out_of_range: return "link number out of range";
+ case errc::protocol_driver_not_attached: return "protocol driver not attached";
+ case errc::no_csi_structure_available: return "no csi structure available";
+ case errc::level_2_halted: return "level 2 halted";
+ case errc::invalid_exchange: return "invalid exchange";
+ case errc::invalid_request_descriptor: return "invalid request descriptor";
+ case errc::exchange_full: return "exchange full";
+ case errc::no_anode: return "no anode";
+ case errc::invalid_request_code: return "invalid request code";
+ case errc::invalid_slot: return "invalid slot";
+ case errc::bad_font_file_format: return "bad font file format";
+ case errc::machine_is_not_on_the_network: return "machine is not on the network";
+ case errc::package_not_installed: return "package not installed";
+ case errc::object_is_remote: return "object is remote";
+ case errc::no_link: return "no link";
+ case errc::advertise_error: return "advertisement error";
+ case errc::srmount_error: return "srmount error";
+ case errc::communication_error_on_send: return "communication error on send";
+ case errc::protocol_error: return "protocol error";
+ case errc::multihop_attempt: return "multihop attempt";
+ case errc::bad_message: return "bad message";
+ case errc::value_too_large: return "value too large";
+ case errc::name_not_unique_on_network: return "name not unique on network";
+ case errc::file_descriptor_in_bad_state: return "file descriptor in bad state";
+ case errc::remote_address_changed: return "remote address changed";
+ case errc::shared_library_inaccessible: return "failed to access shared library";
+ case errc::shared_library_corrupted: return "shared library corrupted";
+ case errc::too_many_shared_libraries: return "attempted to load too many shared libraries";
+ case errc::cannot_execute_shared_library: return "cannot execute shared library";
+ case errc::illegal_byte_sequence: return "illegal byte sequence";
+ case errc::interrupted_try_again: return "system call interrupted, try again";
+ case errc::too_many_users: return "too many logged in users";
+ case errc::not_a_socket: return "not a socket";
+ case errc::destination_address_required: return "destination address required";
+ case errc::message_size: return "message size";
+ case errc::wrong_protocol_type: return "wrong protocol type";
+ case errc::no_protocol_option: return "no protocol option";
+ case errc::protocol_not_supported: return "protocol not supported";
+ case errc::socket_type_not_supported: return "socket type not supported";
+ case errc::operation_not_supported: return "operation not supported";
+ case errc::protocol_family_not_supported: return "protocol family not supported";
+ case errc::address_family_not_supported: return "address family not supported";
+ case errc::address_in_use: return "address in use";
+ case errc::address_not_available: return "address not available";
+ case errc::network_down: return "network down";
+ case errc::network_unreachable: return "network unreachable";
+ case errc::network_reset: return "network reset";
+ case errc::connection_aborted: return "connection aborted";
+ case errc::connection_reset: return "connection reset";
+ case errc::no_buffer_space: return "no buffer space";
+ case errc::already_connected: return "already connected";
+ case errc::not_connected: return "not connected";
+ case errc::connection_shut_down: return "connection shut down";
+ case errc::too_many_references: return "too many references";
+ case errc::timed_out: return "timed out";
+ case errc::connection_refused: return "connection refused";
+ case errc::host_is_down: return "host is down";
+ case errc::host_unreachable: return "host unreachable";
+ case errc::connection_already_in_progress: return "connection already in progress";
+ case errc::operation_in_progress: return "operation in progress";
+ case errc::stale_file_handle: return "stale file handle";
+ case errc::structure_needs_cleaning: return "structure needs cleaning";
+ case errc::remote_io_error: return "remote input/output error";
+ case errc::disk_quota_exceeded: return "disk quota exceeded";
+ case errc::no_medium_found: return "no medium found";
+ case errc::wrong_medium_type: return "wrong medium type";
+ case errc::operation_canceled: return "operation canceled";
+ case errc::required_key_not_available: return "required key not available";
+ case errc::key_expired: return "key expired";
+ case errc::key_revoked: return "key revoked";
+ case errc::key_rejected: return "key rejected";
+ case errc::owner_dead: return "owner dead";
+ case errc::state_not_recoverable: return "state not recoverable";
+ case errc::rf_kill: return "operation not possible due to RFkill";
+ case errc::memory_page_hardware_error: return "memory page hardware error";
+ case errc::not_supported: return "not supported";
+ default: return "unknown system error";
+ // clang-format on
}
}
} constexpr inline system_category_instance{};