PostgreSQL Source Code
git master
Loading...
Searching...
No Matches
win32error.c
Go to the documentation of this file.
1
/*-------------------------------------------------------------------------
2
*
3
* win32error.c
4
* Map win32 error codes to errno values
5
*
6
* Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7
*
8
* IDENTIFICATION
9
* src/port/win32error.c
10
*
11
*-------------------------------------------------------------------------
12
*/
13
14
#ifndef FRONTEND
15
#include "
postgres.h
"
16
#else
17
#include "
postgres_fe.h
"
18
#endif
19
20
static
const
struct
21
{
22
DWORD
winerr
;
23
int
doserr
;
24
}
doserrors
[] =
25
26
{
27
{
28
ERROR_INVALID_FUNCTION
,
EINVAL
29
},
30
{
31
ERROR_FILE_NOT_FOUND
,
ENOENT
32
},
33
{
34
ERROR_PATH_NOT_FOUND
,
ENOENT
35
},
36
{
37
ERROR_TOO_MANY_OPEN_FILES
,
EMFILE
38
},
39
{
40
ERROR_ACCESS_DENIED
,
EACCES
41
},
42
{
43
ERROR_INVALID_HANDLE
,
EBADF
44
},
45
{
46
ERROR_ARENA_TRASHED
,
ENOMEM
47
},
48
{
49
ERROR_NOT_ENOUGH_MEMORY
,
ENOMEM
50
},
51
{
52
ERROR_INVALID_BLOCK
,
ENOMEM
53
},
54
{
55
ERROR_BAD_ENVIRONMENT
,
E2BIG
56
},
57
{
58
ERROR_BAD_FORMAT
,
ENOEXEC
59
},
60
{
61
ERROR_INVALID_ACCESS
,
EINVAL
62
},
63
{
64
ERROR_INVALID_DATA
,
EINVAL
65
},
66
{
67
ERROR_INVALID_DRIVE
,
ENOENT
68
},
69
{
70
ERROR_CURRENT_DIRECTORY
,
EACCES
71
},
72
{
73
ERROR_NOT_SAME_DEVICE
,
EXDEV
74
},
75
{
76
ERROR_NO_MORE_FILES
,
ENOENT
77
},
78
{
79
ERROR_LOCK_VIOLATION
,
EACCES
80
},
81
{
82
ERROR_SHARING_VIOLATION
,
EACCES
83
},
84
{
85
ERROR_BAD_NETPATH
,
ENOENT
86
},
87
{
88
ERROR_NETWORK_ACCESS_DENIED
,
EACCES
89
},
90
{
91
ERROR_BAD_NET_NAME
,
ENOENT
92
},
93
{
94
ERROR_FILE_EXISTS
,
EEXIST
95
},
96
{
97
ERROR_CANNOT_MAKE
,
EACCES
98
},
99
{
100
ERROR_FAIL_I24
,
EACCES
101
},
102
{
103
ERROR_INVALID_PARAMETER
,
EINVAL
104
},
105
{
106
ERROR_NO_PROC_SLOTS
,
EAGAIN
107
},
108
{
109
ERROR_DRIVE_LOCKED
,
EACCES
110
},
111
{
112
ERROR_BROKEN_PIPE
,
EPIPE
113
},
114
{
115
ERROR_DISK_FULL
,
ENOSPC
116
},
117
{
118
ERROR_INVALID_TARGET_HANDLE
,
EBADF
119
},
120
{
121
ERROR_INVALID_HANDLE
,
EINVAL
122
},
123
{
124
ERROR_WAIT_NO_CHILDREN
,
ECHILD
125
},
126
{
127
ERROR_CHILD_NOT_COMPLETE
,
ECHILD
128
},
129
{
130
ERROR_DIRECT_ACCESS_HANDLE
,
EBADF
131
},
132
{
133
ERROR_NEGATIVE_SEEK
,
EINVAL
134
},
135
{
136
ERROR_SEEK_ON_DEVICE
,
EACCES
137
},
138
{
139
ERROR_DIR_NOT_EMPTY
,
ENOTEMPTY
140
},
141
{
142
ERROR_NOT_LOCKED
,
EACCES
143
},
144
{
145
ERROR_BAD_PATHNAME
,
ENOENT
146
},
147
{
148
ERROR_MAX_THRDS_REACHED
,
EAGAIN
149
},
150
{
151
ERROR_LOCK_FAILED
,
EACCES
152
},
153
{
154
ERROR_ALREADY_EXISTS
,
EEXIST
155
},
156
{
157
ERROR_FILENAME_EXCED_RANGE
,
ENOENT
158
},
159
{
160
ERROR_NESTING_NOT_ALLOWED
,
EAGAIN
161
},
162
{
163
ERROR_NOT_ENOUGH_QUOTA
,
ENOMEM
164
},
165
{
166
ERROR_DELETE_PENDING
,
ENOENT
167
},
168
{
169
ERROR_INVALID_NAME
,
ENOENT
170
},
171
{
172
ERROR_CANT_RESOLVE_FILENAME
,
ENOENT
173
}
174
};
175
176
void
177
_dosmaperr
(
unsigned
long
e
)
178
{
179
int
i
;
180
181
if
(
e
== 0)
182
{
183
errno
= 0;
184
return
;
185
}
186
187
for
(
i
= 0;
i
<
lengthof
(
doserrors
);
i
++)
188
{
189
if
(
doserrors
[
i
].
winerr
==
e
)
190
{
191
int
doserr
=
doserrors
[
i
].doserr;
192
193
#ifndef FRONTEND
194
ereport
(
DEBUG5
,
195
(
errmsg_internal
(
"mapped win32 error code %lu to %d"
,
196
e
,
doserr
)));
197
#elif defined(FRONTEND_DEBUG)
198
fprintf
(
stderr
,
"mapped win32 error code %lu to %d"
,
e
,
doserr
);
199
#endif
200
errno
=
doserr
;
201
return
;
202
}
203
}
204
205
#ifndef FRONTEND
206
ereport
(
LOG
,
207
(
errmsg_internal
(
"unrecognized win32 error code: %lu"
,
208
e
)));
209
#else
210
fprintf
(
stderr
,
"unrecognized win32 error code: %lu"
,
e
);
211
#endif
212
213
errno
=
EINVAL
;
214
}
lengthof
#define lengthof(array)
Definition
c.h:803
fprintf
#define fprintf(file, fmt, msg)
Definition
cubescan.l:21
errmsg_internal
int errmsg_internal(const char *fmt,...)
Definition
elog.c:1170
LOG
#define LOG
Definition
elog.h:31
ereport
#define ereport(elevel,...)
Definition
elog.h:150
DEBUG5
#define DEBUG5
Definition
elog.h:26
i
int i
Definition
isn.c:77
postgres.h
postgres_fe.h
e
e
Definition
preproc-init.c:82
fb
static int fb(int x)
Definition
preproc-init.c:92
EAGAIN
#define EAGAIN
Definition
win32_port.h:359
doserrors
static const struct @203 doserrors[]
doserr
int doserr
Definition
win32error.c:23
_dosmaperr
void _dosmaperr(unsigned long e)
Definition
win32error.c:177
winerr
DWORD winerr
Definition
win32error.c:22
src
port
win32error.c
Generated on Tue Jan 27 2026 06:13:18 for PostgreSQL Source Code by
1.9.8