]> pd.if.org Git - pdclib/blob - platform/win32/functions/_PDCLIB/_PDCLIB_w32errno.c
5e03ef53a6b4737a56a67a0d050c098a1170b451
[pdclib] / platform / win32 / functions / _PDCLIB / _PDCLIB_w32errno.c
1 /* $Id$ */\r
2 \r
3 /* _PDCLIB_allocpages( int const )\r
4 \r
5    This file is part of the Public Domain C Library (PDCLib).\r
6    Permission is granted to use, modify, and / or redistribute at will.\r
7 */\r
8 \r
9 /* This is a stub implementation of _PDCLIB_allocpages\r
10 */\r
11 \r
12 #ifndef REGTEST\r
13 #include <errno.h>\r
14 #include <windows.h>\r
15 \r
16 void _PDCLIB_w32errno(void)\r
17 {\r
18     // Not exhaustive\r
19     switch(GetLastError()) {\r
20         case ERROR_SUCCESS:\r
21             return;\r
22         case ERROR_FILE_NOT_FOUND:\r
23         case ERROR_PATH_NOT_FOUND:\r
24         case ERROR_INVALID_DRIVE:\r
25             errno = ENOENT; break;\r
26         case ERROR_TOO_MANY_OPEN_FILES:\r
27             errno = EMFILE; break;\r
28         case ERROR_ACCESS_DENIED:\r
29         case ERROR_WRITE_PROTECT:\r
30             errno = EPERM; break;\r
31         case ERROR_INVALID_HANDLE:\r
32             errno = EBADF; break;\r
33         case ERROR_NOT_ENOUGH_MEMORY:\r
34         case ERROR_OUTOFMEMORY:\r
35             errno = ENOMEM; break;\r
36         case ERROR_NOT_READY:\r
37             errno = EAGAIN; break;\r
38         case ERROR_BAD_LENGTH:\r
39             errno = EINVAL; break;\r
40         default:\r
41             // TODO: reconsider what to use here?\r
42             errno = ENOSYS; break;\r
43     }\r
44 }\r
45 \r
46 #endif\r
47 \r
48 #ifdef TEST\r
49 #include <_PDCLIB_test.h>\r
50 \r
51 int main( void )\r
52 {\r
53     return TEST_RESULTS;\r
54 }\r
55 \r
56 #endif