Line data Source code
1 : /*
2 : Copyright 2018-2024, Barcelona Supercomputing Center (BSC), Spain
3 : Copyright 2015-2024, Johannes Gutenberg Universitaet Mainz, Germany
4 :
5 : This software was partially supported by the
6 : EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu).
7 :
8 : This software was partially supported by the
9 : ADA-FS project under the SPPEXA project funded by the DFG.
10 :
11 : This file is part of GekkoFS' POSIX interface.
12 :
13 : GekkoFS' POSIX interface is free software: you can redistribute it and/or
14 : modify it under the terms of the GNU Lesser General Public License as
15 : published by the Free Software Foundation, either version 3 of the License,
16 : or (at your option) any later version.
17 :
18 : GekkoFS' POSIX interface is distributed in the hope that it will be useful,
19 : but WITHOUT ANY WARRANTY; without even the implied warranty of
20 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 : GNU Lesser General Public License for more details.
22 :
23 : You should have received a copy of the GNU Lesser General Public License
24 : along with GekkoFS' POSIX interface. If not, see
25 : <https://www.gnu.org/licenses/>.
26 :
27 : SPDX-License-Identifier: LGPL-3.0-or-later
28 : */
29 :
30 : #ifndef GKFS_SYSCALLS_ERRNO_HPP
31 : #define GKFS_SYSCALLS_ERRNO_HPP
32 :
33 : #include <array>
34 : #include <string>
35 :
36 : namespace gkfs::syscall {
37 :
38 : static const std::array<const char* const, 531> errno_names = {
39 : /* [ 0] = */ NULL,
40 : /* [ 1] = */ "EPERM",
41 : /* [ 2] = */ "ENOENT",
42 : /* [ 3] = */ "ESRCH",
43 : /* [ 4] = */ "EINTR",
44 : /* [ 5] = */ "EIO",
45 : /* [ 6] = */ "ENXIO",
46 : /* [ 7] = */ "E2BIG",
47 : /* [ 8] = */ "ENOEXEC",
48 : /* [ 9] = */ "EBADF",
49 : /* [ 10] = */ "ECHILD",
50 : /* [ 11] = */ "EAGAIN",
51 : /* [ 12] = */ "ENOMEM",
52 : /* [ 13] = */ "EACCES",
53 : /* [ 14] = */ "EFAULT",
54 : /* [ 15] = */ "ENOTBLK",
55 : /* [ 16] = */ "EBUSY",
56 : /* [ 17] = */ "EEXIST",
57 : /* [ 18] = */ "EXDEV",
58 : /* [ 19] = */ "ENODEV",
59 : /* [ 20] = */ "ENOTDIR",
60 : /* [ 21] = */ "EISDIR",
61 : /* [ 22] = */ "EINVAL",
62 : /* [ 23] = */ "ENFILE",
63 : /* [ 24] = */ "EMFILE",
64 : /* [ 25] = */ "ENOTTY",
65 : /* [ 26] = */ "ETXTBSY",
66 : /* [ 27] = */ "EFBIG",
67 : /* [ 28] = */ "ENOSPC",
68 : /* [ 29] = */ "ESPIPE",
69 : /* [ 30] = */ "EROFS",
70 : /* [ 31] = */ "EMLINK",
71 : /* [ 32] = */ "EPIPE",
72 : /* [ 33] = */ "EDOM",
73 : /* [ 34] = */ "ERANGE",
74 : /* [ 35] = */ "EDEADLK",
75 : /* [ 36] = */ "ENAMETOOLONG",
76 : /* [ 37] = */ "ENOLCK",
77 : /* [ 38] = */ "ENOSYS",
78 : /* [ 39] = */ "ENOTEMPTY",
79 : /* [ 40] = */ "ELOOP",
80 : /* [ 41] = */ NULL,
81 : /* [ 42] = */ "ENOMSG",
82 : /* [ 43] = */ "EIDRM",
83 : /* [ 44] = */ "ECHRNG",
84 : /* [ 45] = */ "EL2NSYNC",
85 : /* [ 46] = */ "EL3HLT",
86 : /* [ 47] = */ "EL3RST",
87 : /* [ 48] = */ "ELNRNG",
88 : /* [ 49] = */ "EUNATCH",
89 : /* [ 50] = */ "ENOCSI",
90 : /* [ 51] = */ "EL2HLT",
91 : /* [ 52] = */ "EBADE",
92 : /* [ 53] = */ "EBADR",
93 : /* [ 54] = */ "EXFULL",
94 : /* [ 55] = */ "ENOANO",
95 : /* [ 56] = */ "EBADRQC",
96 : /* [ 57] = */ "EBADSLT",
97 : /* [ 58] = */ NULL,
98 : /* [ 59] = */ "EBFONT",
99 : /* [ 60] = */ "ENOSTR",
100 : /* [ 61] = */ "ENODATA",
101 : /* [ 62] = */ "ETIME",
102 : /* [ 63] = */ "ENOSR",
103 : /* [ 64] = */ "ENONET",
104 : /* [ 65] = */ "ENOPKG",
105 : /* [ 66] = */ "EREMOTE",
106 : /* [ 67] = */ "ENOLINK",
107 : /* [ 68] = */ "EADV",
108 : /* [ 69] = */ "ESRMNT",
109 : /* [ 70] = */ "ECOMM",
110 : /* [ 71] = */ "EPROTO",
111 : /* [ 72] = */ "EMULTIHOP",
112 : /* [ 73] = */ "EDOTDOT",
113 : /* [ 74] = */ "EBADMSG",
114 : /* [ 75] = */ "EOVERFLOW",
115 : /* [ 76] = */ "ENOTUNIQ",
116 : /* [ 77] = */ "EBADFD",
117 : /* [ 78] = */ "EREMCHG",
118 : /* [ 79] = */ "ELIBACC",
119 : /* [ 80] = */ "ELIBBAD",
120 : /* [ 81] = */ "ELIBSCN",
121 : /* [ 82] = */ "ELIBMAX",
122 : /* [ 83] = */ "ELIBEXEC",
123 : /* [ 84] = */ "EILSEQ",
124 : /* [ 85] = */ "ERESTART",
125 : /* [ 86] = */ "ESTRPIPE",
126 : /* [ 87] = */ "EUSERS",
127 : /* [ 88] = */ "ENOTSOCK",
128 : /* [ 89] = */ "EDESTADDRREQ",
129 : /* [ 90] = */ "EMSGSIZE",
130 : /* [ 91] = */ "EPROTOTYPE",
131 : /* [ 92] = */ "ENOPROTOOPT",
132 : /* [ 93] = */ "EPROTONOSUPPORT",
133 : /* [ 94] = */ "ESOCKTNOSUPPORT",
134 : /* [ 95] = */ "EOPNOTSUPP",
135 : /* [ 96] = */ "EPFNOSUPPORT",
136 : /* [ 97] = */ "EAFNOSUPPORT",
137 : /* [ 98] = */ "EADDRINUSE",
138 : /* [ 99] = */ "EADDRNOTAVAIL",
139 : /* [100] = */ "ENETDOWN",
140 : /* [101] = */ "ENETUNREACH",
141 : /* [102] = */ "ENETRESET",
142 : /* [103] = */ "ECONNABORTED",
143 : /* [104] = */ "ECONNRESET",
144 : /* [105] = */ "ENOBUFS",
145 : /* [106] = */ "EISCONN",
146 : /* [107] = */ "ENOTCONN",
147 : /* [108] = */ "ESHUTDOWN",
148 : /* [109] = */ "ETOOMANYREFS",
149 : /* [110] = */ "ETIMEDOUT",
150 : /* [111] = */ "ECONNREFUSED",
151 : /* [112] = */ "EHOSTDOWN",
152 : /* [113] = */ "EHOSTUNREACH",
153 : /* [114] = */ "EALREADY",
154 : /* [115] = */ "EINPROGRESS",
155 : /* [116] = */ "ESTALE",
156 : /* [117] = */ "EUCLEAN",
157 : /* [118] = */ "ENOTNAM",
158 : /* [119] = */ "ENAVAIL",
159 : /* [120] = */ "EISNAM",
160 : /* [121] = */ "EREMOTEIO",
161 : /* [122] = */ "EDQUOT",
162 : /* [123] = */ "ENOMEDIUM",
163 : /* [124] = */ "EMEDIUMTYPE",
164 : /* [125] = */ "ECANCELED",
165 : /* [126] = */ "ENOKEY",
166 : /* [127] = */ "EKEYEXPIRED",
167 : /* [128] = */ "EKEYREVOKED",
168 : /* [129] = */ "EKEYREJECTED",
169 : /* [130] = */ "EOWNERDEAD",
170 : /* [131] = */ "ENOTRECOVERABLE",
171 : /* [132] = */ "ERFKILL",
172 : /* [133] = */ "EHWPOISON",
173 : /* [134] = */ NULL,
174 : /* [135] = */ NULL,
175 : /* [136] = */ NULL,
176 : /* [137] = */ NULL,
177 : /* [138] = */ NULL,
178 : /* [139] = */ NULL,
179 : /* [140] = */ NULL,
180 : /* [141] = */ NULL,
181 : /* [142] = */ NULL,
182 : /* [143] = */ NULL,
183 : /* [144] = */ NULL,
184 : /* [145] = */ NULL,
185 : /* [146] = */ NULL,
186 : /* [147] = */ NULL,
187 : /* [148] = */ NULL,
188 : /* [149] = */ NULL,
189 : /* [150] = */ NULL,
190 : /* [151] = */ NULL,
191 : /* [152] = */ NULL,
192 : /* [153] = */ NULL,
193 : /* [154] = */ NULL,
194 : /* [155] = */ NULL,
195 : /* [156] = */ NULL,
196 : /* [157] = */ NULL,
197 : /* [158] = */ NULL,
198 : /* [159] = */ NULL,
199 : /* [160] = */ NULL,
200 : /* [161] = */ NULL,
201 : /* [162] = */ NULL,
202 : /* [163] = */ NULL,
203 : /* [164] = */ NULL,
204 : /* [165] = */ NULL,
205 : /* [166] = */ NULL,
206 : /* [167] = */ NULL,
207 : /* [168] = */ NULL,
208 : /* [169] = */ NULL,
209 : /* [170] = */ NULL,
210 : /* [171] = */ NULL,
211 : /* [172] = */ NULL,
212 : /* [173] = */ NULL,
213 : /* [174] = */ NULL,
214 : /* [175] = */ NULL,
215 : /* [176] = */ NULL,
216 : /* [177] = */ NULL,
217 : /* [178] = */ NULL,
218 : /* [179] = */ NULL,
219 : /* [180] = */ NULL,
220 : /* [181] = */ NULL,
221 : /* [182] = */ NULL,
222 : /* [183] = */ NULL,
223 : /* [184] = */ NULL,
224 : /* [185] = */ NULL,
225 : /* [186] = */ NULL,
226 : /* [187] = */ NULL,
227 : /* [188] = */ NULL,
228 : /* [189] = */ NULL,
229 : /* [190] = */ NULL,
230 : /* [191] = */ NULL,
231 : /* [192] = */ NULL,
232 : /* [193] = */ NULL,
233 : /* [194] = */ NULL,
234 : /* [195] = */ NULL,
235 : /* [196] = */ NULL,
236 : /* [197] = */ NULL,
237 : /* [198] = */ NULL,
238 : /* [199] = */ NULL,
239 : /* [200] = */ NULL,
240 : /* [201] = */ NULL,
241 : /* [202] = */ NULL,
242 : /* [203] = */ NULL,
243 : /* [204] = */ NULL,
244 : /* [205] = */ NULL,
245 : /* [206] = */ NULL,
246 : /* [207] = */ NULL,
247 : /* [208] = */ NULL,
248 : /* [209] = */ NULL,
249 : /* [210] = */ NULL,
250 : /* [211] = */ NULL,
251 : /* [212] = */ NULL,
252 : /* [213] = */ NULL,
253 : /* [214] = */ NULL,
254 : /* [215] = */ NULL,
255 : /* [216] = */ NULL,
256 : /* [217] = */ NULL,
257 : /* [218] = */ NULL,
258 : /* [219] = */ NULL,
259 : /* [220] = */ NULL,
260 : /* [221] = */ NULL,
261 : /* [222] = */ NULL,
262 : /* [223] = */ NULL,
263 : /* [224] = */ NULL,
264 : /* [225] = */ NULL,
265 : /* [226] = */ NULL,
266 : /* [227] = */ NULL,
267 : /* [228] = */ NULL,
268 : /* [229] = */ NULL,
269 : /* [230] = */ NULL,
270 : /* [231] = */ NULL,
271 : /* [232] = */ NULL,
272 : /* [233] = */ NULL,
273 : /* [234] = */ NULL,
274 : /* [235] = */ NULL,
275 : /* [236] = */ NULL,
276 : /* [237] = */ NULL,
277 : /* [238] = */ NULL,
278 : /* [239] = */ NULL,
279 : /* [240] = */ NULL,
280 : /* [241] = */ NULL,
281 : /* [242] = */ NULL,
282 : /* [243] = */ NULL,
283 : /* [244] = */ NULL,
284 : /* [245] = */ NULL,
285 : /* [246] = */ NULL,
286 : /* [247] = */ NULL,
287 : /* [248] = */ NULL,
288 : /* [249] = */ NULL,
289 : /* [250] = */ NULL,
290 : /* [251] = */ NULL,
291 : /* [252] = */ NULL,
292 : /* [253] = */ NULL,
293 : /* [254] = */ NULL,
294 : /* [255] = */ NULL,
295 : /* [256] = */ NULL,
296 : /* [257] = */ NULL,
297 : /* [258] = */ NULL,
298 : /* [259] = */ NULL,
299 : /* [260] = */ NULL,
300 : /* [261] = */ NULL,
301 : /* [262] = */ NULL,
302 : /* [263] = */ NULL,
303 : /* [264] = */ NULL,
304 : /* [265] = */ NULL,
305 : /* [266] = */ NULL,
306 : /* [267] = */ NULL,
307 : /* [268] = */ NULL,
308 : /* [269] = */ NULL,
309 : /* [270] = */ NULL,
310 : /* [271] = */ NULL,
311 : /* [272] = */ NULL,
312 : /* [273] = */ NULL,
313 : /* [274] = */ NULL,
314 : /* [275] = */ NULL,
315 : /* [276] = */ NULL,
316 : /* [277] = */ NULL,
317 : /* [278] = */ NULL,
318 : /* [279] = */ NULL,
319 : /* [280] = */ NULL,
320 : /* [281] = */ NULL,
321 : /* [282] = */ NULL,
322 : /* [283] = */ NULL,
323 : /* [284] = */ NULL,
324 : /* [285] = */ NULL,
325 : /* [286] = */ NULL,
326 : /* [287] = */ NULL,
327 : /* [288] = */ NULL,
328 : /* [289] = */ NULL,
329 : /* [290] = */ NULL,
330 : /* [291] = */ NULL,
331 : /* [292] = */ NULL,
332 : /* [293] = */ NULL,
333 : /* [294] = */ NULL,
334 : /* [295] = */ NULL,
335 : /* [296] = */ NULL,
336 : /* [297] = */ NULL,
337 : /* [298] = */ NULL,
338 : /* [299] = */ NULL,
339 : /* [300] = */ NULL,
340 : /* [301] = */ NULL,
341 : /* [302] = */ NULL,
342 : /* [303] = */ NULL,
343 : /* [304] = */ NULL,
344 : /* [305] = */ NULL,
345 : /* [306] = */ NULL,
346 : /* [307] = */ NULL,
347 : /* [308] = */ NULL,
348 : /* [309] = */ NULL,
349 : /* [310] = */ NULL,
350 : /* [311] = */ NULL,
351 : /* [312] = */ NULL,
352 : /* [313] = */ NULL,
353 : /* [314] = */ NULL,
354 : /* [315] = */ NULL,
355 : /* [316] = */ NULL,
356 : /* [317] = */ NULL,
357 : /* [318] = */ NULL,
358 : /* [319] = */ NULL,
359 : /* [320] = */ NULL,
360 : /* [321] = */ NULL,
361 : /* [322] = */ NULL,
362 : /* [323] = */ NULL,
363 : /* [324] = */ NULL,
364 : /* [325] = */ NULL,
365 : /* [326] = */ NULL,
366 : /* [327] = */ NULL,
367 : /* [328] = */ NULL,
368 : /* [329] = */ NULL,
369 : /* [330] = */ NULL,
370 : /* [331] = */ NULL,
371 : /* [332] = */ NULL,
372 : /* [333] = */ NULL,
373 : /* [334] = */ NULL,
374 : /* [335] = */ NULL,
375 : /* [336] = */ NULL,
376 : /* [337] = */ NULL,
377 : /* [338] = */ NULL,
378 : /* [339] = */ NULL,
379 : /* [340] = */ NULL,
380 : /* [341] = */ NULL,
381 : /* [342] = */ NULL,
382 : /* [343] = */ NULL,
383 : /* [344] = */ NULL,
384 : /* [345] = */ NULL,
385 : /* [346] = */ NULL,
386 : /* [347] = */ NULL,
387 : /* [348] = */ NULL,
388 : /* [349] = */ NULL,
389 : /* [350] = */ NULL,
390 : /* [351] = */ NULL,
391 : /* [352] = */ NULL,
392 : /* [353] = */ NULL,
393 : /* [354] = */ NULL,
394 : /* [355] = */ NULL,
395 : /* [356] = */ NULL,
396 : /* [357] = */ NULL,
397 : /* [358] = */ NULL,
398 : /* [359] = */ NULL,
399 : /* [360] = */ NULL,
400 : /* [361] = */ NULL,
401 : /* [362] = */ NULL,
402 : /* [363] = */ NULL,
403 : /* [364] = */ NULL,
404 : /* [365] = */ NULL,
405 : /* [366] = */ NULL,
406 : /* [367] = */ NULL,
407 : /* [368] = */ NULL,
408 : /* [369] = */ NULL,
409 : /* [370] = */ NULL,
410 : /* [371] = */ NULL,
411 : /* [372] = */ NULL,
412 : /* [373] = */ NULL,
413 : /* [374] = */ NULL,
414 : /* [375] = */ NULL,
415 : /* [376] = */ NULL,
416 : /* [377] = */ NULL,
417 : /* [378] = */ NULL,
418 : /* [379] = */ NULL,
419 : /* [380] = */ NULL,
420 : /* [381] = */ NULL,
421 : /* [382] = */ NULL,
422 : /* [383] = */ NULL,
423 : /* [384] = */ NULL,
424 : /* [385] = */ NULL,
425 : /* [386] = */ NULL,
426 : /* [387] = */ NULL,
427 : /* [388] = */ NULL,
428 : /* [389] = */ NULL,
429 : /* [390] = */ NULL,
430 : /* [391] = */ NULL,
431 : /* [392] = */ NULL,
432 : /* [393] = */ NULL,
433 : /* [394] = */ NULL,
434 : /* [395] = */ NULL,
435 : /* [396] = */ NULL,
436 : /* [397] = */ NULL,
437 : /* [398] = */ NULL,
438 : /* [399] = */ NULL,
439 : /* [400] = */ NULL,
440 : /* [401] = */ NULL,
441 : /* [402] = */ NULL,
442 : /* [403] = */ NULL,
443 : /* [404] = */ NULL,
444 : /* [405] = */ NULL,
445 : /* [406] = */ NULL,
446 : /* [407] = */ NULL,
447 : /* [408] = */ NULL,
448 : /* [409] = */ NULL,
449 : /* [410] = */ NULL,
450 : /* [411] = */ NULL,
451 : /* [412] = */ NULL,
452 : /* [413] = */ NULL,
453 : /* [414] = */ NULL,
454 : /* [415] = */ NULL,
455 : /* [416] = */ NULL,
456 : /* [417] = */ NULL,
457 : /* [418] = */ NULL,
458 : /* [419] = */ NULL,
459 : /* [420] = */ NULL,
460 : /* [421] = */ NULL,
461 : /* [422] = */ NULL,
462 : /* [423] = */ NULL,
463 : /* [424] = */ NULL,
464 : /* [425] = */ NULL,
465 : /* [426] = */ NULL,
466 : /* [427] = */ NULL,
467 : /* [428] = */ NULL,
468 : /* [429] = */ NULL,
469 : /* [430] = */ NULL,
470 : /* [431] = */ NULL,
471 : /* [432] = */ NULL,
472 : /* [433] = */ NULL,
473 : /* [434] = */ NULL,
474 : /* [435] = */ NULL,
475 : /* [436] = */ NULL,
476 : /* [437] = */ NULL,
477 : /* [438] = */ NULL,
478 : /* [439] = */ NULL,
479 : /* [440] = */ NULL,
480 : /* [441] = */ NULL,
481 : /* [442] = */ NULL,
482 : /* [443] = */ NULL,
483 : /* [444] = */ NULL,
484 : /* [445] = */ NULL,
485 : /* [446] = */ NULL,
486 : /* [447] = */ NULL,
487 : /* [448] = */ NULL,
488 : /* [449] = */ NULL,
489 : /* [450] = */ NULL,
490 : /* [451] = */ NULL,
491 : /* [452] = */ NULL,
492 : /* [453] = */ NULL,
493 : /* [454] = */ NULL,
494 : /* [455] = */ NULL,
495 : /* [456] = */ NULL,
496 : /* [457] = */ NULL,
497 : /* [458] = */ NULL,
498 : /* [459] = */ NULL,
499 : /* [460] = */ NULL,
500 : /* [461] = */ NULL,
501 : /* [462] = */ NULL,
502 : /* [463] = */ NULL,
503 : /* [464] = */ NULL,
504 : /* [465] = */ NULL,
505 : /* [466] = */ NULL,
506 : /* [467] = */ NULL,
507 : /* [468] = */ NULL,
508 : /* [469] = */ NULL,
509 : /* [470] = */ NULL,
510 : /* [471] = */ NULL,
511 : /* [472] = */ NULL,
512 : /* [473] = */ NULL,
513 : /* [474] = */ NULL,
514 : /* [475] = */ NULL,
515 : /* [476] = */ NULL,
516 : /* [477] = */ NULL,
517 : /* [478] = */ NULL,
518 : /* [479] = */ NULL,
519 : /* [480] = */ NULL,
520 : /* [481] = */ NULL,
521 : /* [482] = */ NULL,
522 : /* [483] = */ NULL,
523 : /* [484] = */ NULL,
524 : /* [485] = */ NULL,
525 : /* [486] = */ NULL,
526 : /* [487] = */ NULL,
527 : /* [488] = */ NULL,
528 : /* [489] = */ NULL,
529 : /* [490] = */ NULL,
530 : /* [491] = */ NULL,
531 : /* [492] = */ NULL,
532 : /* [493] = */ NULL,
533 : /* [494] = */ NULL,
534 : /* [495] = */ NULL,
535 : /* [496] = */ NULL,
536 : /* [497] = */ NULL,
537 : /* [498] = */ NULL,
538 : /* [499] = */ NULL,
539 : /* [500] = */ NULL,
540 : /* [501] = */ NULL,
541 : /* [502] = */ NULL,
542 : /* [503] = */ NULL,
543 : /* [504] = */ NULL,
544 : /* [505] = */ NULL,
545 : /* [506] = */ NULL,
546 : /* [507] = */ NULL,
547 : /* [508] = */ NULL,
548 : /* [509] = */ NULL,
549 : /* [510] = */ NULL,
550 : /* [511] = */ NULL,
551 : /* [512] = */ "ERESTARTSYS",
552 : /* [513] = */ "ERESTARTNOINTR",
553 : /* [514] = */ "ERESTARTNOHAND",
554 : /* [515] = */ "ENOIOCTLCMD",
555 : /* [516] = */ "ERESTART_RESTARTBLOCK",
556 : /* [517] = */ "EPROBE_DEFER",
557 : /* [518] = */ "EOPENSTALE",
558 : /* [519] = */ NULL,
559 : /* [520] = */ NULL,
560 : /* [521] = */ "EBADHANDLE",
561 : /* [522] = */ "ENOTSYNC",
562 : /* [523] = */ "EBADCOOKIE",
563 : /* [524] = */ "ENOTSUPP",
564 : /* [525] = */ "ETOOSMALL",
565 : /* [526] = */ "ESERVERFAULT",
566 : /* [527] = */ "EBADTYPE",
567 : /* [528] = */ "EJUKEBOX",
568 : /* [529] = */ "EIOCBQUEUED",
569 : /* [530] = */ "ERECALLCONFLICT",
570 : };
571 :
572 : static inline std::string
573 4976 : errno_name(int errno_value) {
574 :
575 4976 : const auto name = errno_names.at(errno_value);
576 :
577 4976 : if(!name) {
578 0 : return "EUNKNOWN";
579 : }
580 :
581 4976 : return name;
582 : }
583 :
584 : static inline std::string
585 4976 : errno_message(int errno_value) {
586 : // 1024 should be more than enough for most locales
587 4976 : constexpr const std::size_t MAX_ERROR_MSG = 0x400;
588 4976 : std::array<char, MAX_ERROR_MSG> errstr;
589 4976 : char* msg = ::strerror_r(errno_value, errstr.data(), MAX_ERROR_MSG);
590 4976 : return std::string{msg};
591 : }
592 :
593 : } // namespace gkfs::syscall
594 :
595 : #endif // GKFS_SYSCALLS_ERRNO_HPP
|