summaryrefslogtreecommitdiff
path: root/src/screen/cerror.zig
blob: 15f3f247ffdf51a5b6aa041b564dca132aab3d93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
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{}
};
}