1181834Sroberto 2181834Sroberto/* 3181834Sroberto * Time-stamp: "2006-10-14 14:55:09 bkorb" 4181834Sroberto * by: bkorb 5181834Sroberto * Last Committed: $Date: 2007/04/28 22:19:23 $ 6181834Sroberto */ 7181834Sroberto#ifndef WINDOWS_CONFIG_HACKERY 8181834Sroberto#define WINDOWS_CONFIG_HACKERY 1 9181834Sroberto 10181834Sroberto/* 11181834Sroberto * The definitions below have been stolen from NTP's config.h for Windows. 12181834Sroberto * However, they may be kept here in order to keep libopts independent from 13181834Sroberto * the NTP project. 14181834Sroberto */ 15181834Sroberto#ifndef __windows__ 16181834Sroberto# define __windows__ 4 17181834Sroberto#endif 18181834Sroberto 19181834Sroberto/* 20181834Sroberto * Miscellaneous functions that Microsoft maps 21181834Sroberto * to other names 22181834Sroberto * 23181834Sroberto * #define inline __inline 24181834Sroberto * #define vsnprintf _vsnprintf 25181834Sroberto */ 26181834Sroberto#define snprintf _snprintf 27181834Sroberto/* 28181834Sroberto * #define stricmp _stricmp 29181834Sroberto * #define strcasecmp _stricmp 30181834Sroberto * #define isascii __isascii 31181834Sroberto * #define finite _finite 32181834Sroberto * #define random rand 33181834Sroberto * #define srandom srand 34181834Sroberto */ 35181834Sroberto 36181834Sroberto#define SIZEOF_INT 4 37181834Sroberto#define SIZEOF_CHARP 4 38181834Sroberto#define SIZEOF_LONG 4 39181834Sroberto#define SIZEOF_SHORT 2 40181834Sroberto 41181834Srobertotypedef unsigned long uintptr_t; 42181834Sroberto 43181834Sroberto/* 44181834Sroberto * # define HAVE_NET_IF_H 45181834Sroberto * # define QSORT_USES_VOID_P 46181834Sroberto * # define HAVE_SETVBUF 47181834Sroberto * # define HAVE_VSPRINTF 48181834Sroberto * # define HAVE_SNPRINTF 49181834Sroberto * # define HAVE_VSNPRINTF 50181834Sroberto * # define HAVE_PROTOTYPES /* from ntpq.mak * / 51181834Sroberto * # define HAVE_MEMMOVE 52181834Sroberto * # define HAVE_TERMIOS_H 53181834Sroberto * # define HAVE_ERRNO_H 54181834Sroberto * # define HAVE_STDARG_H 55181834Sroberto * # define HAVE_NO_NICE 56181834Sroberto * # define HAVE_MKTIME 57181834Sroberto * # define TIME_WITH_SYS_TIME 58181834Sroberto * # define HAVE_IO_COMPLETION_PORT 59181834Sroberto * # define ISC_PLATFORM_NEEDNTOP 60181834Sroberto * # define ISC_PLATFORM_NEEDPTON 61181834Sroberto * # define NEED_S_CHAR_TYPEDEF 62181834Sroberto * # define USE_PROTOTYPES /* for ntp_types.h * / 63181834Sroberto * 64181834Sroberto * #define ULONG_CONST(a) a ## UL 65181834Sroberto */ 66181834Sroberto 67181834Sroberto#define HAVE_LIMITS_H 1 68181834Sroberto#define HAVE_STRDUP 1 69181834Sroberto#define HAVE_STRCHR 1 70181834Sroberto#define HAVE_FCNTL_H 1 71181834Sroberto 72181834Sroberto/* 73181834Sroberto * VS.NET's version of wspiapi.h has a bug in it 74181834Sroberto * where it assigns a value to a variable inside 75181834Sroberto * an if statement. It should be comparing them. 76181834Sroberto * We prevent inclusion since we are not using this 77181834Sroberto * code so we don't have to see the warning messages 78181834Sroberto */ 79181834Sroberto#ifndef _WSPIAPI_H_ 80181834Sroberto#define _WSPIAPI_H_ 81181834Sroberto#endif 82181834Sroberto 83181834Sroberto/* Prevent inclusion of winsock.h in windows.h */ 84181834Sroberto#ifndef _WINSOCKAPI_ 85181834Sroberto#define _WINSOCKAPI_ 86181834Sroberto#endif 87181834Sroberto 88181834Sroberto#ifndef __RPCASYNC_H__ 89181834Sroberto#define __RPCASYNC_H__ 90181834Sroberto#endif 91181834Sroberto 92181834Sroberto/* Include Windows headers */ 93181834Sroberto#include <windows.h> 94181834Sroberto#include <winsock2.h> 95181834Sroberto#include <limits.h> 96181834Sroberto 97181834Sroberto/* 98181834Sroberto * Compatibility declarations for Windows, assuming SYS_WINNT 99181834Sroberto * has been defined. 100181834Sroberto */ 101181834Sroberto#define strdup _strdup 102181834Sroberto#define stat _stat /* struct stat from <sys/stat.h> */ 103181834Sroberto#define unlink _unlink 104181834Sroberto#define fchmod( _x, _y ); 105181834Sroberto#define ssize_t SSIZE_T 106181834Sroberto 107181834Sroberto#include <io.h> 108181834Sroberto#define open _open 109181834Sroberto#define close _close 110181834Sroberto#define read _read 111181834Sroberto#define write _write 112181834Sroberto#define lseek _lseek 113181834Sroberto#define pipe _pipe 114181834Sroberto#define dup2 _dup2 115181834Sroberto 116181834Sroberto#define O_RDWR _O_RDWR 117181834Sroberto#define O_RDONLY _O_RDONLY 118181834Sroberto#define O_EXCL _O_EXCL 119181834Sroberto 120181834Sroberto#ifndef S_ISREG 121181834Sroberto# define S_IFREG _S_IFREG 122181834Sroberto# define S_ISREG(mode) (((mode) & S_IFREG) == S_IFREG) 123181834Sroberto#endif 124181834Sroberto 125181834Sroberto#ifndef S_ISDIR 126181834Sroberto# define S_IFDIR _S_IFDIR 127181834Sroberto# define S_ISDIR(mode) (((mode) & S_IFDIR) == S_IFDIR) 128181834Sroberto#endif 129181834Sroberto 130181834Sroberto#endif /* WINDOWS_CONFIG_HACKERY */ 131