]> git.lyx.org Git - lyx.git/blob - src/support/os2_errortable.h
fe75371dc42761fc4ff4d413648a72cf68b01225
[lyx.git] / src / support / os2_errortable.h
1 /* -*- C++ -*- */
2 /* This file is part of
3 * ======================================================
4 *
5 *           LyX, The Document Processor
6 *
7 *           Copyright 1995 Matthias Ettrich
8 *           Copyright 1995-2001 The LyX Team.
9 *
10 * ======================================================
11  A table for translating OS/2 API return code into errno.
12  Copied from emx library source.                         */
13
14 #ifndef OS2_ERRORTABLE_H
15 #define OS2_ERRORTABLE_H
16 //#ifndef _ERRNO_H
17 #include <cerrno>
18 //#endif
19
20 namespace {
21
22 unsigned char const errno_tab[] =
23 {
24   EINVAL, EINVAL, ENOENT, ENOENT, EMFILE,  /* 0..4 */
25   EACCES, EBADF,  EIO,    ENOMEM, EIO,     /* 5..9 */
26   EINVAL, ENOEXEC, EINVAL, EINVAL, EINVAL,  /* 10..14 */
27   ENOENT, EBUSY,  EXDEV,  ENOENT, EROFS,   /* 15..19 */
28   EIO,    EIO,    EIO,    EIO,    EIO,     /* 20..24 */
29   EIO,    EIO,    EIO,    ENOSPC, EIO,     /* 25..29 */
30   EIO,    EIO,    EACCES, EACCES, EIO,     /* 30..34 */
31   EIO,    EIO,    EIO,    EIO,    ENOSPC,  /* 35..39 */
32   EIO,    EIO,    EIO,    EIO,    EIO,     /* 40..44 */
33   EIO,    EIO,    EIO,    EIO,    EIO,     /* 45..49 */
34   EIO,    EIO,    EIO,    EIO,    EBUSY,   /* 50..54 */
35   EIO,    EIO,    EIO,    EIO,    EIO,     /* 55..59 */
36   EIO,    ENOSPC, ENOSPC, EIO,    EIO,     /* 60..64 */
37   EACCES, EIO,    EIO,    EIO,    EIO,     /* 65..69 */
38   EIO,    EIO,    EIO,    EROFS,  EIO,     /* 70..74 */
39   EIO,    EIO,    EIO,    EIO,    EIO,     /* 75..79 */
40   EEXIST, EIO,    ENOENT, EIO,    EIO,     /* 80..84 */
41   EIO,    EIO,    EINVAL, EIO,    EAGAIN,  /* 85..89 */
42   EIO,    EIO,    EIO,    EIO,    EIO,     /* 90..94 */
43   EINTR,  EIO,    EIO,    EIO,    EACCES,  /* 95..99 */
44   ENOMEM, EINVAL, EINVAL, ENOMEM, EINVAL,  /* 100..104 */
45   EINVAL, ENOMEM, EIO,    EACCES, EPIPE,   /* 105..109 */
46   ENOENT, E2BIG,  ENOSPC, ENOMEM, EINVAL,  /* 110..114 */
47   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 115..119 */
48   EINVAL, EINVAL, EINVAL, ENOENT, EINVAL,  /* 120..124 */
49   ENOENT, ENOENT, ENOENT, ECHILD, ECHILD,  /* 125..129 */
50   EACCES, EINVAL, ESPIPE, EINVAL, EINVAL,  /* 130..134 */
51   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 135..139 */
52   EINVAL, EINVAL, EBUSY,  EINVAL, EINVAL,  /* 140..144 */
53   EINVAL, EINVAL, EINVAL, EBUSY,  EINVAL,  /* 145..149 */
54   EINVAL, EINVAL, ENOMEM, EINVAL, EINVAL,  /* 150..154 */
55   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 155..159 */
56   EINVAL, EINVAL, EINVAL, EINVAL, EAGAIN,  /* 160..164 */
57   EINVAL, EINVAL, EACCES, EINVAL, EINVAL,  /* 165..169 */
58   EBUSY,  EINVAL, EINVAL, EINVAL, EINVAL,  /* 170..174 */
59   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 175..179 */
60   EINVAL, EINVAL, EINVAL, EINVAL, ECHILD,  /* 180..184 */
61   EINVAL, EINVAL, ENOENT, EINVAL, EINVAL,  /* 185..189 */
62   ENOEXEC, ENOEXEC, ENOEXEC, ENOEXEC, ENOEXEC, /* 190..194 */
63   ENOEXEC, ENOEXEC, ENOEXEC, ENOEXEC, ENOEXEC, /* 195..199 */
64   ENOEXEC, ENOEXEC, ENOEXEC, ENOENT, EINVAL,  /* 200..204 */
65   EINVAL, ENAMETOOLONG, EINVAL, EINVAL, EINVAL,  /* 205..209 */
66   EINVAL, EINVAL, EACCES, ENOEXEC, ENOEXEC, /* 210..214 */
67   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 215..219 */
68   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 220..224 */
69   EINVAL, EINVAL, EINVAL, ECHILD, EINVAL,  /* 225..229 */
70   EINVAL, EBUSY,  EAGAIN, ENOTCONN, EINVAL, /* 230..234 */
71   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 235..239 */
72   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 240..244 */
73   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 245..249 */
74   EACCES, EACCES, EINVAL, ENOENT, EINVAL,  /* 250..254 */
75   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 255..259 */
76   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 260..264 */
77   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 265..269 */
78   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 270..274 */
79   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 275..279 */
80   EINVAL, EINVAL, EINVAL, EINVAL, EEXIST,  /* 280..284 */
81   EEXIST, EINVAL, EINVAL, EINVAL, EINVAL,  /* 285..289 */
82   ENOMEM, EMFILE, EINVAL, EINVAL, EINVAL,  /* 290..294 */
83   EINVAL, EINVAL, EINVAL, EINVAL, EINVAL,  /* 295..299 */
84   EINVAL, EBUSY,  EINVAL, ESRCH,  EINVAL,  /* 300..304 */
85   ESRCH,  EINVAL, EINVAL, EINVAL, ESRCH,   /* 305..309 */
86   EINVAL, ENOMEM, EINVAL, EINVAL, EINVAL,  /* 310..314 */
87   EINVAL, E2BIG,  ENOENT, EIO,    EIO,     /* 315..319 */
88   EINVAL, EINVAL, EINVAL, EINVAL, EAGAIN,  /* 320..324 */
89   EINVAL, EINVAL, EINVAL, EIO,    ENOENT,  /* 325..329 */
90   EACCES, EACCES, EACCES, ENOENT, ENOMEM   /* 330..334 */
91 };
92
93 } // namespace anon
94
95
96 inline
97 int TranslateOS2Error(unsigned long rc)
98 {
99         if (rc >= sizeof (errno_tab))
100                 return EINVAL;
101         else
102                 return errno_tab[rc];
103 }
104
105 #endif /* _OS2_ERRORTABLE_H */