diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-02-01 12:47:35 +0100 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2025-02-01 12:47:35 +0100 |
| commit | 85bcada8cf78bdf2bfb3be583289686026e0f25e (patch) | |
| tree | 0ce404c4840432db9b6d3addd3947a736d103382 /src/screen/cerror.zig | |
| parent | 2ce14aec655589f00442ab469b9d877a143eeefd (diff) | |
screen: start drm implementation
Diffstat (limited to 'src/screen/cerror.zig')
| -rw-r--r-- | src/screen/cerror.zig | 272 |
1 files changed, 272 insertions, 0 deletions
diff --git a/src/screen/cerror.zig b/src/screen/cerror.zig new file mode 100644 index 0000000..cd7f6e6 --- /dev/null +++ b/src/screen/cerror.zig @@ -0,0 +1,272 @@ + +pub const CError = error { + OperationNotPermitted, + NoSuchFileOrDirectory, + NoSuchProcess, + InterruptedSystemCall, + InputOutputError, + NoSuchDeviceOrAddress, + ArgumentListTooLong, + ExecFormatError, + BadFileDescriptor, + NoChildProcesses, + ResourceTemporarilyUnavailable, + CannotAllocateMemory, + PermissionDenied, + BadAddress, + BlockDeviceRequired, + DeviceOrResourceBusy, + FileExists, + InvalidCrossDeviceLink, + NoSuchDevice, + NotADirectory, + IsADirectory, + InvalidArgument, + TooManyOpenFilesInSystem, + TooManyOpenFiles, + InappropriateIoctlForDevice, + TextFileBusy, + FileTooLarge, + NoSpaceLeftOnDevice, + IllegalSeek, + ReadOnlyFileSystem, + TooManyLinks, + BrokenPipe, + NumericalArgumentOutOfDomain, + NumericalResultOutOfRange, + ResourceDeadlockAvoided, + FileNameTooLong, + NoLocksAvailable, + FunctionNotImplemented, + DirectoryNotEmpty, + TooManyLevelsOfSymbolicLinks, + NoMessageOfDesiredType, + IdentifierRemoved, + ChannelNumberOutOfRange, + Level2NotSynchronized, + Level3Halted, + Level3Reset, + LinkNumberOutOfRange, + ProtocolDriverNotAttached, + NoCSIStructureAvailable, + Level2Halted, + InvalidExchange, + InvalidRequestDescriptor, + ExchangeFull, + NoAnode, + InvalidRequestCode, + InvalidSlot, + BadFontFileFormat, + DeviceNotAStream, + NoDataAvailable, + TimerExpired, + OutOfStreamsResources, + MachineIsNotOnTheNetwork, + PackageNotInstalled, + ObjectIsRemote, + LinkHasBeenSevered, + AdvertiseError, + SrmountError, + CommunicationErrorOnSend, + ProtocolError, + MultihopAttempted, + RFSSpecificError, + BadMessage, + ValueTooLargeForDefinedDataType, + NameNotUniqueOnNetwork, + FileDescriptorInBadState, + RemoteAddressChanged, + CanNotAccessANeededSharedLibrary, + AccessingACorruptedSharedLibrary, + LibSectionInAOutCorrupted, + AttemptingToLinkInTooManySharedLibraries, + CannotExecASharedLibraryDirectly, + InvalidOrIncompleteMultibyteOrWideCharacter, + InterruptedSystemCallShouldBeRestarted, + StreamsPipeError, + TooManyUsers, + SocketOperationOnNonSocket, + DestinationAddressRequired, + MessageTooLong, + ProtocolWrongTypeForSocket, + ProtocolNotAvailable, + ProtocolNotSupported, + SocketTypeNotSupported, + OperationNotSupported, + ProtocolFamilyNotSupported, + AddressFamilyNotSupportedByProtocol, + AddressAlreadyInUse, + CannotAssignRequestedAddress, + NetworkIsDown, + NetworkIsUnreachable, + NetworkDroppedConnectionOnReset, + SoftwareCausedConnectionAbort, + ConnectionResetByPeer, + NoBufferSpaceAvailable, + TransportEndpointIsAlreadyConnected, + TransportEndpointIsNotConnected, + CannotSendAfterTransportEndpointShutdown, + TooManyReferences, + ConnectionTimedOut, + ConnectionRefused, + HostIsDown, + NoRouteToHost, + OperationAlreadyInProgress, + OperationNowInProgress, + StaleFileHandle, + StructureNeedsCleaning, + NotAXENIXNamedTypeFile, + NoXENIXSemaphoresAvailable, + IsANamedTypeFile, + RemoteIOError, + DiskQuotaExceeded, + NoMediumFound, + WrongMediumType, + OperationCanceled, + RequiredKeyNotAvailable, + KeyHasExpired, + KeyHasBeenRevoked, + KeyWasRejectedByService, + OwnerDied, + StateNotRecoverable, + OperationNotPossibleDueToRFKill, + MemoryPageHasHardwareError, +}; + +pub fn from_usize(errno: usize) CError!void { + const n = -@as(isize, @bitCast(errno)); + return switch (n) { + 1 => CError.OperationNotPermitted, + 2 => CError.NoSuchFileOrDirectory, + 3 => CError.NoSuchProcess, + 4 => CError.InterruptedSystemCall, + 5 => CError.InputOutputError, + 6 => CError.NoSuchDeviceOrAddress, + 7 => CError.ArgumentListTooLong, + 8 => CError.ExecFormatError, + 9 => CError.BadFileDescriptor, + 10 => CError.NoChildProcesses, + 11 => CError.ResourceTemporarilyUnavailable, + 12 => CError.CannotAllocateMemory, + 13 => CError.PermissionDenied, + 14 => CError.BadAddress, + 15 => CError.BlockDeviceRequired, + 16 => CError.DeviceOrResourceBusy, + 17 => CError.FileExists, + 18 => CError.InvalidCrossDeviceLink, + 19 => CError.NoSuchDevice, + 20 => CError.NotADirectory, + 21 => CError.IsADirectory, + 22 => CError.InvalidArgument, + 23 => CError.TooManyOpenFilesInSystem, + 24 => CError.TooManyOpenFiles, + 25 => CError.InappropriateIoctlForDevice, + 26 => CError.TextFileBusy, + 27 => CError.FileTooLarge, + 28 => CError.NoSpaceLeftOnDevice, + 29 => CError.IllegalSeek, + 30 => CError.ReadOnlyFileSystem, + 31 => CError.TooManyLinks, + 32 => CError.BrokenPipe, + 33 => CError.NumericalArgumentOutOfDomain, + 34 => CError.NumericalResultOutOfRange, + 35 => CError.ResourceDeadlockAvoided, + 36 => CError.FileNameTooLong, + 37 => CError.NoLocksAvailable, + 38 => CError.FunctionNotImplemented, + 39 => CError.DirectoryNotEmpty, + 40 => CError.TooManyLevelsOfSymbolicLinks, + 42 => CError.NoMessageOfDesiredType, + 43 => CError.IdentifierRemoved, + 44 => CError.ChannelNumberOutOfRange, + 45 => CError.Level2NotSynchronized, + 46 => CError.Level3Halted, + 47 => CError.Level3Reset, + 48 => CError.LinkNumberOutOfRange, + 49 => CError.ProtocolDriverNotAttached, + 50 => CError.NoCSIStructureAvailable, + 51 => CError.Level2Halted, + 52 => CError.InvalidExchange, + 53 => CError.InvalidRequestDescriptor, + 54 => CError.ExchangeFull, + 55 => CError.NoAnode, + 56 => CError.InvalidRequestCode, + 57 => CError.InvalidSlot, + 59 => CError.BadFontFileFormat, + 60 => CError.DeviceNotAStream, + 61 => CError.NoDataAvailable, + 62 => CError.TimerExpired, + 63 => CError.OutOfStreamsResources, + 64 => CError.MachineIsNotOnTheNetwork, + 65 => CError.PackageNotInstalled, + 66 => CError.ObjectIsRemote, + 67 => CError.LinkHasBeenSevered, + 68 => CError.AdvertiseError, + 69 => CError.SrmountError, + 70 => CError.CommunicationErrorOnSend, + 71 => CError.ProtocolError, + 72 => CError.MultihopAttempted, + 73 => CError.RFSSpecificError, + 74 => CError.BadMessage, + 75 => CError.ValueTooLargeForDefinedDataType, + 76 => CError.NameNotUniqueOnNetwork, + 77 => CError.FileDescriptorInBadState, + 78 => CError.RemoteAddressChanged, + 79 => CError.CanNotAccessANeededSharedLibrary, + 80 => CError.AccessingACorruptedSharedLibrary, + 81 => CError.LibSectionInAOutCorrupted, + 82 => CError.AttemptingToLinkInTooManySharedLibraries, + 83 => CError.CannotExecASharedLibraryDirectly, + 84 => CError.InvalidOrIncompleteMultibyteOrWideCharacter, + 85 => CError.InterruptedSystemCallShouldBeRestarted, + 86 => CError.StreamsPipeError, + 87 => CError.TooManyUsers, + 88 => CError.SocketOperationOnNonSocket, + 89 => CError.DestinationAddressRequired, + 90 => CError.MessageTooLong, + 91 => CError.ProtocolWrongTypeForSocket, + 92 => CError.ProtocolNotAvailable, + 93 => CError.ProtocolNotSupported, + 94 => CError.SocketTypeNotSupported, + 95 => CError.OperationNotSupported, + 96 => CError.ProtocolFamilyNotSupported, + 97 => CError.AddressFamilyNotSupportedByProtocol, + 98 => CError.AddressAlreadyInUse, + 99 => CError.CannotAssignRequestedAddress, + 100 => CError.NetworkIsDown, + 101 => CError.NetworkIsUnreachable, + 102 => CError.NetworkDroppedConnectionOnReset, + 103 => CError.SoftwareCausedConnectionAbort, + 104 => CError.ConnectionResetByPeer, + 105 => CError.NoBufferSpaceAvailable, + 106 => CError.TransportEndpointIsAlreadyConnected, + 107 => CError.TransportEndpointIsNotConnected, + 108 => CError.CannotSendAfterTransportEndpointShutdown, + 109 => CError.TooManyReferences, + 110 => CError.ConnectionTimedOut, + 111 => CError.ConnectionRefused, + 112 => CError.HostIsDown, + 113 => CError.NoRouteToHost, + 114 => CError.OperationAlreadyInProgress, + 115 => CError.OperationNowInProgress, + 116 => CError.StaleFileHandle, + 117 => CError.StructureNeedsCleaning, + 118 => CError.NotAXENIXNamedTypeFile, + 119 => CError.NoXENIXSemaphoresAvailable, + 120 => CError.IsANamedTypeFile, + 121 => CError.RemoteIOError, + 122 => CError.DiskQuotaExceeded, + 123 => CError.NoMediumFound, + 124 => CError.WrongMediumType, + 125 => CError.OperationCanceled, + 126 => CError.RequiredKeyNotAvailable, + 127 => CError.KeyHasExpired, + 128 => CError.KeyHasBeenRevoked, + 129 => CError.KeyWasRejectedByService, + 130 => CError.OwnerDied, + 131 => CError.StateNotRecoverable, + 132 => CError.OperationNotPossibleDueToRFKill, + 133 => CError.MemoryPageHasHardwareError, + else => void{} + }; +} |