15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/***
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* errno.h - system wide error numbers (set by system calls)
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*       Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)* Purpose:
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*       This file defines the system-wide error numbers (set by
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*       system calls).  Conforms to the XENIX standard.  Extended
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*       for compatibility with Uniforum standard.
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*       [System V]
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*       [Public]
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)*
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)****/
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if     _MSC_VER > 1000
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#pragma once
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(_INC_ERRNO)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _INC_ERRNO
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(_WIN32)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#error ERROR: Only Win32 targets supported!
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <winsock.h>
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__cplusplus)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" {
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Define _CRTIMP */
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef _CRTIMP
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(_DLL)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _CRTIMP __declspec(dllimport)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else   /* ndef _DLL */
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _CRTIMP
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  /* _DLL */
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  /* _CRTIMP */
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Define __cdecl for non-Microsoft compilers */
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if ( !defined(_MSC_VER) && !defined(__cdecl) )
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define __cdecl
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Define _CRTAPI1 (for compatibility with the NT SDK) */
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(_CRTAPI1)
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if	_MSC_VER >= 800 && _M_IX86 >= 300
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _CRTAPI1 __cdecl
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define _CRTAPI1
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(PTW32_STATIC_LIB)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  if defined(PTW32_BUILD)
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    define PTW32_DLLPORT __declspec (dllexport)
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  else
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#    define PTW32_DLLPORT __declspec (dllimport)
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  endif
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#  define PTW32_DLLPORT
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* declare reference to errno */
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if (defined(_MT) || defined(_MD) || defined(_DLL)) && !defined(_MAC)
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PTW32_DLLPORT int * __cdecl _errno(void);
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define errno   (*_errno())
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#else   /* ndef _MT && ndef _MD && ndef _DLL */
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)_CRTIMP extern int errno;
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  /* _MT || _MD || _DLL */
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Error Codes */
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EPERM           1
845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOENT          2
855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ESRCH           3
865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EINTR           4
875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EIO             5
885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENXIO           6
895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define E2BIG           7
905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOEXEC         8
915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EBADF           9
925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ECHILD          10
935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EAGAIN          11
945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOMEM          12
955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EACCES          13
965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EFAULT          14
975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EBUSY           16
985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EEXIST          17
995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EXDEV           18
1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENODEV          19
1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOTDIR         20
1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EISDIR          21
1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EINVAL          22
1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENFILE          23
1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EMFILE          24
1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOTTY          25
1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EFBIG           27
1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOSPC          28
1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ESPIPE          29
1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EROFS           30
1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EMLINK          31
1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EPIPE           32
1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EDOM            33
1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ERANGE          34
1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EDEADLK         36
1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* defined differently in winsock.h on WinCE */
1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(ENAMETOOLONG)
1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENAMETOOLONG    38
1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOLCK          39
1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOSYS          40
1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* defined differently in winsock.h on WinCE */
1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if !defined(ENOTEMPTY)
1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOTEMPTY       41
1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EILSEQ          42
1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* POSIX 2008 - robust mutexes */
1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EOWNERDEAD	43
1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define ENOTRECOVERABLE	44
1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Support EDEADLOCK for compatibiity with older MS-C versions.
1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define EDEADLOCK       EDEADLK
1405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(__cplusplus)
1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  /* _INC_ERRNO */
146