Fix errno linkage when compiling in C++.
[wine.git] / include / msvcrt / errno.h
blob2a5194e4d7b3ce8861f9792f8693d5fd7ad81cc0
1 /*
2 * Copyright 2001 Jon Griffiths
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 #ifndef __WINE_ERRNO_H
20 #define __WINE_ERRNO_H
21 #define __WINE_USE_MSVCRT
23 #ifndef MSVCRT
24 # ifdef USE_MSVCRT_PREFIX
25 # define MSVCRT(x) MSVCRT_##x
26 # else
27 # define MSVCRT(x) x
28 # endif
29 #endif
31 #ifdef USE_MSVCRT_PREFIX
33 # define MSVCRT_EPERM 1
34 # define MSVCRT_ENOENT 2
35 # define MSVCRT_ESRCH 3
36 # define MSVCRT_EINTR 4
37 # define MSVCRT_EIO 5
38 # define MSVCRT_ENXIO 6
39 # define MSVCRT_E2BIG 7
40 # define MSVCRT_ENOEXEC 8
41 # define MSVCRT_EBADF 9
42 # define MSVCRT_ECHILD 10
43 # define MSVCRT_EAGAIN 11
44 # define MSVCRT_ENOMEM 12
45 # define MSVCRT_EACCES 13
46 # define MSVCRT_EFAULT 14
47 # define MSVCRT_EBUSY 16
48 # define MSVCRT_EEXIST 17
49 # define MSVCRT_EXDEV 18
50 # define MSVCRT_ENODEV 19
51 # define MSVCRT_ENOTDIR 20
52 # define MSVCRT_EISDIR 21
53 # define MSVCRT_EINVAL 22
54 # define MSVCRT_ENFILE 23
55 # define MSVCRT_EMFILE 24
56 # define MSVCRT_ENOTTY 25
57 # define MSVCRT_EFBIG 27
58 # define MSVCRT_ENOSPC 28
59 # define MSVCRT_ESPIPE 29
60 # define MSVCRT_EROFS 30
61 # define MSVCRT_EMLINK 31
62 # define MSVCRT_EPIPE 32
63 # define MSVCRT_EDOM 33
64 # define MSVCRT_ERANGE 34
65 # define MSVCRT_EDEADLK 36
66 # define MSVCRT_EDEADLOCK MSVCRT_EDEADLK
67 # define MSVCRT_ENAMETOOLONG 38
68 # define MSVCRT_ENOLCK 39
69 # define MSVCRT_ENOSYS 40
70 # define MSVCRT_ENOTEMPTY 41
72 #else /* USE_MSVCRT_PREFIX */
74 # define EPERM 1
75 # define ENOENT 2
76 # define ESRCH 3
77 # define EINTR 4
78 # define EIO 5
79 # define ENXIO 6
80 # define E2BIG 7
81 # define ENOEXEC 8
82 # define EBADF 9
83 # define ECHILD 10
84 # define EAGAIN 11
85 # define ENOMEM 12
86 # define EACCES 13
87 # define EFAULT 14
88 # define EBUSY 16
89 # define EEXIST 17
90 # define EXDEV 18
91 # define ENODEV 19
92 # define ENOTDIR 20
93 # define EISDIR 21
94 # define EINVAL 22
95 # define ENFILE 23
96 # define EMFILE 24
97 # define ENOTTY 25
98 # define EFBIG 27
99 # define ENOSPC 28
100 # define ESPIPE 29
101 # define EROFS 30
102 # define EMLINK 31
103 # define EPIPE 32
104 # define EDOM 33
105 # define ERANGE 34
106 # define EDEADLK 36
107 # define EDEADLOCK EDEADLK
108 # define ENAMETOOLONG 38
109 # define ENOLCK 39
110 # define ENOSYS 40
111 # define ENOTEMPTY 41
113 #endif /* USE_MSVCRT_PREFIX */
115 #ifdef __cplusplus
116 extern "C" {
117 #endif
119 extern int* MSVCRT(_errno)(void);
121 #ifdef __cplusplus
123 #endif
125 #ifndef USE_MSVCRT_PREFIX
126 # define errno (*_errno())
127 #else
128 # define MSVCRT_errno (*MSVCRT__errno())
129 #endif
131 #endif /* __WINE_ERRNO_H */