1 /* $NetBSD: windows-config.h,v 1.5 2020/05/25 20:47:35 christos Exp $ */ 2 3 4 /** 5 * \file windows-config.h 6 * 7 * This file contains all of the routines that must be linked into 8 * an executable to use the generated option processing. The optional 9 * routines are in separately compiled modules so that they will not 10 * necessarily be linked in. 11 * 12 * This file is part of AutoOpts, a companion to AutoGen. 13 * AutoOpts is free software. 14 * AutoOpts is Copyright (C) 1992-2015 by Bruce Korb - all rights reserved 15 * 16 * AutoOpts is available under any one of two licenses. The license 17 * in use must be one of these two and the choice is under the control 18 * of the user of the license. 19 * 20 * The GNU Lesser General Public License, version 3 or later 21 * See the files "COPYING.lgplv3" and "COPYING.gplv3" 22 * 23 * The Modified Berkeley Software Distribution License 24 * See the file "COPYING.mbsd" 25 * 26 * These files have the following sha256 sums: 27 * 28 * 8584710e9b04216a394078dc156b781d0b47e1729104d666658aecef8ee32e95 COPYING.gplv3 29 * 4379e7444a0e2ce2b12dd6f5a52a27a4d02d39d247901d3285c88cf0d37f477b COPYING.lgplv3 30 * 13aa749a5b0a454917a944ed8fffc530b784f5ead522b1aacaf4ec8aa55a6239 COPYING.mbsd 31 */ 32 33 #ifndef WINDOWS_CONFIG_HACKERY 34 #define WINDOWS_CONFIG_HACKERY 1 35 36 /* 37 * The definitions below have been stolen from NTP's config.h for Windows. 38 * However, they may be kept here in order to keep libopts independent from 39 * the NTP project. 40 */ 41 #ifndef __windows__ 42 # define __windows__ 4 43 #endif 44 45 /* 46 * Miscellaneous functions that Microsoft maps to other names 47 */ 48 #define snprintf _snprintf 49 50 #define SIZEOF_INT 4 51 #define SIZEOF_CHARP 4 52 #define SIZEOF_LONG 4 53 #define SIZEOF_SHORT 2 54 55 #define HAVE_LIMITS_H 1 56 #define HAVE_STRDUP 1 57 #define HAVE_STRCHR 1 58 #define HAVE_FCNTL_H 1 59 60 /* 61 * VS.NET's version of wspiapi.h has a bug in it where it assigns a value 62 * to a variable inside an if statement. It should be comparing them. 63 * We prevent inclusion since we are not using this code so we don't have 64 * to see the warning messages 65 */ 66 #ifndef _WSPIAPI_H_ 67 #define _WSPIAPI_H_ 68 #endif 69 70 /* Prevent inclusion of winsock.h in windows.h */ 71 #ifndef _WINSOCKAPI_ 72 #define _WINSOCKAPI_ 73 #endif 74 75 #ifndef __RPCASYNC_H__ 76 #define __RPCASYNC_H__ 77 #endif 78 79 /* Include Windows headers */ 80 #include <windows.h> 81 #include <winsock2.h> 82 #include <limits.h> 83 84 /* 85 * Compatibility declarations for Windows, assuming SYS_WINNT 86 * has been defined. 87 */ 88 #define strdup _strdup 89 #define stat _stat /* struct stat from <sys/stat.h> */ 90 #define unlink _unlink 91 #define fchmod( _x, _y ) 92 #define ssize_t SSIZE_T 93 94 #include <io.h> 95 #define open _open 96 #define close _close 97 #define read _read 98 #define write _write 99 #define lseek _lseek 100 #define pipe _pipe 101 #define dup2 _dup2 102 103 #define O_RDWR _O_RDWR 104 #define O_RDONLY _O_RDONLY 105 #define O_EXCL _O_EXCL 106 107 #ifndef S_ISREG 108 # define S_IFREG _S_IFREG 109 # define S_ISREG(mode) (((mode) & S_IFREG) == S_IFREG) 110 #endif 111 112 #ifndef S_ISDIR 113 # define S_IFDIR _S_IFDIR 114 # define S_ISDIR(mode) (((mode) & S_IFDIR) == S_IFDIR) 115 #endif 116 117 /* C99 exact size integer support. */ 118 #if defined(HAVE_INTTYPES_H) 119 # include <inttypes.h> 120 121 #elif defined(HAVE_STDINT_H) 122 # include <stdint.h> 123 # define MISSING_INTTYPES_H 1 124 125 #elif ! defined(ADDED_EXACT_SIZE_INTEGERS) 126 # define ADDED_EXACT_SIZE_INTEGERS 1 127 # define MISSING_INTTYPES_H 1 128 129 typedef __int8 int8_t; 130 typedef unsigned __int8 uint8_t; 131 132 typedef __int16 int16_t; 133 typedef unsigned __int16 uint16_t; 134 135 typedef __int32 int32_t; 136 typedef unsigned __int32 uint32_t; 137 138 typedef __int64 int64_t; 139 typedef unsigned __int64 uint64_t; 140 141 typedef unsigned long uintptr_t; 142 typedef long intptr_t; 143 #endif 144 145 #endif /* WINDOWS_CONFIG_HACKERY */ 146 /* windows-config.h ends here */ 147