Coverage Report

Created: 2024-09-03 06:26

/src/freeimage-svn/FreeImage/trunk/Source/OpenEXR/Iex/IexThrowErrnoExc.cpp
Line
Count
Source (jump to first uncovered line)
1
///////////////////////////////////////////////////////////////////////////
2
//
3
// Copyright (c) 2002-2012, Industrial Light & Magic, a division of Lucas
4
// Digital Ltd. LLC
5
// 
6
// All rights reserved.
7
// 
8
// Redistribution and use in source and binary forms, with or without
9
// modification, are permitted provided that the following conditions are
10
// met:
11
// *       Redistributions of source code must retain the above copyright
12
// notice, this list of conditions and the following disclaimer.
13
// *       Redistributions in binary form must reproduce the above
14
// copyright notice, this list of conditions and the following disclaimer
15
// in the documentation and/or other materials provided with the
16
// distribution.
17
// *       Neither the name of Industrial Light & Magic nor the names of
18
// its contributors may be used to endorse or promote products derived
19
// from this software without specific prior written permission. 
20
// 
21
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
//
33
///////////////////////////////////////////////////////////////////////////
34
35
36
37
//----------------------------------------------------------------
38
//
39
//  Exceptions that correspond to "errno" error codes,
40
//  and a function to make throwing those exceptions easy.
41
//
42
//----------------------------------------------------------------
43
44
#include "IexThrowErrnoExc.h"
45
#include "IexErrnoExc.h"
46
#include <string.h>
47
#include <errno.h>
48
49
#ifdef PLATFORM_WINDOWS
50
#include <windows.h>
51
#endif
52
53
IEX_INTERNAL_NAMESPACE_SOURCE_ENTER
54
55
56
void throwErrnoExc (const std::string &text, int errnum)
57
0
{
58
#ifdef PLATFORM_WINDOWS
59
    if (0 != getenv("IEXDEBUGTHROW"))
60
        DebugBreak();
61
#endif
62
63
0
    const char *entext = strerror (errnum);
64
0
    std::string tmp (text);
65
0
    std::string::size_type pos;
66
67
0
    while (std::string::npos != (pos = tmp.find ("%T")))
68
0
  tmp.replace (pos, 2, entext, strlen (entext));
69
70
0
    switch (errnum)
71
0
    {
72
0
      #if defined (EPERM)
73
0
    case EPERM:
74
0
      throw EpermExc (tmp);
75
0
      #endif
76
77
0
      #if defined (ENOENT)
78
0
    case ENOENT:
79
0
      throw EnoentExc (tmp);
80
0
      #endif
81
82
0
      #if defined (ESRCH)
83
0
    case ESRCH:
84
0
      throw EsrchExc (tmp);
85
0
      #endif
86
87
0
      #if defined (EINTR)
88
0
    case EINTR:
89
0
      throw EintrExc (tmp);
90
0
      #endif
91
92
0
      #if defined (EIO)
93
0
    case EIO:
94
0
      throw EioExc (tmp);
95
0
      #endif
96
97
0
      #if defined (ENXIO)
98
0
    case ENXIO:
99
0
      throw EnxioExc (tmp);
100
0
      #endif
101
102
0
      #if defined (E2BIG)
103
0
    case E2BIG:
104
0
      throw E2bigExc (tmp);
105
0
      #endif
106
107
0
      #if defined (ENOEXEC)
108
0
    case ENOEXEC:
109
0
      throw EnoexecExc (tmp);
110
0
      #endif
111
112
0
      #if defined (EBADF)
113
0
    case EBADF:
114
0
      throw EbadfExc (tmp);
115
0
      #endif
116
117
0
      #if defined (ECHILD)
118
0
    case ECHILD:
119
0
      throw EchildExc (tmp);
120
0
      #endif
121
122
0
      #if defined (EAGAIN)
123
0
    case EAGAIN:
124
0
      throw EagainExc (tmp);
125
0
      #endif
126
127
0
      #if defined (ENOMEM)
128
0
    case ENOMEM:
129
0
      throw EnomemExc (tmp);
130
0
      #endif
131
132
0
      #if defined (EACCES)
133
0
    case EACCES:
134
0
      throw EaccesExc (tmp);
135
0
      #endif
136
137
0
      #if defined (EFAULT)
138
0
    case EFAULT:
139
0
      throw EfaultExc (tmp);
140
0
      #endif
141
142
0
      #if defined (ENOTBLK)
143
0
    case ENOTBLK:
144
0
      throw EnotblkExc (tmp);
145
0
      #endif
146
147
0
      #if defined (EBUSY)
148
0
    case EBUSY:
149
0
      throw EbusyExc (tmp);
150
0
      #endif
151
152
0
      #if defined (EEXIST)
153
0
    case EEXIST:
154
0
      throw EexistExc (tmp);
155
0
      #endif
156
157
0
      #if defined (EXDEV)
158
0
    case EXDEV:
159
0
      throw ExdevExc (tmp);
160
0
      #endif
161
162
0
      #if defined (ENODEV)
163
0
    case ENODEV:
164
0
      throw EnodevExc (tmp);
165
0
      #endif
166
167
0
      #if defined (ENOTDIR)
168
0
    case ENOTDIR:
169
0
      throw EnotdirExc (tmp);
170
0
      #endif
171
172
0
      #if defined (EISDIR)
173
0
    case EISDIR:
174
0
      throw EisdirExc (tmp);
175
0
      #endif
176
177
0
      #if defined (EINVAL)
178
0
    case EINVAL:
179
0
      throw EinvalExc (tmp);
180
0
      #endif
181
182
0
      #if defined (ENFILE)
183
0
    case ENFILE:
184
0
      throw EnfileExc (tmp);
185
0
      #endif
186
187
0
      #if defined (EMFILE)
188
0
    case EMFILE:
189
0
      throw EmfileExc (tmp);
190
0
      #endif
191
192
0
      #if defined (ENOTTY)
193
0
    case ENOTTY:
194
0
      throw EnottyExc (tmp);
195
0
      #endif
196
197
0
      #if defined (ETXTBSY)
198
0
    case ETXTBSY:
199
0
      throw EtxtbsyExc (tmp);
200
0
      #endif
201
202
0
      #if defined (EFBIG)
203
0
    case EFBIG:
204
0
      throw EfbigExc (tmp);
205
0
      #endif
206
207
0
      #if defined (ENOSPC)
208
0
    case ENOSPC:
209
0
      throw EnospcExc (tmp);
210
0
      #endif
211
212
0
      #if defined (ESPIPE)
213
0
    case ESPIPE:
214
0
      throw EspipeExc (tmp);
215
0
      #endif
216
217
0
      #if defined (EROFS)
218
0
    case EROFS:
219
0
      throw ErofsExc (tmp);
220
0
      #endif
221
222
0
      #if defined (EMLINK)
223
0
    case EMLINK:
224
0
      throw EmlinkExc (tmp);
225
0
      #endif
226
227
0
      #if defined (EPIPE)
228
0
    case EPIPE:
229
0
      throw EpipeExc (tmp);
230
0
      #endif
231
232
0
      #if defined (EDOM)
233
0
    case EDOM:
234
0
      throw EdomExc (tmp);
235
0
      #endif
236
237
0
      #if defined (ERANGE)
238
0
    case ERANGE:
239
0
      throw ErangeExc (tmp);
240
0
      #endif
241
242
0
      #if defined (ENOMSG)
243
0
    case ENOMSG:
244
0
      throw EnomsgExc (tmp);
245
0
      #endif
246
247
0
      #if defined (EIDRM)
248
0
    case EIDRM:
249
0
      throw EidrmExc (tmp);
250
0
      #endif
251
252
0
      #if defined (ECHRNG)
253
0
    case ECHRNG:
254
0
      throw EchrngExc (tmp);
255
0
      #endif
256
257
0
      #if defined (EL2NSYNC)
258
0
    case EL2NSYNC:
259
0
      throw El2nsyncExc (tmp);
260
0
      #endif
261
262
0
      #if defined (EL3HLT)
263
0
    case EL3HLT:
264
0
      throw El3hltExc (tmp);
265
0
      #endif
266
267
0
      #if defined (EL3RST)
268
0
    case EL3RST:
269
0
      throw El3rstExc (tmp);
270
0
      #endif
271
272
0
      #if defined (ELNRNG)
273
0
    case ELNRNG:
274
0
      throw ElnrngExc (tmp);
275
0
      #endif
276
277
0
      #if defined (EUNATCH)
278
0
    case EUNATCH:
279
0
      throw EunatchExc (tmp);
280
0
      #endif
281
282
      #if defined (ENOSCI)
283
    case ENOCSI:
284
      throw EnocsiExc (tmp);
285
      #endif
286
287
0
      #if defined (EL2HLT)
288
0
    case EL2HLT:
289
0
      throw El2hltExc (tmp);
290
0
      #endif
291
292
0
      #if defined (EDEADLK)
293
0
    case EDEADLK:
294
0
      throw EdeadlkExc (tmp);
295
0
      #endif
296
297
0
      #if defined (ENOLCK)
298
0
    case ENOLCK:
299
0
      throw EnolckExc (tmp);
300
0
      #endif
301
302
0
      #if defined (EBADE)
303
0
    case EBADE:
304
0
      throw EbadeExc (tmp);
305
0
      #endif
306
307
0
      #if defined (EBADR)
308
0
    case EBADR:
309
0
      throw EbadrExc (tmp);
310
0
      #endif
311
312
0
      #if defined (EXFULL)
313
0
    case EXFULL:
314
0
      throw ExfullExc (tmp);
315
0
      #endif
316
317
0
      #if defined (ENOANO)
318
0
    case ENOANO:
319
0
      throw EnoanoExc (tmp);
320
0
      #endif
321
322
0
      #if defined (EBADRQC)
323
0
    case EBADRQC:
324
0
      throw EbadrqcExc (tmp);
325
0
      #endif
326
327
0
      #if defined (EBADSLT)
328
0
    case EBADSLT:
329
0
      throw EbadsltExc (tmp);
330
0
      #endif
331
332
0
      #if defined (EDEADLOCK) && defined (EDEADLK)
333
    #if EDEADLOCK != EDEADLK
334
        case EDEADLOCK:
335
    throw EdeadlockExc (tmp);
336
    #endif
337
      #elif defined (EDEADLOCK)
338
    case EDEADLOCK:
339
      throw EdeadlockExc (tmp);
340
      #endif
341
342
0
      #if defined (EBFONT)
343
0
    case EBFONT:
344
0
      throw EbfontExc (tmp);
345
0
      #endif
346
347
0
      #if defined (ENOSTR)
348
0
    case ENOSTR:
349
0
      throw EnostrExc (tmp);
350
0
      #endif
351
352
0
      #if defined (ENODATA)
353
0
    case ENODATA:
354
0
      throw EnodataExc (tmp);
355
0
      #endif
356
357
0
      #if defined (ETIME)
358
0
    case ETIME:
359
0
      throw EtimeExc (tmp);
360
0
      #endif
361
362
0
      #if defined (ENOSR)
363
0
    case ENOSR:
364
0
      throw EnosrExc (tmp);
365
0
      #endif
366
367
0
      #if defined (ENONET)
368
0
    case ENONET:
369
0
      throw EnonetExc (tmp);
370
0
      #endif
371
372
0
      #if defined (ENOPKG)
373
0
    case ENOPKG:
374
0
      throw EnopkgExc (tmp);
375
0
      #endif
376
377
0
      #if defined (EREMOTE)
378
0
    case EREMOTE:
379
0
      throw EremoteExc (tmp);
380
0
      #endif
381
382
0
      #if defined (ENOLINK)
383
0
    case ENOLINK:
384
0
      throw EnolinkExc (tmp);
385
0
      #endif
386
387
0
      #if defined (EADV)
388
0
    case EADV:
389
0
      throw EadvExc (tmp);
390
0
      #endif
391
392
0
      #if defined (ESRMNT)
393
0
    case ESRMNT:
394
0
      throw EsrmntExc (tmp);
395
0
      #endif
396
397
0
      #if defined (ECOMM)
398
0
    case ECOMM:
399
0
      throw EcommExc (tmp);
400
0
      #endif
401
402
0
      #if defined (EPROTO)
403
0
    case EPROTO:
404
0
      throw EprotoExc (tmp);
405
0
      #endif
406
407
0
      #if defined (EMULTIHOP)
408
0
    case EMULTIHOP:
409
0
      throw EmultihopExc (tmp);
410
0
      #endif
411
412
0
      #if defined (EBADMSG)
413
0
    case EBADMSG:
414
0
      throw EbadmsgExc (tmp);
415
0
      #endif
416
417
0
      #if defined (ENAMETOOLONG)
418
0
    case ENAMETOOLONG:
419
0
      throw EnametoolongExc (tmp);
420
0
      #endif
421
422
0
      #if defined (EOVERFLOW)
423
0
    case EOVERFLOW:
424
0
      throw EoverflowExc (tmp);
425
0
      #endif
426
427
0
      #if defined (ENOTUNIQ)
428
0
    case ENOTUNIQ:
429
0
      throw EnotuniqExc (tmp);
430
0
      #endif
431
432
0
      #if defined (EBADFD)
433
0
    case EBADFD:
434
0
      throw EbadfdExc (tmp);
435
0
      #endif
436
437
0
      #if defined (EREMCHG)
438
0
    case EREMCHG:
439
0
      throw EremchgExc (tmp);
440
0
      #endif
441
442
0
      #if defined (ELIBACC)
443
0
    case ELIBACC:
444
0
      throw ElibaccExc (tmp);
445
0
      #endif
446
447
0
      #if defined (ELIBBAD)
448
0
    case ELIBBAD:
449
0
      throw ElibbadExc (tmp);
450
0
      #endif
451
452
0
      #if defined (ELIBSCN)
453
0
    case ELIBSCN:
454
0
      throw ElibscnExc (tmp);
455
0
      #endif
456
457
0
      #if defined (ELIBMAX)
458
0
    case ELIBMAX:
459
0
      throw ElibmaxExc (tmp);
460
0
      #endif
461
462
0
      #if defined (ELIBEXEC)
463
0
    case ELIBEXEC:
464
0
      throw ElibexecExc (tmp);
465
0
      #endif
466
467
0
      #if defined (EILSEQ)
468
0
    case EILSEQ:
469
0
      throw EilseqExc (tmp);
470
0
      #endif
471
472
0
      #if defined (ENOSYS)
473
0
    case ENOSYS:
474
0
      throw EnosysExc (tmp);
475
0
      #endif
476
477
0
      #if defined (ELOOP)
478
0
    case ELOOP:
479
0
      throw EloopExc (tmp);
480
0
      #endif
481
482
0
      #if defined (ERESTART)
483
0
    case ERESTART:
484
0
      throw ErestartExc (tmp);
485
0
      #endif
486
487
0
      #if defined (ESTRPIPE)
488
0
    case ESTRPIPE:
489
0
      throw EstrpipeExc (tmp);
490
0
      #endif
491
492
0
      #if defined (ENOTEMPTY)
493
0
    case ENOTEMPTY:
494
0
      throw EnotemptyExc (tmp);
495
0
      #endif
496
497
0
      #if defined (EUSERS)
498
0
    case EUSERS:
499
0
      throw EusersExc (tmp);
500
0
      #endif
501
502
0
      #if defined (ENOTSOCK)
503
0
    case ENOTSOCK:
504
0
      throw EnotsockExc (tmp);
505
0
      #endif
506
507
0
      #if defined (EDESTADDRREQ)
508
0
    case EDESTADDRREQ:
509
0
      throw EdestaddrreqExc (tmp);
510
0
      #endif
511
512
0
      #if defined (EMSGSIZE)
513
0
    case EMSGSIZE:
514
0
      throw EmsgsizeExc (tmp);
515
0
      #endif
516
517
0
      #if defined (EPROTOTYPE)
518
0
    case EPROTOTYPE:
519
0
      throw EprototypeExc (tmp);
520
0
      #endif
521
522
0
      #if defined (ENOPROTOOPT)
523
0
    case ENOPROTOOPT:
524
0
      throw EnoprotooptExc (tmp);
525
0
      #endif
526
527
0
      #if defined (EPROTONOSUPPORT)
528
0
    case EPROTONOSUPPORT:
529
0
      throw EprotonosupportExc (tmp);
530
0
      #endif
531
532
0
      #if defined (ESOCKTNOSUPPORT)
533
0
    case ESOCKTNOSUPPORT:
534
0
      throw EsocktnosupportExc (tmp);
535
0
      #endif
536
537
0
      #if defined (EOPNOTSUPP)
538
0
    case EOPNOTSUPP:
539
0
      throw EopnotsuppExc (tmp);
540
0
      #endif
541
542
0
      #if defined (EPFNOSUPPORT)
543
0
    case EPFNOSUPPORT:
544
0
      throw EpfnosupportExc (tmp);
545
0
      #endif
546
547
0
      #if defined (EAFNOSUPPORT)
548
0
    case EAFNOSUPPORT:
549
0
      throw EafnosupportExc (tmp);
550
0
      #endif
551
552
0
      #if defined (EADDRINUSE)
553
0
    case EADDRINUSE:
554
0
      throw EaddrinuseExc (tmp);
555
0
      #endif
556
557
0
      #if defined (EADDRNOTAVAIL)
558
0
    case EADDRNOTAVAIL:
559
0
      throw EaddrnotavailExc (tmp);
560
0
      #endif
561
562
0
      #if defined (ENETDOWN)
563
0
    case ENETDOWN:
564
0
      throw EnetdownExc (tmp);
565
0
      #endif
566
567
0
      #if defined (ENETUNREACH)
568
0
    case ENETUNREACH:
569
0
      throw EnetunreachExc (tmp);
570
0
      #endif
571
572
0
      #if defined (ENETRESET)
573
0
    case ENETRESET:
574
0
      throw EnetresetExc (tmp);
575
0
      #endif
576
577
0
      #if defined (ECONNABORTED)
578
0
    case ECONNABORTED:
579
0
      throw EconnabortedExc (tmp);
580
0
      #endif
581
582
0
      #if defined (ECONNRESET)
583
0
    case ECONNRESET:
584
0
      throw EconnresetExc (tmp);
585
0
      #endif
586
587
0
      #if defined (ENOBUFS)
588
0
    case ENOBUFS:
589
0
      throw EnobufsExc (tmp);
590
0
      #endif
591
592
0
      #if defined (EISCONN)
593
0
    case EISCONN:
594
0
      throw EisconnExc (tmp);
595
0
      #endif
596
597
0
      #if defined (ENOTCONN)
598
0
    case ENOTCONN:
599
0
      throw EnotconnExc (tmp);
600
0
      #endif
601
602
0
      #if defined (ESHUTDOWN)
603
0
    case ESHUTDOWN:
604
0
      throw EshutdownExc (tmp);
605
0
      #endif
606
607
0
      #if defined (ETOOMANYREFS)
608
0
    case ETOOMANYREFS:
609
0
      throw EtoomanyrefsExc (tmp);
610
0
      #endif
611
612
0
      #if defined (ETIMEDOUT)
613
0
    case ETIMEDOUT:
614
0
      throw EtimedoutExc (tmp);
615
0
      #endif
616
617
0
      #if defined (ECONNREFUSED)
618
0
    case ECONNREFUSED:
619
0
      throw EconnrefusedExc (tmp);
620
0
      #endif
621
622
0
      #if defined (EHOSTDOWN)
623
0
    case EHOSTDOWN:
624
0
      throw EhostdownExc (tmp);
625
0
      #endif
626
627
0
      #if defined (EHOSTUNREACH)
628
0
    case EHOSTUNREACH:
629
0
      throw EhostunreachExc (tmp);
630
0
      #endif
631
632
0
      #if defined (EALREADY)
633
0
    case EALREADY:
634
0
      throw EalreadyExc (tmp);
635
0
      #endif
636
637
0
      #if defined (EINPROGRESS)
638
0
    case EINPROGRESS:
639
0
      throw EinprogressExc (tmp);
640
0
      #endif
641
642
0
      #if defined (ESTALE)
643
0
    case ESTALE:
644
0
      throw EstaleExc (tmp);
645
0
      #endif
646
647
      #if defined (EIORESID)
648
    case EIORESID:
649
      throw EioresidExc (tmp);
650
      #endif
651
652
0
      #if defined (EUCLEAN)
653
0
    case EUCLEAN:
654
0
      throw EucleanExc (tmp);
655
0
      #endif
656
657
0
      #if defined (ENOTNAM)
658
0
    case ENOTNAM:
659
0
      throw EnotnamExc (tmp);
660
0
      #endif
661
662
0
      #if defined (ENAVAIL)
663
0
    case ENAVAIL:
664
0
      throw EnavailExc (tmp);
665
0
      #endif
666
667
0
      #if defined (EISNAM)
668
0
    case EISNAM:
669
0
      throw EisnamExc (tmp);
670
0
      #endif
671
672
0
      #if defined (EREMOTEIO)
673
0
    case EREMOTEIO:
674
0
      throw EremoteioExc (tmp);
675
0
      #endif
676
677
      #if defined (EINIT)
678
    case EINIT:
679
      throw EinitExc (tmp);
680
      #endif
681
682
      #if defined (EREMDEV)
683
    case EREMDEV:
684
      throw EremdevExc (tmp);
685
      #endif
686
687
0
      #if defined (ECANCELED)
688
0
    case ECANCELED:
689
0
      throw EcanceledExc (tmp);
690
0
      #endif
691
692
      #if defined (ENOLIMFILE)
693
    case ENOLIMFILE:
694
      throw EnolimfileExc (tmp);
695
      #endif
696
697
      #if defined (EPROCLIM)
698
    case EPROCLIM:
699
      throw EproclimExc (tmp);
700
      #endif
701
702
      #if defined (EDISJOINT)
703
    case EDISJOINT:
704
      throw EdisjointExc (tmp);
705
      #endif
706
707
      #if defined (ENOLOGIN)
708
    case ENOLOGIN:
709
      throw EnologinExc (tmp);
710
      #endif
711
712
      #if defined (ELOGINLIM)
713
    case ELOGINLIM:
714
      throw EloginlimExc (tmp);
715
      #endif
716
717
      #if defined (EGROUPLOOP)
718
    case EGROUPLOOP:
719
      throw EgrouploopExc (tmp);
720
      #endif
721
722
      #if defined (ENOATTACH)
723
    case ENOATTACH:
724
      throw EnoattachExc (tmp);
725
      #endif
726
727
0
      #if defined (ENOTSUP) && defined (EOPNOTSUPP)
728
    #if ENOTSUP != EOPNOTSUPP
729
        case ENOTSUP:
730
    throw EnotsupExc (tmp);
731
    #endif
732
      #elif defined (ENOTSUP)
733
    case ENOTSUP:
734
      throw EnotsupExc (tmp);
735
      #endif
736
737
      #if defined (ENOATTR)
738
    case ENOATTR:
739
      throw EnoattrExc (tmp);
740
      #endif
741
742
      #if defined (EDIRCORRUPTED)
743
    case EDIRCORRUPTED:
744
      throw EdircorruptedExc (tmp);
745
      #endif
746
747
0
      #if defined (EDQUOT)
748
0
    case EDQUOT:
749
0
      throw EdquotExc (tmp);
750
0
      #endif
751
752
      #if defined (ENFSREMOTE)
753
    case ENFSREMOTE:
754
      throw EnfsremoteExc (tmp);
755
      #endif
756
757
      #if defined (ECONTROLLER)
758
    case ECONTROLLER:
759
      throw EcontrollerExc (tmp);
760
      #endif
761
762
      #if defined (ENOTCONTROLLER)
763
    case ENOTCONTROLLER:
764
      throw EnotcontrollerExc (tmp);
765
      #endif
766
767
      #if defined (EENQUEUED)
768
    case EENQUEUED:
769
      throw EenqueuedExc (tmp);
770
      #endif
771
772
      #if defined (ENOTENQUEUED)
773
    case ENOTENQUEUED:
774
      throw EnotenqueuedExc (tmp);
775
      #endif
776
777
      #if defined (EJOINED)
778
    case EJOINED:
779
      throw EjoinedExc (tmp);
780
      #endif
781
782
      #if defined (ENOTJOINED)
783
    case ENOTJOINED:
784
      throw EnotjoinedExc (tmp);
785
      #endif
786
787
      #if defined (ENOPROC)
788
    case ENOPROC:
789
      throw EnoprocExc (tmp);
790
      #endif
791
792
      #if defined (EMUSTRUN)
793
    case EMUSTRUN:
794
      throw EmustrunExc (tmp);
795
      #endif
796
797
      #if defined (ENOTSTOPPED)
798
    case ENOTSTOPPED:
799
      throw EnotstoppedExc (tmp);
800
      #endif
801
802
      #if defined (ECLOCKCPU)
803
    case ECLOCKCPU:
804
      throw EclockcpuExc (tmp);
805
      #endif
806
807
      #if defined (EINVALSTATE)
808
    case EINVALSTATE:
809
      throw EinvalstateExc (tmp);
810
      #endif
811
812
      #if defined (ENOEXIST)
813
    case ENOEXIST:
814
      throw EnoexistExc (tmp);
815
      #endif
816
817
      #if defined (EENDOFMINOR)
818
    case EENDOFMINOR:
819
      throw EendofminorExc (tmp);
820
      #endif
821
822
      #if defined (EBUFSIZE)
823
    case EBUFSIZE:
824
      throw EbufsizeExc (tmp);
825
      #endif
826
827
      #if defined (EEMPTY)
828
    case EEMPTY:
829
      throw EemptyExc (tmp);
830
      #endif
831
832
      #if defined (ENOINTRGROUP)
833
    case ENOINTRGROUP:
834
      throw EnointrgroupExc (tmp);
835
      #endif
836
837
      #if defined (EINVALMODE)
838
    case EINVALMODE:
839
      throw EinvalmodeExc (tmp);
840
      #endif
841
842
      #if defined (ECANTEXTENT)
843
    case ECANTEXTENT:
844
      throw EcantextentExc (tmp);
845
      #endif
846
847
      #if defined (EINVALTIME)
848
    case EINVALTIME:
849
      throw EinvaltimeExc (tmp);
850
      #endif
851
852
      #if defined (EDESTROYED)
853
    case EDESTROYED:
854
      throw EdestroyedExc (tmp);
855
      #endif
856
0
    }
857
858
0
    throw ErrnoExc (tmp);
859
0
}
860
861
862
void throwErrnoExc (const std::string &text)
863
0
{
864
0
    throwErrnoExc (text, errno);
865
0
}
866
867
void throwErrnoExc()
868
0
{
869
0
    std::string txt = "%T.";
870
0
    throwErrnoExc (txt);
871
0
}
872
873
IEX_INTERNAL_NAMESPACE_SOURCE_EXIT