Remove files that should not be merged into head when updating ntp.

This commit is contained in:
Ollivier Robert 2014-12-22 22:15:31 +00:00
parent bd4312b94e
commit c59fb7145e
179 changed files with 0 additions and 33986 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,4 +0,0 @@
/**************************************************************
* Dummy Header for Unix to Windows NT portability
* Created for NTP package
**************************************************************/

View File

@ -1,44 +0,0 @@
#ifndef _CLOCKSTUFF_H
#define _CLOCKSTUFF_H
#include <time.h>
#include <sys\timeb.h>
#include "ntp_fp.h"
#include "ntp_syslog.h"
void init_winnt_time(void);
void reset_winnt_time(void);
void lock_thread_to_processor(HANDLE);
/* 100ns intervals between 1/1/1601 and 1/1/1970 as reported by
* SystemTimeToFileTime()
*/
#define FILETIME_1970 0x019db1ded53e8000
#define HECTONANOSECONDS 10000000
/*
* Multimedia Timer
*/
void set_mm_timer(int);
enum {
MM_TIMER_LORES,
MM_TIMER_HIRES
};
/*
* get_sys_time_as_filetime is a function pointer to
* either GetSystemTimeAsFileTime provided by Windows
* or ntpd's interpolating replacement.
*/
typedef void (WINAPI *PGSTAFT)(LPFILETIME pftResult);
extern PGSTAFT get_sys_time_as_filetime;
extern PGSTAFT pGetSystemTimePreciseAsFileTime;
void lock_thread_to_processor(HANDLE);
#endif

View File

@ -1,554 +0,0 @@
/*
* ports/winnt/include/config.h - static Windows config.h
*
* On most systems config.h is generated by the configure script.
* For the Windows port, it's hand-maintained. Compilers earlier
* than Visual C++ 2005 are no longer supported, enabling
* portable use of "long long" and "%lld".
*/
#ifndef CONFIG_H
#define CONFIG_H
/*
* Known predifined MS compiler version codes:
* 1800: MSVC++ 12.0 (Visual Studio 2013)
* 1700: MSVC++ 11.0 (Visual Studio 2012)
* 1600: MSVC++ 10.0 (Visual Studio 2010)
* 1500: MSVC++ 9.0 (Visual Studio 2008)
* 1400: MSVC++ 8.0 (Visual Studio 2005)
* 1310: MSVC++ 7.1 (Visual Studio 2003)
* 1300: MSVC++ 7.0
* 1200: MSVC++ 6.0 (Visual C++ 6)
* 1100: MSVC++ 5.0
*/
#if defined(_MSC_VER) && _MSC_VER < 1400
#error Minimum supported Microsoft compiler is Visual C++ 2005.
#endif
/*
* We want structures and prototypes added after Windows NT 4.0 exposed
* by Windows header files, so we define _WIN32_WINNT to target Windows
* XP (version 5.1). By default, _WIN32_WINNT also controls the minimum
* required Windows version to launch the .exe. As we want a single
* binary to work on all supported Windows versions, we runtime link
* newer functions, and use the linker /version:0x0400 option to
* override the .EXE header minimum Windows version.
*
* When using the VC++ 2008 and later compilers, the resulting binaries
* will not work on versions earlier than Windows XP, due to runtime
* library dependencies. That is, Visual C++ 2005 is the last version
* capable of producing binaries usable with Windows NT 4 and 2000.
*/
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0501
#endif
#define __attribute__(x) /* empty */
#define _CRT_SECURE_NO_DEPRECATE 1
/*
* ANSI C compliance enabled
*/
#define __STDC__ 1
/*
* Enable the debug build of MS C runtime to dump leaks
* at exit time (currently only if run under a debugger).
*/
#if defined(_MSC_VER) && defined(_DEBUG)
# define _CRTDBG_MAP_ALLOC
# include <stdlib.h>
# include <malloc.h>
# include <crtdbg.h>
/* # define MALLOC_LINT */ /* defers free() */
# define EREALLOC_IMPL(ptr, newsz, filenm, loc) \
_realloc_dbg(ptr, newsz, _NORMAL_BLOCK, filenm, loc)
#endif
/*
* We need to include stdio.h first before we #define snprintf
* otherwise we can get errors during the build
*/
#include <stdio.h>
/* Prevent inclusion of winsock.h in windows.h */
#ifndef _WINSOCKAPI_
#define _WINSOCKAPI_
#endif
#ifndef __RPCASYNC_H__
#define __RPCASYNC_H__
#endif
/*
* On Unix struct sock_timeval is equivalent to struct timeval.
* On Windows built with 64-bit time_t, sock_timeval.tv_sec is a long
* as required by Windows' socket() interface timeout argument, while
* timeval.tv_sec is time_t for the more common use as a UTC time
* within NTP.
*
* winsock.h unconditionally defines struct timeval with long tv_sec
* instead of time_t tv_sec. We redirect its declaration to struct
* sock_timeval instead of struct timeval with a #define.
*/
#define timeval sock_timeval
/* Include Windows headers */
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#undef timeval /* see sock_timeval #define and comment above */
/*
* Some definitions we are using are missing in the headers
* shipping with VC6. However, if the SDK is installed then the
* SDK's headers may declare the missing types. This is at least
* the case in the Oct 2001 SDK. That SDK and all subsequent
* versions also define the symbol _W64, so we can use that one
* to determine whether some types need to be defined, or not.
*/
#ifdef _W64
/* VC6 can include wspiapi.h only if the SDK is installed */
#include <wspiapi.h>
#endif
#undef interface
#include <process.h>
#include <time.h> /* time_t for timeval decl */
#include <io.h>
#include <isc/strerror.h>
/* ---------------------------------------------------------------------
* Above this line are #include lines and the few #define lines
* needed before including headers.
*/
struct timeval {
time_t tv_sec;
long tv_usec;
};
/*
* ntohl and friends are actual functions on Windows, use our own
* macros instead to save the function call overhead. All releases
* of Windows are little-endian.
*/
#ifdef ntohl
#error ntohl is already defined in ports/winnt/include/config.h
#else
#define ntohl(ul) (((u_long)(ul) & 0xff) << 24 | \
((u_long)(ul) & 0xff00) << 8 | \
((u_long)(ul) & 0xff0000) >> 8 | \
((u_long)(ul) & 0xff000000) >> 24)
#define htonl(ul) ntohl(ul)
#define ntohs(us) ((u_short) \
(((u_short)(us) & 0xff) << 8 | \
((u_short)(us) & 0xff00) >> 8))
#define htons(us) ntohs(us)
#endif
/*
* On Unix open() works for tty (serial) devices just fine, while on
* Windows refclock serial devices are opened using CreateFile, a lower
* level than the CRT-provided descriptors, because the C runtime lacks
* tty APIs. For refclocks which wish to use open() as well as or
* instead of refclock_open(), tty_open() is equivalent to open() on
* Unix and implemented in the Windows port similarly to
* refclock_open().
*/
extern int tty_open(char *, int, int);
/*
* disable use of __declspec(dllexport) by libisc routines
*/
#define ISC_STATIC_WIN 1
/*
* ntp_rfc2553.h has cruft under #ifdef SYS_WINNT which is
* appropriate for older Microsoft IPv6 definitions, such
* as in_addr6 being the struct type. We can differentiate
* the RFC2553-compliant newer headers because they have
* #define in_addr6 in6_addr
* for backward compatibility. With the newer headers,
* we define ISC_PLATFORM_HAVEIPV6 and disable the cruft.
*/
#ifdef in_addr6
#define WANT_IPV6
#define ISC_PLATFORM_HAVEIPV6
#define ISC_PLATFORM_HAVESCOPEID
#define HAVE_STRUCT_SOCKADDR_STORAGE
#define ISC_PLATFORM_HAVEIN6PKTINFO
#endif /* in_addr6 / RFC2553-compliant IPv6 headers */
#define NO_OPTION_NAME_WARNINGS
#if !defined( _W64 )
/*
* if ULONG_PTR needs to be defined then the build environment
* is pure 32 bit Windows. Since ULONG_PTR and DWORD have
* the same size in 32 bit Windows we can safely define
* a replacement.
*/
typedef DWORD ULONG_PTR;
/* VC6 doesn't know about socklen_t, except if the SDK is installed */
typedef int socklen_t;
#endif /* _W64 */
#define ISC_PLATFORM_NEEDIN6ADDRANY
#define HAVE_SOCKADDR_IN6
/*
* The type of the socklen_t defined for getnameinfo() and getaddrinfo()
* is int for VS compilers on Windows but the type is already declared
*/
#define GETSOCKNAME_SOCKLEN_TYPE socklen_t
/*
* Older SDKs do not define SO_EXCLUSIVEADDRUSE in winsock2.h
*/
#ifndef SO_EXCLUSIVEADDRUSE
#define SO_EXCLUSIVEADDRUSE ((int)(~SO_REUSEADDR))
#endif
#if defined _MSC_VER && _MSC_VER < 1400
/*
* Use 32-bit time definitions for versions prior to VS 2005
* VS 2005 defaults to 64-bit time
*/
# define SIZEOF_TIME_T 4
#else
# define SIZEOF_TIME_T 8
#endif
/*
* An attempt to cut down the number of warnings generated during compilation.
* All of these should be benign to disable.
*/
#pragma warning(disable: 4100) /* unreferenced formal parameter */
#pragma warning(disable: 4127) /* conditional expression is constant */
#pragma warning(disable: 4996) /* more secure replacement available */
/*
* Windows NT Configuration Values
*/
#if defined _DEBUG /* Use VC standard macro definitions */
# define DEBUG 1
#endif
#define __windows__ 1
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
#define OPEN_BCAST_SOCKET 1 /* for ntp_io.c */
#define TYPEOF_IP_MULTICAST_LOOP BOOL
#define SETSOCKOPT_ARG_CAST (const char *)
#define HAVE_RANDOM
#define AUTOKEY
#define SAVECONFIG 1
/*
* Multimedia timer enable
*/
#define USE_MM_TIMER
/* Enable OpenSSL */
#define OPENSSL 1
/*
* Keywords and functions that Microsoft maps
* to other names
*/
#define inline __inline
#define stricmp _stricmp
#define strcasecmp _stricmp
#define isascii __isascii
#define finite _finite
#define random rand
#define srandom srand
#define fdopen _fdopen
#define read _read
#define open _open
#ifndef close
#define close _close
#endif
#define write _write
#define strdup _strdup
#define alloca _alloca
#define stat _stat /*struct stat from <sys/stat.h> */
#define fstat _fstat
#define unlink _unlink
/*
* punt on fchmod on Windows
*/
#define fchmod(x,y) {}
#define lseek _lseek
#define pipe _pipe
#define dup2 _dup2
/*
* scale, unix sleep is seconds, Windows Sleep is msec
*/
#define sleep(x) Sleep((unsigned)(x) * 1000)
#define fileno _fileno
#define isatty _isatty
#define mktemp _mktemp
#define getpid _getpid
#define timegm _mkgmtime
#define errno_to_str isc__strerror
typedef int pid_t; /* PID is an int */
typedef int ssize_t; /* ssize is an int */
/*
* Map the stream to the file number
*/
#define STDOUT_FILENO _fileno(stdout)
#define STDERR_FILENO _fileno(stderr)
/*
* To minimize Windows-specific changes to the rest of the NTP code,
* particularly reference clocks, ntp_stdlib.h will
*
* #define strerror(e) ntp_strerror(e)
*
* to deal with our mixture of C runtime (open, write) and Windows
* (sockets, serial ports) error codes. This is an ugly hack because
* both use the lowest values differently, but particularly for ntpd,
* it's not a problem.
*/
#define NTP_REDEFINE_STRERROR
#define MCAST /* Enable Multicast Support */
#define MULTICAST_NONEWSOCKET /* Don't create a new socket for mcast address */
# define REFCLOCK /* from ntpd.mak */
/* #define CLOCK_PARSE */
#define CLOCK_ACTS
#define CLOCK_ARBITER
#define CLOCK_ARCRON_MSF
#define OWN_PPS_NTP_TIMESTAMP_FROM_COUNTER /* timepps.h */
#define HAVE_TIMEPPS_H
#define HAVE_PPSAPI
#define CLOCK_ATOM
#define CLOCK_CHU
#define CLOCK_CHRONOLOG
#define CLOCK_DUMBCLOCK
#define CLOCK_HOPF_SERIAL /* device 38, hopf DCF77/GPS serial line receiver */
#define CLOCK_HOPF_PCI /* device 39, hopf DCF77/GPS PCI-Bus receiver */
#define CLOCK_JUPITER
#define CLOCK_LOCAL
#define CLOCK_NMEA
#define CLOCK_ONCORE
#define CLOCK_PALISADE /* from ntpd.mak */
#define CLOCK_PARSE
/* parse component drivers */
#define CLOCK_COMPUTIME
#define CLOCK_DCF7000
#define CLOCK_HOPF6021
#define CLOCK_MEINBERG
#define CLOCK_RAWDCF
#define CLOCK_RCC8000
#define CLOCK_SCHMID
#define CLOCK_TRIMTAIP
#define CLOCK_TRIMTSIP
#define CLOCK_VARITEXT
#define CLOCK_WHARTON_400A
/* end parse component drivers */
/* # define CLOCK_SHM */
#define CLOCK_SPECTRACOM /* refclock_wwvb.c */
#define CLOCK_TRIMBLEDC
#define CLOCK_TRUETIME
#define NTP_LITTLE_ENDIAN /* from libntp.mak */
#define NTP_POSIX_SOURCE
#define SYSLOG_FILE /* from libntp.mak */
#define HAVE_LONG_LONG_INT 1
#define HAVE_UNSIGNED_LONG_LONG_INT 1
#define HAVE_SIZE_T 1
#define HAVE_PTRDIFF_T 1
# define SIZEOF_SIGNED_CHAR 1
# define SIZEOF_SHORT 2
# define SIZEOF_INT 4
# define SIZEOF_LONG 4
# define SIZEOF_LONG_LONG 8
/* libntp/snprintf.c doesn't know %I64d */
#define ISC_PLATFORM_QUADFORMAT "ll"
# define HAVE_ERRNO_H 1
# define HAVE_FCNTL_H 1
# define HAVE_LIMITS_H 1
# define HAVE_STDARG_H 1
# define HAVE_SYS_RESOURCE_H 1
# define HAVE_SYS_TIME_H 1
# define HAVE_TERMIOS_H 1
# define HAVE_ALLOCA 1
# define HAVE_GETCLOCK 1
# define HAVE_MEMMOVE 1
# define HAVE_MKTIME 1
# define HAVE_SETVBUF 1
# define HAVE_STRCHR 1 /* for libopts */
# define HAVE_STRDUP 1
# define HAVE_TIMEGM 1 /* actually _mkgmtime */
# define HAVE_STRUCT_TIMESPEC
# define HAVE_IO_COMPLETION_PORT
# define ISC_PLATFORM_NEEDNTOP
# define ISC_PLATFORM_NEEDPTON
#define HAVE_BSD_NICE /* emulate BSD setpriority() */
#define HW_WANT_RPL_VSNPRINTF 1
#define vsnprintf rpl_vsnprintf
#include <stdarg.h>
int rpl_vsnprintf(char *, size_t, const char *, va_list);
#define HW_WANT_RPL_SNPRINTF 1
#define snprintf rpl_snprintf
int rpl_snprintf(char *, size_t, const char *, ...);
#define HAVE_VSNPRINTF 1
#define HAVE_SNPRINTF 1
typedef char *caddr_t;
#ifdef _WCTYPE_T_DEFINED /* see vc/include/crtdefs.h */
#define HAVE_WINT_T 1
#endif
#ifndef _INTPTR_T_DEFINED
typedef long intptr_t;
#define _INTPTR_T_DEFINED
#endif
#define HAVE_INTPTR_T 1
#ifndef _UINTPTR_T_DEFINED
typedef unsigned long uintptr_t;
#define _UINTPTR_T_DEFINED
#endif
#define HAVE_UINTPTR_T 1
#if !defined( _W64 )
/*
* if DWORD_PTR needs to be defined then the build environment
* is pure 32 bit Windows. Since DWORD_PTR and DWORD have
* the same size in 32 bit Windows we can safely define
* a replacement.
*/
typedef DWORD DWORD_PTR;
#endif
#define NEED_S_CHAR_TYPEDEF
/* C99 exact size integer support. */
#if defined(_MSC_VER) && _MSC_VER<1800
# define MISSING_INTTYPES_H 1 /* not provided by VS2012 and earlier */
# define MISSING_STDBOOL_H 1 /* not provided by VS2012 and earlier */
#else
#if defined(_MSC_VER) && _MSC_VER>=1800
/* VS2013 and above support C99 types */
# define HAVE_INT8_T 1
# define HAVE_UINT8_T 1
# define HAVE_INT16_T 1
# define HAVE_UINT16_T 1
# define HAVE_INT32_T 1
# define HAVE_UINT32_T 1
#endif
#endif
#if !defined (MISSING_STDBOOL_H)
# define HAVE_STDBOOL_H
#endif
#if !defined(MISSING_INTTYPES_H)
# define HAVE_INTTYPES_H 1
#elif !defined(MISSING_STDINT_H)
# define HAVE_STDINT_H 1
#elif !defined(ADDED_EXACT_SIZE_INTEGERS)
# define ADDED_EXACT_SIZE_INTEGERS 1
typedef __int8 int8_t;
typedef unsigned __int8 uint8_t;
typedef __int16 int16_t;
typedef unsigned __int16 uint16_t;
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#endif
/* Directory separator, usually / or \ */
#define DIR_SEP '\\'
#define POSIX_SHELL "/bin/sh" /* libopts/makeshell.c */
#define ULONG_CONST(a) a ## UL
#define NOKMEM
#define RETSIGTYPE void
#ifndef STR_SYSTEM
#define STR_SYSTEM "Windows"
#endif
#ifndef STR_PROCESSOR
#define STRINGIZE(arg) #arg
#ifdef _M_IX86
#ifndef _M_IX86_FP
#define STR_PROCESSOR "x86"
#else
#if !_M_IX86_FP
#define STR_PROCESSOR "x86"
#else
#if _M_IX86_FP > 2
#define STR_PROCESSOR "x86-FP-" STRINGIZE(_M_IX86_FP)
#else
#if _M_IX86_FP == 2
#define STR_PROCESSOR "x86-SSE2"
#else
#define STR_PROCESSOR "x86-SSE"
#endif /* _M_IX86 == 2 */
#endif /* _M_IX86_FP > 2 */
#endif /* !_M_IX86_FP */
#endif /* !defined(_M_IX86_FP) */
#endif /* !defined(_M_IX86) */
#ifdef _M_IA64
#define STR_PROCESSOR "Itanium"
#endif
#ifdef _M_X64
#define STR_PROCESSOR "x64"
#endif
#endif /* !defined(STR_PROCESSOR) */
#undef STRINGIZE
#define SIOCGIFFLAGS SIO_GET_INTERFACE_LIST /* used in ntp_io.c */
/*
* Below this line are includes which must happen after the bulk of
* config.h is processed. If you need to add another #include to this
* file the preferred location is near the top, above the similar
* line of hyphens.
* ---------------------------------------------------------------------
*/
/*
* Include standard stat information
*/
#include <isc/stat.h>
#endif /* CONFIG_H */

View File

@ -1,771 +0,0 @@
/*
* ports/winnt/include/gaa_compat.h
*
* This header allows systems without a recent-enough SDK to build NTP
* which can use GetAdaptersAddresses(), related functions and macros.
*/
#ifndef GAA_COMPAT_H
#define GAA_COMPAT_H
#ifdef _W64
# include <iphlpapi.h>
#else /* !_W64 follows */
#pragma warning(push)
/* warning C4201: nonstandard extension used : nameless struct/union */
#pragma warning(disable:4201)
/* warning C4214: nonstandard extension used : bit field types other than int */
#pragma warning(disable:4214)
/* +++++++++++++++++++++++ from nldef.h */
typedef enum {
//
// These values are from iptypes.h.
// They need to fit in a 4 bit field.
//
IpPrefixOriginOther = 0,
IpPrefixOriginManual,
IpPrefixOriginWellKnown,
IpPrefixOriginDhcp,
IpPrefixOriginRouterAdvertisement,
IpPrefixOriginUnchanged = 1 << 4
} NL_PREFIX_ORIGIN;
typedef enum {
//
// These values are from in iptypes.h.
// They need to fit in a 4 bit field.
//
IpSuffixOriginOther = 0,
IpSuffixOriginManual,
IpSuffixOriginWellKnown,
IpSuffixOriginDhcp,
IpSuffixOriginLinkLayerAddress,
IpSuffixOriginRandom,
IpSuffixOriginUnchanged = 1 << 4
} NL_SUFFIX_ORIGIN;
typedef enum {
//
// These values are from in iptypes.h.
//
IpDadStateInvalid = 0,
IpDadStateTentative,
IpDadStateDuplicate,
IpDadStateDeprecated,
IpDadStatePreferred,
} NL_DAD_STATE;
/* +++++++++++++++++++++++ from nldef.h */
/* +++++++++++++++++++++++ from ifdef.h */
typedef ULONG32 NET_IF_OBJECT_ID, *PNET_IF_OBJECT_ID;
typedef enum _NET_IF_ADMIN_STATUS // ifAdminStatus
{
NET_IF_ADMIN_STATUS_UP = 1,
NET_IF_ADMIN_STATUS_DOWN = 2,
NET_IF_ADMIN_STATUS_TESTING = 3
} NET_IF_ADMIN_STATUS, *PNET_IF_ADMIN_STATUS;
typedef enum _NET_IF_OPER_STATUS // ifOperStatus
{
NET_IF_OPER_STATUS_UP = 1,
NET_IF_OPER_STATUS_DOWN = 2,
NET_IF_OPER_STATUS_TESTING = 3,
NET_IF_OPER_STATUS_UNKNOWN = 4,
NET_IF_OPER_STATUS_DORMANT = 5,
NET_IF_OPER_STATUS_NOT_PRESENT = 6,
NET_IF_OPER_STATUS_LOWER_LAYER_DOWN = 7
} NET_IF_OPER_STATUS, *PNET_IF_OPER_STATUS;
//
// Flags to extend operational status
//
#define NET_IF_OPER_STATUS_DOWN_NOT_AUTHENTICATED 0x00000001
#define NET_IF_OPER_STATUS_DOWN_NOT_MEDIA_CONNECTED 0x00000002
#define NET_IF_OPER_STATUS_DORMANT_PAUSED 0x00000004
#define NET_IF_OPER_STATUS_DORMANT_LOW_POWER 0x00000008
typedef UINT32 NET_IF_COMPARTMENT_ID, *PNET_IF_COMPARTMENT_ID;
//
// Define compartment ID type:
//
#define NET_IF_COMPARTMENT_ID_UNSPECIFIED (NET_IF_COMPARTMENT_ID)0
#define NET_IF_COMPARTMENT_ID_PRIMARY (NET_IF_COMPARTMENT_ID)1
#define NET_IF_OID_IF_ALIAS 0x00000001 // identifies the ifAlias string for an interface
#define NET_IF_OID_COMPARTMENT_ID 0x00000002 // identifies the compartment ID for an interface.
#define NET_IF_OID_NETWORK_GUID 0x00000003 // identifies the NetworkGuid for an interface.
#define NET_IF_OID_IF_ENTRY 0x00000004 // identifies statistics for an interface.
//
// Define NetworkGUID type:
//
typedef GUID NET_IF_NETWORK_GUID, *PNET_IF_NETWORK_GUID;
//
// Define macros for an "unspecified" NetworkGUID value to be used in structures
// that haven't had the NET_LUID field filled in yet.
//
#define NET_SET_UNSPECIFIED_NETWORK_GUID(_pNetworkGuid)
#define NET_IS_UNSPECIFIED_NETWORK_GUID(_NetworkGuidValue)
//
// To prevent collisions between user-assigned and system-assigend site-ids,
// we partition the site-id space into two:
// 1. User-Assigned: NET_SITEID_UNSPECIFIED < SiteId < NET_SITEID_MAXUSER
// 2. System-Assigned: NET_SITEID_MAXUSER < SiteId < NET_SITEID_MAXSYSTEM
//
// Note: A network's SiteId doesn't really need to be settable.
// 1. The network profile manager creates a network per network profile.
// 2. NDIS/IF assigns a unique SiteId to each network.
//
#define NET_SITEID_UNSPECIFIED (0)
#define NET_SITEID_MAXUSER (0x07ffffff)
#define NET_SITEID_MAXSYSTEM (0x0fffffff)
C_ASSERT(NET_SITEID_MAXUSER < NET_SITEID_MAXSYSTEM);
typedef enum _NET_IF_RCV_ADDRESS_TYPE // ifRcvAddressType
{
NET_IF_RCV_ADDRESS_TYPE_OTHER = 1,
NET_IF_RCV_ADDRESS_TYPE_VOLATILE = 2,
NET_IF_RCV_ADDRESS_TYPE_NON_VOLATILE = 3
} NET_IF_RCV_ADDRESS_TYPE, *PNET_IF_RCV_ADDRESS_TYPE;
typedef struct _NET_IF_RCV_ADDRESS_LH
{
NET_IF_RCV_ADDRESS_TYPE ifRcvAddressType;
USHORT ifRcvAddressLength;
USHORT ifRcvAddressOffset; // from beginning of this struct
} NET_IF_RCV_ADDRESS_LH, *PNET_IF_RCV_ADDRESS_LH;
typedef struct _NET_IF_ALIAS_LH
{
USHORT ifAliasLength; // in bytes, of ifAlias string
USHORT ifAliasOffset; // in bytes, from beginning of this struct
} NET_IF_ALIAS_LH, *PNET_IF_ALIAS_LH;
#pragma warning(push)
#pragma warning(disable:4214) // bit field types other than int
typedef union _NET_LUID_LH
{
ULONG64 Value;
struct
{
ULONG64 Reserved:24;
ULONG64 NetLuidIndex:24;
ULONG64 IfType:16; // equal to IANA IF type
}Info;
} NET_LUID_LH, *PNET_LUID_LH;
#pragma warning(pop)
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
typedef NET_IF_RCV_ADDRESS_LH NET_IF_RCV_ADDRESS;
typedef NET_IF_RCV_ADDRESS* PNET_IF_RCV_ADDRESS;
typedef NET_IF_ALIAS_LH NET_IF_ALIAS;
typedef NET_IF_ALIAS* PNET_IF_ALIAS;
#endif //NTDDI_LONGHORN
//
// Need to make this visible on all platforms (for the purpose of IF_LUID).
//
typedef NET_LUID_LH NET_LUID;
typedef NET_LUID* PNET_LUID;
//
// IF_LUID
//
// Define the locally unique datalink interface identifier type.
// This type is persistable.
//
typedef NET_LUID IF_LUID, *PIF_LUID;
typedef ULONG NET_IFINDEX, *PNET_IFINDEX; // Interface Index (ifIndex)
typedef UINT16 NET_IFTYPE, *PNET_IFTYPE; // Interface Type (IANA ifType)
#define NET_IFINDEX_UNSPECIFIED (NET_IFINDEX)(0) // Not a valid ifIndex
#define NET_IFLUID_UNSPECIFIED (0) // Not a valid if Luid
//
// Definitions for NET_IF_INFORMATION.Flags
//
#define NIIF_HARDWARE_INTERFACE 0x00000001 // Set iff hardware
#define NIIF_FILTER_INTERFACE 0x00000002
#define NIIF_NDIS_RESERVED1 0x00000004
#define NIIF_NDIS_RESERVED2 0x00000008
#define NIIF_NDIS_RESERVED3 0x00000010
#define NIIF_NDIS_WDM_INTERFACE 0x00000020
#define NIIF_NDIS_ENDPOINT_INTERFACE 0x00000040
#define NIIF_WAN_TUNNEL_TYPE_UNKNOWN ((ULONG)(-1))
//
// Define datalink interface access types.
//
typedef enum _NET_IF_ACCESS_TYPE
{
NET_IF_ACCESS_LOOPBACK = 1,
NET_IF_ACCESS_BROADCAST = 2,
NET_IF_ACCESS_POINT_TO_POINT = 3,
NET_IF_ACCESS_POINT_TO_MULTI_POINT = 4,
NET_IF_ACCESS_MAXIMUM = 5
} NET_IF_ACCESS_TYPE, *PNET_IF_ACCESS_TYPE;
//
// Define datalink interface direction types.
//
typedef enum _NET_IF_DIRECTION_TYPE
{
NET_IF_DIRECTION_SENDRECEIVE,
NET_IF_DIRECTION_SENDONLY,
NET_IF_DIRECTION_RECEIVEONLY,
NET_IF_DIRECTION_MAXIMUM
} NET_IF_DIRECTION_TYPE, *PNET_IF_DIRECTION_TYPE;
typedef enum _NET_IF_CONNECTION_TYPE
{
NET_IF_CONNECTION_DEDICATED = 1,
NET_IF_CONNECTION_PASSIVE = 2,
NET_IF_CONNECTION_DEMAND = 3,
NET_IF_CONNECTION_MAXIMUM = 4
} NET_IF_CONNECTION_TYPE, *PNET_IF_CONNECTION_TYPE;
typedef enum _NET_IF_MEDIA_CONNECT_STATE
{
MediaConnectStateUnknown,
MediaConnectStateConnected,
MediaConnectStateDisconnected
} NET_IF_MEDIA_CONNECT_STATE, *PNET_IF_MEDIA_CONNECT_STATE;
#define NET_IF_LINK_SPEED_UNKNOWN ((ULONG64)(-1))
//
// Defines the duplex state of media
//
typedef enum _NET_IF_MEDIA_DUPLEX_STATE
{
MediaDuplexStateUnknown,
MediaDuplexStateHalf,
MediaDuplexStateFull
} NET_IF_MEDIA_DUPLEX_STATE, *PNET_IF_MEDIA_DUPLEX_STATE;
// Special values for fields in NET_PHYSICAL_LOCATION
#define NIIF_BUS_NUMBER_UNKNOWN ((ULONG)(-1))
#define NIIF_SLOT_NUMBER_UNKNOWN ((ULONG)(-1))
#define NIIF_FUNCTION_NUMBER_UNKNOWN ((ULONG)(-1))
typedef struct _NET_PHYSICAL_LOCATION_LH
{
ULONG BusNumber; // Physical location
ULONG SlotNumber; // ... for hardware
ULONG FunctionNumber; // ... devices.
} NET_PHYSICAL_LOCATION_LH, *PNET_PHYSICAL_LOCATION_LH;
//
// maximum string size in -wchar- units
//
#define IF_MAX_STRING_SIZE 256
typedef struct _IF_COUNTED_STRING_LH
{
USHORT Length; // in -Bytes-
WCHAR String[IF_MAX_STRING_SIZE + 1];
} IF_COUNTED_STRING_LH, *PIF_COUNTED_STRING_LH;
#define IF_MAX_PHYS_ADDRESS_LENGTH 32
typedef struct _IF_PHYSICAL_ADDRESS_LH
{
USHORT Length;
UCHAR Address[IF_MAX_PHYS_ADDRESS_LENGTH];
} IF_PHYSICAL_ADDRESS_LH, *PIF_PHYSICAL_ADDRESS_LH;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
typedef NET_PHYSICAL_LOCATION_LH NET_PHYSICAL_LOCATION;
typedef NET_PHYSICAL_LOCATION* PNET_PHYSICAL_LOCATION;
typedef IF_COUNTED_STRING_LH IF_COUNTED_STRING;
typedef IF_COUNTED_STRING* PIF_COUNTED_STRING;
typedef IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS;
typedef IF_PHYSICAL_ADDRESS* PIF_PHYSICAL_ADDRESS;
#endif
//
// IF_INDEX
//
// Define the interface index type.
// This type is not persistable.
// This must be unsigned (not an enum) to replace previous uses of
// an index that used a DWORD type.
//
typedef NET_IFINDEX IF_INDEX, *PIF_INDEX;
#define IFI_UNSPECIFIED NET_IFINDEX_UNSPECIFIED
//
// Get definitions for IFTYPE and IF_ACCESS_TYPE.
//
#include <ipifcons.h>
//
// Types of tunnels (sub-type of IF_TYPE when IF_TYPE is IF_TYPE_TUNNEL).
// See http://www.iana.org/assignments/ianaiftype-mib.
//
typedef enum {
TUNNEL_TYPE_NONE = 0,
TUNNEL_TYPE_OTHER = 1,
TUNNEL_TYPE_DIRECT = 2,
TUNNEL_TYPE_6TO4 = 11,
TUNNEL_TYPE_ISATAP = 13,
TUNNEL_TYPE_TEREDO = 14,
} TUNNEL_TYPE, *PTUNNEL_TYPE;
//
// IF_ADMINISTRATIVE_STATE
//
// Datalink Interface Administrative State.
// Indicates whether the interface has been administratively enabled.
//
typedef enum _IF_ADMINISTRATIVE_STATE {
IF_ADMINISTRATIVE_DISABLED,
IF_ADMINISTRATIVE_ENABLED,
IF_ADMINISTRATIVE_DEMANDDIAL,
} IF_ADMINISTRATIVE_STATE, *PIF_ADMINISTRATIVE_STATE;
//
// Note: Interface is Operational iff
// ((MediaSense is Connected) and (AdministrativeState is Enabled))
// or
// ((MediaSense is Connected) and (AdministrativeState is OnDemand))
//
// !Operational iff
// ((MediaSense != Connected) or (AdministrativeState is Disabled))
//
//
// OperStatus values from RFC 2863
//
typedef enum {
IfOperStatusUp = 1,
IfOperStatusDown,
IfOperStatusTesting,
IfOperStatusUnknown,
IfOperStatusDormant,
IfOperStatusNotPresent,
IfOperStatusLowerLayerDown
} IF_OPER_STATUS;
/* +++++++++++++++++++++++ from ifdef.h */
/* +++++++++++++++++++++++ from iptypes.h */
// Definitions and structures used by getnetworkparams and getadaptersinfo apis
#define MAX_ADAPTER_DESCRIPTION_LENGTH 128 // arb.
#define MAX_ADAPTER_NAME_LENGTH 256 // arb.
#define MAX_ADAPTER_ADDRESS_LENGTH 8 // arb.
#define DEFAULT_MINIMUM_ENTITIES 32 // arb.
#define MAX_HOSTNAME_LEN 128 // arb.
#define MAX_DOMAIN_NAME_LEN 128 // arb.
#define MAX_SCOPE_ID_LEN 256 // arb.
#define MAX_DHCPV6_DUID_LENGTH 130 // RFC 3315.
//
// types
//
// Node Type
#define BROADCAST_NODETYPE 1
#define PEER_TO_PEER_NODETYPE 2
#define MIXED_NODETYPE 4
#define HYBRID_NODETYPE 8
//
// IP_ADDRESS_STRING - store an IP address as a dotted decimal string
//
typedef struct {
char String[4 * 4];
} IP_ADDRESS_STRING, *PIP_ADDRESS_STRING, IP_MASK_STRING, *PIP_MASK_STRING;
//
// IP_ADDR_STRING - store an IP address with its corresponding subnet mask,
// both as dotted decimal strings
//
typedef struct _IP_ADDR_STRING {
struct _IP_ADDR_STRING* Next;
IP_ADDRESS_STRING IpAddress;
IP_MASK_STRING IpMask;
DWORD Context;
} IP_ADDR_STRING, *PIP_ADDR_STRING;
//
// ADAPTER_INFO - per-adapter information. All IP addresses are stored as
// strings
//
typedef struct _IP_ADAPTER_INFO {
struct _IP_ADAPTER_INFO* Next;
DWORD ComboIndex;
char AdapterName[MAX_ADAPTER_NAME_LENGTH + 4];
char Description[MAX_ADAPTER_DESCRIPTION_LENGTH + 4];
UINT AddressLength;
BYTE Address[MAX_ADAPTER_ADDRESS_LENGTH];
DWORD Index;
UINT Type;
UINT DhcpEnabled;
PIP_ADDR_STRING CurrentIpAddress;
IP_ADDR_STRING IpAddressList;
IP_ADDR_STRING GatewayList;
IP_ADDR_STRING DhcpServer;
BOOL HaveWins;
IP_ADDR_STRING PrimaryWinsServer;
IP_ADDR_STRING SecondaryWinsServer;
time_t LeaseObtained;
time_t LeaseExpires;
} IP_ADAPTER_INFO, *PIP_ADAPTER_INFO;
#ifdef _WINSOCK2API_
//
// The following types require Winsock2.
//
typedef NL_PREFIX_ORIGIN IP_PREFIX_ORIGIN;
typedef NL_SUFFIX_ORIGIN IP_SUFFIX_ORIGIN;
typedef NL_DAD_STATE IP_DAD_STATE;
typedef struct _IP_ADAPTER_UNICAST_ADDRESS_LH {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
DWORD Flags;
};
};
struct _IP_ADAPTER_UNICAST_ADDRESS_LH *Next;
SOCKET_ADDRESS Address;
IP_PREFIX_ORIGIN PrefixOrigin;
IP_SUFFIX_ORIGIN SuffixOrigin;
IP_DAD_STATE DadState;
ULONG ValidLifetime;
ULONG PreferredLifetime;
ULONG LeaseLifetime;
UINT8 OnLinkPrefixLength;
} IP_ADAPTER_UNICAST_ADDRESS_LH,
*PIP_ADAPTER_UNICAST_ADDRESS_LH;
typedef struct _IP_ADAPTER_UNICAST_ADDRESS_XP {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
DWORD Flags;
};
};
struct _IP_ADAPTER_UNICAST_ADDRESS_XP *Next;
SOCKET_ADDRESS Address;
IP_PREFIX_ORIGIN PrefixOrigin;
IP_SUFFIX_ORIGIN SuffixOrigin;
IP_DAD_STATE DadState;
ULONG ValidLifetime;
ULONG PreferredLifetime;
ULONG LeaseLifetime;
} IP_ADAPTER_UNICAST_ADDRESS_XP, *PIP_ADAPTER_UNICAST_ADDRESS_XP;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
typedef IP_ADAPTER_UNICAST_ADDRESS_LH IP_ADAPTER_UNICAST_ADDRESS;
typedef IP_ADAPTER_UNICAST_ADDRESS_LH *PIP_ADAPTER_UNICAST_ADDRESS;
#elif (NTDDI_VERSION >= NTDDI_WINXP)
typedef IP_ADAPTER_UNICAST_ADDRESS_XP IP_ADAPTER_UNICAST_ADDRESS;
typedef IP_ADAPTER_UNICAST_ADDRESS_XP *PIP_ADAPTER_UNICAST_ADDRESS;
#endif
//
// Bit values of IP_ADAPTER_UNICAST_ADDRESS Flags field.
//
#define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x01
#define IP_ADAPTER_ADDRESS_TRANSIENT 0x02
typedef struct _IP_ADAPTER_ANYCAST_ADDRESS_XP {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
DWORD Flags;
};
};
struct _IP_ADAPTER_ANYCAST_ADDRESS_XP *Next;
SOCKET_ADDRESS Address;
} IP_ADAPTER_ANYCAST_ADDRESS_XP, *PIP_ADAPTER_ANYCAST_ADDRESS_XP;
#if (NTDDI_VERSION >= NTDDI_WINXP)
typedef IP_ADAPTER_ANYCAST_ADDRESS_XP IP_ADAPTER_ANYCAST_ADDRESS;
typedef IP_ADAPTER_ANYCAST_ADDRESS_XP *PIP_ADAPTER_ANYCAST_ADDRESS;
#endif
typedef struct _IP_ADAPTER_MULTICAST_ADDRESS_XP {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
DWORD Flags;
};
};
struct _IP_ADAPTER_MULTICAST_ADDRESS_XP *Next;
SOCKET_ADDRESS Address;
} IP_ADAPTER_MULTICAST_ADDRESS_XP, *PIP_ADAPTER_MULTICAST_ADDRESS_XP;
#if (NTDDI_VERSION >= NTDDI_WINXP)
typedef IP_ADAPTER_MULTICAST_ADDRESS_XP IP_ADAPTER_MULTICAST_ADDRESS;
typedef IP_ADAPTER_MULTICAST_ADDRESS_XP *PIP_ADAPTER_MULTICAST_ADDRESS;
#endif
typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS_XP {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
DWORD Reserved;
};
};
struct _IP_ADAPTER_DNS_SERVER_ADDRESS_XP *Next;
SOCKET_ADDRESS Address;
} IP_ADAPTER_DNS_SERVER_ADDRESS_XP, *PIP_ADAPTER_DNS_SERVER_ADDRESS_XP;
#if (NTDDI_VERSION >= NTDDI_WINXP)
typedef IP_ADAPTER_DNS_SERVER_ADDRESS_XP IP_ADAPTER_DNS_SERVER_ADDRESS;
typedef IP_ADAPTER_DNS_SERVER_ADDRESS_XP *PIP_ADAPTER_DNS_SERVER_ADDRESS;
#endif
typedef struct _IP_ADAPTER_WINS_SERVER_ADDRESS_LH {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
DWORD Reserved;
};
};
struct _IP_ADAPTER_WINS_SERVER_ADDRESS_LH *Next;
SOCKET_ADDRESS Address;
} IP_ADAPTER_WINS_SERVER_ADDRESS_LH, *PIP_ADAPTER_WINS_SERVER_ADDRESS_LH;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
typedef IP_ADAPTER_WINS_SERVER_ADDRESS_LH IP_ADAPTER_WINS_SERVER_ADDRESS;
typedef IP_ADAPTER_WINS_SERVER_ADDRESS_LH *PIP_ADAPTER_WINS_SERVER_ADDRESS;
#endif
typedef struct _IP_ADAPTER_GATEWAY_ADDRESS_LH {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
DWORD Reserved;
};
};
struct _IP_ADAPTER_GATEWAY_ADDRESS_LH *Next;
SOCKET_ADDRESS Address;
} IP_ADAPTER_GATEWAY_ADDRESS_LH, *PIP_ADAPTER_GATEWAY_ADDRESS_LH;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
typedef IP_ADAPTER_GATEWAY_ADDRESS_LH IP_ADAPTER_GATEWAY_ADDRESS;
typedef IP_ADAPTER_GATEWAY_ADDRESS_LH *PIP_ADAPTER_GATEWAY_ADDRESS;
#endif
typedef struct _IP_ADAPTER_PREFIX_XP {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
DWORD Flags;
};
};
struct _IP_ADAPTER_PREFIX_XP *Next;
SOCKET_ADDRESS Address;
ULONG PrefixLength;
} IP_ADAPTER_PREFIX_XP, *PIP_ADAPTER_PREFIX_XP;
#if (NTDDI_VERSION >= NTDDI_WINXP)
typedef IP_ADAPTER_PREFIX_XP IP_ADAPTER_PREFIX;
typedef IP_ADAPTER_PREFIX_XP *PIP_ADAPTER_PREFIX;
#endif
//
// Bit values of IP_ADAPTER_ADDRESSES Flags field.
//
#define IP_ADAPTER_DDNS_ENABLED 0x00000001
#define IP_ADAPTER_REGISTER_ADAPTER_SUFFIX 0x00000002
#define IP_ADAPTER_DHCP_ENABLED 0x00000004
#define IP_ADAPTER_RECEIVE_ONLY 0x00000008
#define IP_ADAPTER_NO_MULTICAST 0x00000010
#define IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG 0x00000020
#define IP_ADAPTER_NETBIOS_OVER_TCPIP_ENABLED 0x00000040
#define IP_ADAPTER_IPV4_ENABLED 0x00000080
#define IP_ADAPTER_IPV6_ENABLED 0x00000100
typedef struct _IP_ADAPTER_ADDRESSES_LH {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
IF_INDEX IfIndex;
};
};
struct _IP_ADAPTER_ADDRESSES_LH *Next;
PCHAR AdapterName;
PIP_ADAPTER_UNICAST_ADDRESS_LH FirstUnicastAddress;
PIP_ADAPTER_ANYCAST_ADDRESS_XP FirstAnycastAddress;
PIP_ADAPTER_MULTICAST_ADDRESS_XP FirstMulticastAddress;
PIP_ADAPTER_DNS_SERVER_ADDRESS_XP FirstDnsServerAddress;
PWCHAR DnsSuffix;
PWCHAR Description;
PWCHAR FriendlyName;
BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
ULONG PhysicalAddressLength;
union {
ULONG Flags;
struct {
ULONG DdnsEnabled : 1;
ULONG RegisterAdapterSuffix : 1;
ULONG Dhcpv4Enabled : 1;
ULONG ReceiveOnly : 1;
ULONG NoMulticast : 1;
ULONG Ipv6OtherStatefulConfig : 1;
ULONG NetbiosOverTcpipEnabled : 1;
ULONG Ipv4Enabled : 1;
ULONG Ipv6Enabled : 1;
ULONG Ipv6ManagedAddressConfigurationSupported : 1;
};
};
ULONG Mtu;
IFTYPE IfType;
IF_OPER_STATUS OperStatus;
IF_INDEX Ipv6IfIndex;
ULONG ZoneIndices[16];
PIP_ADAPTER_PREFIX_XP FirstPrefix;
ULONG64 TransmitLinkSpeed;
ULONG64 ReceiveLinkSpeed;
PIP_ADAPTER_WINS_SERVER_ADDRESS_LH FirstWinsServerAddress;
PIP_ADAPTER_GATEWAY_ADDRESS_LH FirstGatewayAddress;
ULONG Ipv4Metric;
ULONG Ipv6Metric;
IF_LUID Luid;
SOCKET_ADDRESS Dhcpv4Server;
NET_IF_COMPARTMENT_ID CompartmentId;
NET_IF_NETWORK_GUID NetworkGuid;
NET_IF_CONNECTION_TYPE ConnectionType;
TUNNEL_TYPE TunnelType;
//
// DHCP v6 Info.
//
SOCKET_ADDRESS Dhcpv6Server;
BYTE Dhcpv6ClientDuid[MAX_DHCPV6_DUID_LENGTH];
ULONG Dhcpv6ClientDuidLength;
ULONG Dhcpv6Iaid;
} IP_ADAPTER_ADDRESSES_LH,
*PIP_ADAPTER_ADDRESSES_LH;
typedef struct _IP_ADAPTER_ADDRESSES_XP {
union {
ULONGLONG Alignment;
struct {
ULONG Length;
DWORD IfIndex;
};
};
struct _IP_ADAPTER_ADDRESSES_XP *Next;
PCHAR AdapterName;
PIP_ADAPTER_UNICAST_ADDRESS_XP FirstUnicastAddress;
PIP_ADAPTER_ANYCAST_ADDRESS_XP FirstAnycastAddress;
PIP_ADAPTER_MULTICAST_ADDRESS_XP FirstMulticastAddress;
PIP_ADAPTER_DNS_SERVER_ADDRESS_XP FirstDnsServerAddress;
PWCHAR DnsSuffix;
PWCHAR Description;
PWCHAR FriendlyName;
BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
DWORD PhysicalAddressLength;
DWORD Flags;
DWORD Mtu;
DWORD IfType;
IF_OPER_STATUS OperStatus;
DWORD Ipv6IfIndex;
DWORD ZoneIndices[16];
PIP_ADAPTER_PREFIX_XP FirstPrefix;
} IP_ADAPTER_ADDRESSES_XP,
*PIP_ADAPTER_ADDRESSES_XP;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
typedef IP_ADAPTER_ADDRESSES_LH IP_ADAPTER_ADDRESSES;
typedef IP_ADAPTER_ADDRESSES_LH *PIP_ADAPTER_ADDRESSES;
#elif (NTDDI_VERSION >= NTDDI_WINXP)
typedef IP_ADAPTER_ADDRESSES_XP IP_ADAPTER_ADDRESSES;
typedef IP_ADAPTER_ADDRESSES_XP *PIP_ADAPTER_ADDRESSES;
#else
//
// For platforms other platforms that are including
// the file but not using the types.
//
typedef IP_ADAPTER_ADDRESSES_XP IP_ADAPTER_ADDRESSES;
typedef IP_ADAPTER_ADDRESSES_XP *PIP_ADAPTER_ADDRESSES;
#endif
//
// Flags used as argument to GetAdaptersAddresses().
// "SKIP" flags are added when the default is to include the information.
// "INCLUDE" flags are added when the default is to skip the information.
//
#define GAA_FLAG_SKIP_UNICAST 0x0001
#define GAA_FLAG_SKIP_ANYCAST 0x0002
#define GAA_FLAG_SKIP_MULTICAST 0x0004
#define GAA_FLAG_SKIP_DNS_SERVER 0x0008
#define GAA_FLAG_INCLUDE_PREFIX 0x0010
#define GAA_FLAG_SKIP_FRIENDLY_NAME 0x0020
#define GAA_FLAG_INCLUDE_WINS_INFO 0x0040
#define GAA_FLAG_INCLUDE_GATEWAYS 0x0080
#define GAA_FLAG_INCLUDE_ALL_INTERFACES 0x0100
#define GAA_FLAG_INCLUDE_ALL_COMPARTMENTS 0x0200
#define GAA_FLAG_INCLUDE_TUNNEL_BINDINGORDER 0x0400
#endif /* _WINSOCK2API_ */
/* +++++++++++++++++++++++ from iptypes.h */
/* +++++++++++++++++++++++ from iphlpapi.h */
#ifdef _WINSOCK2API_
//
// The following functions require Winsock2.
//
ULONG
WINAPI
GetAdaptersAddresses(
IN ULONG Family,
IN ULONG Flags,
IN PVOID Reserved,
__out_bcount_opt(*SizePointer) PIP_ADAPTER_ADDRESSES AdapterAddresses,
IN OUT PULONG SizePointer
);
#endif
/* +++++++++++++++++++++++ from iphlpapi.h */
#pragma warning(pop)
#endif /* !_W64 */
#endif /* GAA_COMPAT_H */

View File

@ -1,91 +0,0 @@
/*
* hopf_PCI_io.h
* structur definition and prototype Function declarations
*
* Date: 21.03.2000 Revision: 01.10
*
* Copyright (C) 1999, 2000 by Bernd Altmeier altmeier@ATLSoft.de
*
*/
#if defined(__cplusplus)
extern "C"{
#endif
#ifndef __inpREAD_H
#define __inpREAD_H
typedef struct _CLOCKVER {
CHAR cVersion[255];
} CLOCKVER, *PCLOCKVER, *LPCLOCKVER;
typedef struct _HOPFTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
WORD wStatus;
} HOPFTIME, *PHOPFTIME, *LPHOPFTIME;
typedef struct _SATSTAT {
BYTE wVisible;
BYTE wMode;
BYTE wSat0;
BYTE wRat0;
BYTE wSat1;
BYTE wRat1;
BYTE wSat2;
BYTE wRat2;
BYTE wSat3;
BYTE wRat3;
BYTE wSat4;
BYTE wRat4;
BYTE wSat5;
BYTE wRat5;
BYTE wSat6;
BYTE wRat6;
BYTE wSat7;
BYTE wRat7;
} SATSTAT, *PSATSTAT, *LPSATSTAT;
typedef struct _GPSPOS {
LONG wAltitude; // Höhe immer 0
LONG wLongitude; // Länge in Msec
LONG wLatitude; // Breite in Msec
} GPSPOS, *PGPSPOS, *LPGPSPOS;
typedef struct _DCFANTENNE {
BYTE bStatus;
BYTE bStatus1;
WORD wAntValue;
} DCFANTENNE, *PDCFANTENNE, *LPDCFANTENNE;
// Function declarations
BOOL OpenHopfDevice();
BOOL CloseHopfDevice();
VOID GetHopfTime(LPHOPFTIME Data, DWORD Offset);
VOID GetHopfLocalTime(LPHOPFTIME Data);
VOID GetHopfSystemTime(LPHOPFTIME Data);
VOID GetSatData(LPSATSTAT Data);
VOID GetDiffTime(LPLONG Data);
VOID GetPosition(LPGPSPOS Data);
VOID GetHardwareVersion(LPCLOCKVER Data);
VOID GetHardwareData(LPDWORD Data,WORD Ofs);
VOID GetDCFAntenne(LPDCFANTENNE Data);
#if defined(__cplusplus)
}
#endif
#endif /* inpREAD_H */

View File

@ -1,4 +0,0 @@
/**************************************************************
* Dummy Header for Unix to Windows NT portability
* Created for NTP package
**************************************************************/

View File

@ -1,27 +0,0 @@
#if !defined __ntp_iocompletionport_h
# define __ntp_iocompletionport_h
#include "ntp_fp.h"
#include "ntp.h"
#include "clockstuff.h"
#include "ntp_worker.h"
# if defined(HAVE_IO_COMPLETION_PORT)
extern void init_io_completion_port(void);
extern void uninit_io_completion_port(void);
extern int io_completion_port_add_socket(SOCKET fd, struct interface *);
struct refclockio; /* in ntp_refclock.h but inclusion here triggers problems */
extern int io_completion_port_add_clock_io(struct refclockio *rio);
extern void io_completion_port_remove_clock_io(struct refclockio *rio);
extern int io_completion_port_sendto(int, void *, size_t, sockaddr_u *);
extern int GetReceivedBuffers(void);
extern HANDLE WaitableExitEventHandle;
# endif
#endif

View File

@ -1,6 +0,0 @@
#ifndef NTP_TIMER_H
#define NTP_TIMER_H
extern void timer_clr_stats(void);
#endif /* NTP_TIMER_H */

View File

@ -1,31 +0,0 @@
/*
* Copyright (C) 1999-2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
* DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
* INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef NTSERVICE_H
#define NTSERVICE_H
#define NTP_DISPLAY_NAME "NetworkTimeProtocol"
#define NTP_SERVICE_NAME "ntpd"
void ntservice_init(void);
void UpdateSCM(DWORD);
void WINAPI ServiceControl(DWORD dwCtrlCode);
void ntservice_shutdown(void);
BOOL ntservice_systemisshuttingdown(void);
BOOL WINAPI OnConsoleEvent(DWORD dwCtrlType);
#endif /* NTSERVICE_H */

View File

@ -1,244 +0,0 @@
/*
* stdint_msvc.h - C99 integer types for older Visual C compilers
*
* Written by Juergen Perlinger (perlinger@ntp.org) for the NTP project.
* The contents of 'html/copyright.html' apply.
*
* ----------------------------------------------------------------------
*
* Fairly straight forward implementation of the C99 standard integer
* types.
*/
#ifndef __STDINT_INCLUDED
#define __STDINT_INCLUDED
#if !defined(_MSC_VER) || _MSC_VER >= 1800
# error Use only with MSVC6 - MSVC11(VS2012)
#endif
#include <crtdefs.h>
#include <limits.h>
/* ---------------------------------------------------------------------
* We declare the min/max values, using the MSVC syntax for literals of
* a given bit width.
*/
#define _VC_SI_LIT(lit,wbit) (lit ## i ## wbit)
#define _VC_UI_LIT(lit,wbit) (lit ## ui ## wbit)
/* ---------------------------------------------------------------------
* Exact width integer types
*/
typedef __int8 int8_t;
typedef __int16 int16_t;
typedef __int32 int32_t;
typedef __int64 int64_t;
typedef unsigned __int8 uint8_t;
typedef unsigned __int16 uint16_t;
typedef unsigned __int32 uint32_t;
typedef unsigned __int64 uint64_t;
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
# define INT8_MIN _I8_MIN
# define INT8_MAX _I8_MAX
# define UINT8_MAX _UI8_MAX
# define INT16_MIN _I16_MIN
# define INT16_MAX _I16_MAX
# define UINT16_MAX _UI16_MAX
# define INT32_MIN _I32_MIN
# define INT32_MAX _I32_MAX
# define UINT32_MAX _UI32_MAX
# define INT64_MIN _I64_MIN
# define INT64_MAX _I64_MAX
# define UINT64_MAX _UI64_MAX
#endif
/* ---------------------------------------------------------------------
* Least-size integers
*
* These are mapped to exact size.
*/
typedef __int8 int_least8_t;
typedef __int16 int_least16_t;
typedef __int32 int_least32_t;
typedef __int64 int_least64_t;
typedef unsigned __int8 uint_least8_t;
typedef unsigned __int16 uint_least16_t;
typedef unsigned __int32 uint_least32_t;
typedef unsigned __int64 uint_least64_t;
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
#define INT_LEAST8_MIN _I8_MIN
#define INT_LEAST8_MAX _I8_MAX
#define UINT_LEAST8_MAX _UI8_MAX
#define INT_LEAST16_MIN _I16_MIN
#define INT_LEAST16_MAX _I16_MAX
#define UINT_LEAST16_MAX _UI16_MAX
#define INT_LEAST32_MIN _I32_MIN
#define INT_LEAST32_MAX _I32_MAX
#define UINT_LEAST32_MAX _UI32_MAX
#define INT_LEAST64_MIN _I64_MIN
#define INT_LEAST64_MAX _I64_MAX
#define UINT_LEAST64_MAX _UI64_MAX
#endif
/* ---------------------------------------------------------------------
* least-size, fastest integer
*
* The 'FAST' types are all 32 bits, except the 64 bit quantity; as the
* natural register width is 32 bits, quantities of that size are fastest
* to operate on naturally. (This even holds for the x86_64; MSVC uses
* the 'llp64' model.
*/
typedef __int32 int_fast8_t;
typedef __int32 int_fast16_t;
typedef __int32 int_fast32_t;
typedef __int64 int_fast64_t;
typedef unsigned __int32 uint_fast8_t;
typedef unsigned __int32 uint_fast16_t;
typedef unsigned __int32 uint_fast32_t;
typedef unsigned __int64 uint_fast64_t;
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
#define INT_FAST8_MIN _I32_MIN
#define INT_FAST8_MAX _I32_MAX
#define UINT_FAST8_MAX _UI32_MAX
#define INT_FAST16_MIN _I32_MIN
#define INT_FAST16_MAX _I32_MAX
#define UINT_FAST16_MAX _UI32_MAX
#define INT_FAST32_MIN _I32_MIN
#define INT_FAST32_MAX _I32_MAX
#define UINT_FAST32_MAX _UI32_MAX
#define INT_FAST64_MIN _I64_MIN
#define INT_FAST64_MAX _I64_MAX
#define UINT_FAST64_MAX _UI64_MAX
#endif
/* ---------------------------------------------------------------------
* The (u)intptr_t, ptrdiff_t and size_t definitions depend on the
* target: 32bit for x86, and 64bit for x64, aka amd64. Well, we
* have to bite the bullet.
*/
/* ------------------------------------------------------------------ */
# if defined(_WIN64) || defined(WIN64)
/* ------------------------------------------------------------------ */
# ifndef _INTPTR_T_DEFINED
# define _INTPTR_T_DEFINED
typedef __int64 intptr_t;
# endif
# ifndef _UINTPTR_T_DEFINED
# define _UINTPTR_T_DEFINED
typedef unsigned __int64 uintptr_t;
# endif
# ifndef _PTRDIFF_T_DEFINED
# define _PTRDIFF_T_DEFINED
typedef __int64 ptrdiff_t;
# endif
# if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
# ifndef INTPTR_MIN
# define INTPTR_MIN _I64_MIN
# endif
# ifndef INTPTR_MAX
# define INTPTR_MAX _I64_MAX
# endif
# ifndef UINTPTR_MAX
# define UINTPTR_MAX _UI64_MAX
# endif
# ifndef PTRDIFF_MIN
# define PTRDIFF_MIN _I64_MIN
# endif
# ifndef PTRDIFF_MAX
# define PTRDIFF_MAX _I64_MAX
# endif
# endif
/* ------------------------------------------------------------------ */
#else /* 32 bit target assumed here! */
/* ------------------------------------------------------------------ */
# ifndef _INTPTR_T_DEFINED
# define _INTPTR_T_DEFINED
typedef __int32 intptr_t;
# endif
# ifndef _UINTPTR_T_DEFINED
# define _UINTPTR_T_DEFINED
typedef unsigned __int32 uintptr_t;
# endif
# ifndef _PTRDIFF_T_DEFINED
# define _PTRDIFF_T_DEFINED
typedef __int64 ptrdiff_t;
# endif
# if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
# ifndef INTPTR_MIN
# define INTPTR_MIN _I32_MIN
# endif
# ifndef INTPTR_MAX
# define INTPTR_MAX _I32_MAX
# endif
# ifndef UINTPTR_MAX
# define UINTPTR_MAX _UI32_MAX
# endif
# ifndef PTRDIFF_MIN
# define PTRDIFF_MIN _I32_MIN
# endif
# ifndef PTRDIFF_MAX
# define PTRDIFF_MAX _I32_MAX
# endif
# endif
#endif /* platform dependent stuff */
/* ---------------------------------------------------------------------
* max integer is 64-bit integer
*/
typedef __int64 intmax_t;
typedef unsigned __int64 uintmax_t;
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
# define INTMAX_MIN _I64_MIN
# define INTMAX_MAX _I64_MAX
# define UINTMAX_MAX _UI64_MAX
#endif
/* ---------------------------------------------------------------------
* limit for size_t (older MSVC versions lack that one)
*/
#if _MSC_VER <=1200
# if defined(_WIN64) || defined(WIN64)
# define SIZE_MAX _UI64_MAX
#else
# define SIZE_MAX _UI32_MAX
# endif
#endif
/* ---------------------------------------------------------------------
* construct numerical literals with precise size
*/
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
# define INT8_C(lit) _VC_SI_LIT(lit,8)
# define UINT8_C(lit) _VC_UI_LIT(lit,8)
# define INT16_C(lit) _VC_SI_LIT(lit,16)
# define UINT16_C(lit) _VC_UI_LIT(lit,16)
# define INT32_C(lit) _VC_SI_LIT(lit,32)
# define UINT32_C(lit) _VC_UI_LIT(lit,32)
# define INT64_C(lit) _VC_SI_LIT(lit,64)
# define UINT64_C(lit) _VC_UI_LIT(lit,64)
# define INTMAX_C(lit) _VC_SI_LIT(lit,64)
# define UINTMAX_C(lit) _VC_UI_LIT(lit,64)
#endif
#endif
/**** EOF ****/

View File

@ -1,61 +0,0 @@
/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
/* A substitute for ISO C11 <stdnoreturn.h>.
Copyright 2012-2014 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, see <http://www.gnu.org/licenses/>. */
/* Written by Paul Eggert. */
#ifndef noreturn
/* ISO C11 <stdnoreturn.h> for platforms that lack it.
References:
ISO C11 (latest free draft
<http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf>)
section 7.23 */
/* The definition of _Noreturn is copied here. */
#if !defined _Noreturn && __STDC_VERSION__ < 201112
# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
|| 0x5110 <= __SUNPRO_C)
# define _Noreturn __attribute__ ((__noreturn__))
# elif 1200 <= _MSC_VER
# define _Noreturn __declspec (noreturn)
# else
# define _Noreturn
# endif
#endif
#if 1200 <= _MSC_VER
/* Standard include files on this platform contain declarations like
"__declspec (noreturn) void abort (void);". "#define noreturn
_Noreturn" would cause this declaration to be rewritten to the
invalid "__declspec (__declspec (noreturn)) void abort (void);".
Instead, define noreturn to empty, so that such declarations are
rewritten to "__declspec () void abort (void);", which is
equivalent to "void abort (void);"; this gives up on noreturn's
advice to the compiler but at least it is valid code. */
# define noreturn /*empty*/
#else
# define noreturn _Noreturn
#endif
/* Did he ever return?
No he never returned
And his fate is still unlearn'd ...
-- Steiner J, Hawes BL. M.T.A. (1949) */
#endif /* noreturn */

View File

@ -1,11 +0,0 @@
/**************************************************************
* Dummy Header for Unix to Windows NT portability
* Created for NTP package
**************************************************************/
#ifndef _IOCTL_H
#define _IOCTL_H
#include "win32_io.h"
#endif

View File

@ -1,4 +0,0 @@
/**************************************************************
* Dummy Header for Unix to Windows NT portability
* Created for NTP package
**************************************************************/

View File

@ -1,10 +0,0 @@
/*
* ports/winnt/include/sys/resource.h
*
* routines declared in Unix systems' sys/resource.h
*/
#define PRIO_PROCESS 0
#define NTP_PRIO (-12)
int setpriority(int, int, int); /* winnt\libntp\setpriority.c */

View File

@ -1,4 +0,0 @@
/**************************************************************
* Dummy Header for Unix to Windows NT portability
* Created for NTP package
**************************************************************/

View File

@ -1,25 +0,0 @@
/*
* ports/winnt/include/sys/time.h
*
* routines declared in Unix systems' sys/time.h
*/
#ifndef SYS_TIME_H
#define SYS_TIME_H
#include "ntp_types.h"
#include <time.h>
#include <sys/timeb.h>
typedef struct timespec {
time_t tv_sec;
long tv_nsec;
} timespec_t;
#define TIMEOFDAY 0 /* getclock() clktyp arg */
extern int getclock(int, struct timespec *ts);
extern int gettimeofday(struct timeval *, void *);
extern int settimeofday(struct timeval *);
extern void init_win_precise_time(void);
#endif /* SYS_TIME_H */

View File

@ -1,4 +0,0 @@
/**************************************************************
* Dummy Header for Unix to Windows NT portability
* Created for NTP package
**************************************************************/

View File

@ -1,82 +0,0 @@
/*
* Copyright (C) 2001 Internet Software Consortium.
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
* DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
* INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
* FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/* From BIND 9 lib/isc/include/isc/: syslog.h,v 1.4 2002/08/01 03:43:31 mayer */
#ifndef _SYSLOG_H
#define _SYSLOG_H
#include <stdio.h>
/* Constant definitions for openlog() */
#define LOG_PID 1
#define LOG_CONS 2
/* NT event log does not support facility level */
#define LOG_KERN 0
#define LOG_USER 0
#define LOG_MAIL 0
#define LOG_DAEMON 0
#define LOG_AUTH 0
#define LOG_SYSLOG 0
#define LOG_LPR 0
#define LOG_LOCAL0 0
#define LOG_LOCAL1 0
#define LOG_LOCAL2 0
#define LOG_LOCAL3 0
#define LOG_LOCAL4 0
#define LOG_LOCAL5 0
#define LOG_LOCAL6 0
#define LOG_LOCAL7 0
#define LOG_EMERG 0 /* system is unusable */
#define LOG_ALERT 1 /* action must be taken immediately */
#define LOG_CRIT 2 /* critical conditions */
#define LOG_ERR 3 /* error conditions */
#define LOG_WARNING 4 /* warning conditions */
#define LOG_NOTICE 5 /* normal but signification condition */
#define LOG_INFO 6 /* informational */
#define LOG_DEBUG 7 /* debug-level messages */
/*
* These are ignored on NT
*/
#define LOG_NDELAY 0 /* Open the connection to syslogd immediately */
#define LOG_UPTO(pri) ((1 << ((pri)+1)) - 1) /* all priorities through pri */
void
syslog(int level, const char *fmt, ...);
void
openlog(const char *, int, ...);
void
closelog(void);
void
ModifyLogLevel(int level);
int
setlogmask(int maskpri);
void
InitNTLogging(FILE *, int);
void
NTReportError(const char *, const char *);
#endif

View File

@ -1,214 +0,0 @@
#ifndef NTP_WIN_TERMIOS_H
#define NTP_WIN_TERMIOS_H
/* Flag definitions for compatibility
* ==================================
*/
#include <fcntl.h>
#define NCCS 18 /* refclock_arc.c uses VTIME (17) */
#define VEOL 3
typedef unsigned char cc_t;
typedef unsigned int speed_t;
typedef unsigned int tcflag_t;
struct termios
{
tcflag_t c_iflag; /* input mode flags */
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
};
/* c_cc characters
#define VINTR 0
#define VQUIT 1
#define VERASE 2
#define VKILL 3
#define VEOF 4
#define VTIME 5
#define VMIN 6
#define VSWTC 7
#define VSTART 8
#define VSTOP 9
#define VSUSP 10
#define VEOL 11
#define VREPRINT 12
#define VDISCARD 13
#define VWERASE 14
#define VLNEXT 15
#define VEOL2 16
*/
/* c_iflag bits */
#define IGNBRK 0000001
#define BRKINT 0000002
#define IGNPAR 0000004
#define PARMRK 0000010
#define INPCK 0000020
#define ISTRIP 0000040
#define INLCR 0000100
#define IGNCR 0000200
#define ICRNL 0000400
#define IUCLC 0001000
#define IXON 0002000
#define IXANY 0004000
#define IXOFF 0010000
#define IMAXBEL 0020000
/* c_oflag bits */
#define OPOST 0000001
#define OLCUC 0000002
#define ONLCR 0000004
#define OCRNL 0000010
#define ONOCR 0000020
#define ONLRET 0000040
#define OFILL 0000100
#define OFDEL 0000200
#define NLDLY 0000400
#define NL0 0000000
#define NL1 0000400
#define CRDLY 0003000
#define CR0 0000000
#define CR1 0001000
#define CR2 0002000
#define CR3 0003000
#define TABDLY 0014000
#define TAB0 0000000
#define TAB1 0004000
#define TAB2 0010000
#define TAB3 0014000
#define XTABS 0014000
#define BSDLY 0020000
#define BS0 0000000
#define BS1 0020000
#define VTDLY 0040000
#define VT0 0000000
#define VT1 0040000
#define FFDLY 0100000
#define FF0 0000000
#define FF1 0100000
/* c_cflag bit meaning */
#define CBAUD 0010017
#define B0 0000000 /* hang up */
#define B50 0000001
#define B75 0000002
#define B110 0000003
#define B134 0000004
#define B150 0000005
#define B200 0000006
#define B300 0000007
#define B600 0000010
#define B1200 0000011
#define B1800 0000012
#define B2400 0000013
#define B4800 0000014
#define B9600 0000015
#define B19200 0000016
#define B38400 0000017
#define EXTA B19200
#define EXTB B38400
#define CSIZE 0000060
#define CS5 0000000
#define CS6 0000020
#define CS7 0000040
#define CS8 0000060
#define CSTOPB 0000100
#define CREAD 0000200
#define PARENB 0000400
#define PARODD 0001000
#define HUPCL 0002000
#define CLOCAL 0004000
#define CBAUDEX 0010000
#define B57600 0010001
#define B115200 0010002
#define B230400 0010003
#define B460800 0010004
#define CIBAUD 002003600000 /* input baud rate (not used) */
#define CRTSCTS 020000000000 /* flow control */
/* c_lflag bits */
#define ISIG 0000001
#define ICANON 0000002
#define XCASE 0000004
#define ECHO 0000010
#define ECHOE 0000020
#define ECHOK 0000040
#define ECHONL 0000100
#define NOFLSH 0000200
#define TOSTOP 0000400
#define ECHOCTL 0001000
#define ECHOPRT 0002000
#define ECHOKE 0004000
#define FLUSHO 0010000
#define PENDIN 0040000
#define IEXTEN 0100000
/* tcflow() and TCXONC use these */
#define TCOOFF 0
#define TCOON 1
#define TCIOFF 2
#define TCION 3
/* tcflush() and TCFLSH use these */
#define TCIFLUSH 0
#define TCOFLUSH 1
#define TCIOFLUSH 2
/* tcsetattr uses these */
#define TCSANOW 0
#define TCSADRAIN 1
#define TCSAFLUSH 2
#define VMIN 16
#define VTIME 17
/* modem lines */
#define TIOCM_LE 0x001
#define TIOCM_DTR 0x002
#define TIOCM_RTS 0x004
#define TIOCM_ST 0x008
#define TIOCM_SR 0x010
#define TIOCM_CTS 0x020
#define TIOCM_CAR 0x040
#define TIOCM_RNG 0x080
#define TIOCM_DSR 0x100
#define TIOCM_CD TIOCM_CAR
#define TIOCM_RI TIOCM_RNG
#define TIOCM_OUT1 0x2000
#define TIOCM_OUT2 0x4000
/* ioctl */
#define TIOCMGET 1
#define TIOCMSET 2
#define TIOCMBIC 3
#define TIOCMBIS 4
/* NOP cfsetospeed() and cfsetispeed() for now */
#define cfsetospeed(dcb, spd) (0)
#define cfsetispeed(dcb, spd) (0)
extern int closeserial (int);
extern int ioctl (int, int, int *);
extern int tcsetattr (int, int, const struct termios *);
extern int tcgetattr (int, struct termios *);
extern int tcflush (int, int);
extern int isserialhandle (HANDLE);
#endif /* NTP_WIN_TERMIOS_H */

View File

@ -1,811 +0,0 @@
/***********************************************************************
* *
* Copyright (c) David L. Mills 1999-2009 *
* *
* Permission to use, copy, modify, and distribute this software and *
* its documentation for any purpose and with or without fee is hereby *
* granted, provided that the above copyright notice appears in all *
* copies and that both the copyright notice and this permission *
* notice appear in supporting documentation, and that the name *
* University of Delaware not be used in advertising or publicity *
* pertaining to distribution of the software without specific, *
* written prior permission. The University of Delaware makes no *
* representations about the suitability this software for any *
* purpose. It is provided "as is" without express or implied *
* warranty. *
* *
***********************************************************************
* *
* This header file complies with "Pulse-Per-Second API for UNIX-like *
* Operating Systems, Version 1.0", rfc2783. Credit is due Jeff Mogul *
* and Marc Brett, from whom much of this code was shamelessly stolen. *
* *
* This modified timepps.h can be used to provide a PPSAPI interface *
* to a machine running Windows with one or more backend provider DLLs *
* implementing the provider interfaces defined herein. *
* *
* This Windows version was derived by Dave Hart *
* <davehart@davehart.com> from Mills' timepps-Solaris.h *
* *
***********************************************************************
* *
* Some of this include file *
* Copyright (c) 1999 by Ulrich Windl, *
* based on code by Reg Clemens <reg@dwf.com> *
* based on code by Poul-Henning Kamp <phk@FreeBSD.org> *
* *
***********************************************************************
* *
* "THE BEER-WARE LICENSE" (Revision 42): *
* <phk@FreeBSD.org> wrote this file. As long as you retain this *
* notice you can do whatever you want with this stuff. If we meet some*
* day, and you think this stuff is worth it, you can buy me a beer *
* in return. Poul-Henning Kamp *
* *
**********************************************************************/
#ifndef TIMEPPS_H
#define TIMEPPS_H
#include "sys/time.h" /* in ntp ref source declares struct timespec */
/*
* The following definitions are architecture independent
*/
#define PPS_API_VERS_1 1 /* API version number */
#define PPS_JAN_1970 2208988800UL /* 1970 - 1900 in seconds */
#define PPS_NANOSECOND 1000000000L /* one nanosecond in decimal */
#define PPS_FRAC 4294967296. /* 2^32 as a double */
#define PPS_HECTONANOSECONDS 10000000 /* 100ns units in a second */
#define PPS_FILETIME_1970 0x019db1ded53e8000 /* unix epoch to Windows */
#define PPS_NORMALIZE(x) /* normalize timespec */ \
do { \
if ((x).tv_nsec >= PPS_NANOSECOND) { \
(x).tv_nsec -= PPS_NANOSECOND; \
(x).tv_sec++; \
} else if ((x).tv_nsec < 0) { \
(x).tv_nsec += PPS_NANOSECOND; \
(x).tv_sec--; \
} \
} while (0)
#define PPS_TSPECTONTP(x) /* convert timespec to ntp_fp */ \
do { \
double d_frac; \
\
d_frac = ((struct timespec)&(x))->tv_nsec \
* PPS_FRAC / PPS_NANOSECOND; \
(x).integral = ((struct timespec)&(x))->tv_sec \
+ PPS_JAN_1970; \
(x).fractional = (unsigned int)d_frac; \
if (d_frac >= PPS_FRAC) \
(x).integral++; \
} while (0)
#define PPS_NTPTOTSPEC(x) /* convert ntp_fp to timespec */ \
do { \
double d_frac; \
\
/* careful, doing in place and tv_sec may be 64bit */ \
d_frac = (double)((ntp_fp_t *)&(x))->fractional \
* PPS_NANOSECOND / PPS_FRAC; \
(x).tv_sec = ((ntp_fp_t *)&(x))->integral \
- (time_t)PPS_JAN_1970; \
(x).tv_nsec = (long)d_frac; \
} while (0)
/*
* Device/implementation parameters (mode)
*/
#define PPS_CAPTUREASSERT 0x01 /* capture assert events */
#define PPS_CAPTURECLEAR 0x02 /* capture clear events */
#define PPS_CAPTUREBOTH 0x03 /* capture assert and clear events */
#define PPS_OFFSETASSERT 0x10 /* apply compensation for assert ev. */
#define PPS_OFFSETCLEAR 0x20 /* apply compensation for clear ev. */
#define PPS_OFFSETBOTH 0x30 /* apply compensation for both */
#define PPS_CANWAIT 0x100 /* Can we wait for an event? */
#define PPS_CANPOLL 0x200 /* "This bit is reserved for */
/*
* Kernel actions (mode)
*/
#define PPS_ECHOASSERT 0x40 /* feed back assert event to output */
#define PPS_ECHOCLEAR 0x80 /* feed back clear event to output */
/*
* Timestamp formats (tsformat)
*/
#define PPS_TSFMT_TSPEC 0x1000 /* select timespec format */
#define PPS_TSFMT_NTPFP 0x2000 /* select NTP format */
#define PPS_TSFMT_BOTH (PPS_TSFMT_TSPEC | PPS_TSFMT_NTPFP)
/*
* Kernel discipline actions (not used in Windows yet)
*/
#define PPS_KC_HARDPPS 0 /* enable kernel consumer */
#define PPS_KC_HARDPPS_PLL 1 /* phase-lock mode */
#define PPS_KC_HARDPPS_FLL 2 /* frequency-lock mode */
/*
* Type definitions
*/
typedef unsigned long pps_seq_t; /* sequence number */
#pragma warning(push)
#pragma warning(disable: 201) /* nonstd extension nameless union */
typedef struct ntp_fp {
union ntp_fp_sec {
unsigned int integral;
int s_integral;
};
unsigned int fractional;
} ntp_fp_t; /* NTP-compatible time stamp */
#pragma warning(pop)
typedef union pps_timeu { /* timestamp format */
struct timespec tspec;
ntp_fp_t ntpfp;
unsigned long longpad[3];
} pps_timeu_t; /* generic data type to represent time stamps */
/* addition of NTP fixed-point format */
#define NTPFP_M_ADD(r_i, r_f, a_i, a_f) /* r += a */ \
do { \
register u_int32 lo_tmp; \
register u_int32 hi_tmp; \
\
lo_tmp = ((r_f) & 0xffff) + ((a_f) & 0xffff); \
hi_tmp = (((r_f) >> 16) & 0xffff) + (((a_f) >> 16) & 0xffff); \
if (lo_tmp & 0x10000) \
hi_tmp++; \
(r_f) = ((hi_tmp & 0xffff) << 16) | (lo_tmp & 0xffff); \
\
(r_i) += (a_i); \
if (hi_tmp & 0x10000) \
(r_i)++; \
} while (0)
#define NTPFP_L_ADDS(r, a) NTPFP_M_ADD((r)->integral, (r)->fractional, \
(a)->s_integral, (a)->fractional)
/*
* Timestamp information structure
*/
typedef struct pps_info {
pps_seq_t assert_sequence; /* seq. num. of assert event */
pps_seq_t clear_sequence; /* seq. num. of clear event */
pps_timeu_t assert_tu; /* time of assert event */
pps_timeu_t clear_tu; /* time of clear event */
int current_mode; /* current mode bits */
} pps_info_t;
#define assert_timestamp assert_tu.tspec
#define clear_timestamp clear_tu.tspec
#define assert_timestamp_ntpfp assert_tu.ntpfp
#define clear_timestamp_ntpfp clear_tu.ntpfp
/*
* Parameter structure
*/
typedef struct pps_params {
int api_version; /* API version # */
int mode; /* mode bits */
pps_timeu_t assert_off_tu; /* offset compensation for assert */
pps_timeu_t clear_off_tu; /* offset compensation for clear */
} pps_params_t;
#define assert_offset assert_off_tu.tspec
#define clear_offset clear_off_tu.tspec
#define assert_offset_ntpfp assert_off_tu.ntpfp
#define clear_offset_ntpfp clear_off_tu.ntpfp
/*
*------ Here begins the implementation-specific part! ------
*/
#include <windows.h>
#include <errno.h>
#include <stddef.h> /* offsetof() */
#include <io.h> /* _get_osfhandle() */
#ifndef EOPNOTSUPP
#define EOPNOTSUPP 45
#endif
typedef UINT_PTR pps_handle_t; /* pps handlebars */
#ifndef inline
#define inline __inline
#endif
/*
* ntpd on Windows is typically distributed as a binary as few users
* have the tools needed to build from source. Rather than build
* a single timepps.h for Windows which knows how to talk to all
* PPS implementations frozen in time as of compiling, this timepps.h
* allows one or more backend providers to be used by naming a DLL
* which exports the provider interfaces defined here.
*/
typedef enum ppsapi_magic_tag {
PPSAPI_MAGIC_UNIT = 0x70707355, /* ppsU */
} ppsapi_magic;
typedef struct {
struct pps_provider_tag *provider;
void * context;/* provider's unit pointer */
ppsapi_magic magic; /* to detect invalid handles */
pps_params_t params; /* PPS parameters set by user */
} pps_unit_t;
typedef void (*ppps_ntp_timestamp_from_counter)(
ntp_fp_t *result,
ULONGLONG Timestamp,
ULONGLONG Counterstamp
);
typedef pps_handle_t (*pcreate_pps_handle)(
void * prov_context
);
/*
* ppsapi_prov_init() - exported by backend DLLs
*
* Return value is pps capabilities available to PPSAPI consumers
* via time_pps_getcaps().
*/
#define PPSAPI_TIMEPPS_PROV_VER 2
typedef int (WINAPI *pppsapi_prov_init)(
int ppsapi_timepps_prov_ver,
pcreate_pps_handle create_pps_handle,
ppps_ntp_timestamp_from_counter ntp_timestamp_from_counter,
char * short_name_buf,
size_t short_name_size,
char * full_name_buf,
size_t full_name_size
);
typedef int (WINAPI *provtime_pps_create)(
HANDLE winhandle, /* user device handle */
pps_handle_t *phandle /* returned handle */
);
typedef int (WINAPI *provtime_pps_destroy)(
pps_unit_t * unit,
void * context
);
typedef int (WINAPI *provtime_pps_setparams)(
pps_unit_t * unit,
void * context,
const pps_params_t * params
);
typedef int (WINAPI *provtime_pps_fetch)(
pps_unit_t * unit,
void * context,
const int tsformat,
pps_info_t * pinfo,
const struct timespec * timeout
);
typedef int (WINAPI *provtime_pps_kcbind)(
pps_unit_t * unit,
void * context,
const int kernel_consumer,
const int edge,
const int tsformat
);
typedef struct pps_provider_tag {
struct pps_provider_tag *next;
int caps;
char * short_name;
char * full_name;
provtime_pps_create ptime_pps_create;
provtime_pps_destroy ptime_pps_destroy;
provtime_pps_setparams ptime_pps_setparams;
provtime_pps_fetch ptime_pps_fetch;
provtime_pps_kcbind ptime_pps_kcbind;
} ppsapi_provider;
static ppsapi_provider * g_provider_list;
static ppsapi_provider * g_curr_provider;
static inline pps_handle_t
internal_create_pps_handle(
void * prov_context
)
{
pps_unit_t * punit;
if (NULL == g_curr_provider) {
fprintf(stderr, "create_pps_handle: provider backend called me outside time_pps_create\n");
punit = NULL;
} else
punit = malloc(sizeof(*punit));
if (punit != NULL) {
punit->provider = g_curr_provider;
punit->context = prov_context;
punit->magic = PPSAPI_MAGIC_UNIT;
memset(&punit->params, 0, sizeof(punit->params));
}
return (pps_handle_t)punit;
}
static inline pps_unit_t *
unit_from_ppsapi_handle(
pps_handle_t handle
)
{
pps_unit_t *punit;
punit = (pps_unit_t *)handle;
if (PPSAPI_MAGIC_UNIT != punit->magic)
punit = NULL;
return punit;
}
/*
* ntpd on Windows only looks to errno after finding
* GetLastError returns NO_ERROR. To accomodate its
* use of msyslog in portable code such as refclock_atom.c,
* this implementation always clears the Windows
* error code using SetLastError(NO_ERROR) when
* returning an errno. This is also a good idea
* for any non-ntpd clients as they should rely only
* the errno for PPSAPI functions.
*/
#define RETURN_PPS_ERRNO(e) \
do { \
SetLastError(NO_ERROR); \
errno = (e); \
return -1; \
} while (0)
#ifdef OWN_PPS_NTP_TIMESTAMP_FROM_COUNTER
extern void pps_ntp_timestamp_from_counter(ntp_fp_t *, ULONGLONG, ULONGLONG);
#else
/*
* helper routine for serialpps.sys ioctl which returns
* performance counter "timestamp" as well as a system
* FILETIME timestamp. Converts one of the inputs to
* NTP fixed-point format.
*
* You will probably want to supply your own and #define
* OWN_PPS_NTP_TIMESTAMP_FROM_COUNTER, as this stub
* converts only the low-resolution system timestamp.
*
* When implementing a provider, use the pointer to this
* conversion function supplied to your prov_init(), as
* the copy in your DLL will likely be the stub below,
* where you want the one provided by the PPSAPI client
* such as ntpd.
*/
static inline void
pps_ntp_timestamp_from_counter(
ntp_fp_t *result,
ULONGLONG Timestamp,
ULONGLONG Counterstamp)
{
ULONGLONG BiasedTimestamp;
/* convert from 100ns units to NTP fixed point format */
BiasedTimestamp = Timestamp - PPS_FILETIME_1970;
result->integral = PPS_JAN_1970 +
(unsigned)(BiasedTimestamp / PPS_HECTONANOSECONDS);
result->fractional =
(unsigned) ((BiasedTimestamp % PPS_HECTONANOSECONDS) *
(PPS_FRAC / PPS_HECTONANOSECONDS));
}
#endif
static inline int
load_pps_provider(
char * dllpath
)
{
char short_name[16];
char full_name[64];
ppsapi_provider * prov;
HMODULE hmod;
pppsapi_prov_init pprov_init;
prov = malloc(sizeof(*prov));
if (NULL == prov)
return ENOMEM;
hmod = LoadLibrary(dllpath);
if (NULL == hmod) {
fprintf(stderr, "load_pps_provider: LoadLibrary(%s) error %u\n", dllpath, GetLastError());
free(prov);
return ENOENT;
}
pprov_init = (pppsapi_prov_init)GetProcAddress(hmod, "ppsapi_prov_init");
if (NULL == pprov_init) {
fprintf(stderr, "load_pps_provider: entrypoint ppsapi_prov_init not found in %s\n", dllpath);
free(prov);
FreeLibrary(hmod);
return EFAULT;
}
prov->caps = (*pprov_init)(PPSAPI_TIMEPPS_PROV_VER,
&internal_create_pps_handle,
&pps_ntp_timestamp_from_counter,
short_name, sizeof(short_name),
full_name, sizeof(full_name));
if (!prov->caps) {
free(prov);
FreeLibrary(hmod);
return EACCES;
}
prov->short_name = _strdup(short_name);
prov->full_name = _strdup(full_name);
if (NULL == prov->short_name || !prov->short_name[0]
|| NULL == prov->full_name || !prov->full_name[0]) {
if (prov->short_name)
free(prov->short_name);
if (prov->full_name)
free(prov->full_name);
free(prov);
FreeLibrary(hmod);
return EINVAL;
}
prov->ptime_pps_create = (provtime_pps_create)
GetProcAddress(hmod, "prov_time_pps_create");
prov->ptime_pps_destroy = (provtime_pps_destroy)
GetProcAddress(hmod, "prov_time_pps_destroy");
prov->ptime_pps_setparams = (provtime_pps_setparams)
GetProcAddress(hmod, "prov_time_pps_setparams");
prov->ptime_pps_fetch = (provtime_pps_fetch)
GetProcAddress(hmod, "prov_time_pps_fetch");
prov->ptime_pps_kcbind = (provtime_pps_kcbind)
GetProcAddress(hmod, "prov_time_pps_kcbind");
if (NULL == prov->ptime_pps_create
|| NULL == prov->ptime_pps_destroy
|| NULL == prov->ptime_pps_setparams
|| NULL == prov->ptime_pps_fetch
|| NULL == prov->ptime_pps_kcbind) {
fprintf(stderr, "PPSAPI provider %s missing entrypoint\n",
prov->short_name);
free(prov->short_name);
free(prov->full_name);
free(prov);
FreeLibrary(hmod);
return EINVAL;
}
fprintf(stderr, "loaded PPSAPI provider %s caps 0x%x provider %p\n",
prov->full_name, prov->caps, prov);
prov->next = g_provider_list;
g_provider_list = prov;
return 0;
}
/*
* time_pps_create - create PPS handle from file descriptor
*
* This is the initial entrypoint of PPSAPI from the client. Note
* to maintain source compatibility with Unix, the input file
* descriptor really is a descriptor from the C runtime low-numbered
* descriptor namespace, though it may have been converted from a
* native Windows HANDLE using _open_osfhandle().
*/
static inline int
time_pps_create(
int filedes,/* device file descriptor */
pps_handle_t * phandle /* returned handle */
)
{
HANDLE winhandle;
char * dlls;
char * dll;
char * pch;
ppsapi_provider * prov;
pps_handle_t ppshandle;
int err;
if (NULL == phandle)
RETURN_PPS_ERRNO(EFAULT);
winhandle = (HANDLE)_get_osfhandle(filedes);
fprintf(stderr, "time_pps_create(%d) got winhandle %p\n", filedes, winhandle);
if (INVALID_HANDLE_VALUE == winhandle)
RETURN_PPS_ERRNO(EBADF);
/*
* For initial testing the list of PPSAPI backend
* providers is provided by the environment variable
* PPSAPI_DLLS, separated by semicolons such as
* PPSAPI_DLLS=c:\ntp\serial_ppsapi.dll;..\parport_ppsapi.dll
* There are a million better ways, such as a well-known
* registry key under which a value is created for each
* provider DLL installed, or even a platform-specific
* ntp.conf directive or command-line switch.
*/
dlls = getenv("PPSAPI_DLLS");
if (dlls != NULL && NULL == g_provider_list) {
dlls = dll = _strdup(dlls);
fprintf(stderr, "getenv(PPSAPI_DLLS) gives %s\n", dlls);
} else
dlls = dll = NULL;
while (dll != NULL && dll[0]) {
pch = strchr(dll, ';');
if (pch != NULL)
*pch = 0;
err = load_pps_provider(dll);
if (err) {
fprintf(stderr, "load_pps_provider(%s) got errno %d\n", dll, err);
RETURN_PPS_ERRNO(err);
}
dll = (NULL == pch)
? NULL
: pch + 1;
}
if (NULL != dlls)
free(dlls);
dlls = dll = NULL;
/*
* Hand off to each provider in turn until one returns a PPS
* handle or they've all declined.
*/
for (prov = g_provider_list; prov != NULL; prov = prov->next) {
ppshandle = 0;
g_curr_provider = prov;
err = (*prov->ptime_pps_create)(winhandle, &ppshandle);
g_curr_provider = NULL;
fprintf(stderr, "%s prov_time_pps_create(%p) returned %d\n",
prov->short_name, winhandle, err);
if (!err && ppshandle) {
*phandle = ppshandle;
return 0;
}
}
fprintf(stderr, "PPSAPI provider list %p\n", g_provider_list);
RETURN_PPS_ERRNO(ENOEXEC);
}
/*
* release PPS handle
*/
static inline int
time_pps_destroy(
pps_handle_t handle
)
{
pps_unit_t * punit;
int err;
if (!handle)
RETURN_PPS_ERRNO(EBADF);
punit = unit_from_ppsapi_handle(handle);
if (NULL == punit)
RETURN_PPS_ERRNO(EBADF);
err = (*punit->provider->ptime_pps_destroy)(punit, punit->context);
free(punit);
if (err)
RETURN_PPS_ERRNO(err);
else
return 0;
}
/*
* set parameters for handle
*/
static inline int
time_pps_setparams(
pps_handle_t handle,
const pps_params_t *params
)
{
pps_unit_t * punit;
int err;
/*
* Check for valid arguments and set parameters.
*/
if (!handle)
RETURN_PPS_ERRNO(EBADF);
punit = unit_from_ppsapi_handle(handle);
if (NULL == punit)
RETURN_PPS_ERRNO(EBADF);
if (NULL == params)
RETURN_PPS_ERRNO(EFAULT);
err = (*punit->provider->ptime_pps_setparams)(punit, punit->context, params);
if (err)
RETURN_PPS_ERRNO(err);
else
return 0;
}
/*
* get parameters for handle
*/
static inline int
time_pps_getparams(
pps_handle_t handle,
pps_params_t *params_buf
)
{
pps_unit_t * punit;
/*
* Check for valid arguments and get parameters.
*/
if (!handle)
RETURN_PPS_ERRNO(EBADF);
punit = unit_from_ppsapi_handle(handle);
if (NULL == punit)
RETURN_PPS_ERRNO(EBADF);
if (NULL == params_buf)
RETURN_PPS_ERRNO(EFAULT);
*params_buf = punit->params;
return 0;
}
/*
* time_pps_getcap - get capabilities for handle
*/
static inline int
time_pps_getcap(
pps_handle_t handle,
int *pmode
)
{
pps_unit_t * punit;
/*
* Check for valid arguments and get capabilities.
*/
if (!handle)
RETURN_PPS_ERRNO(EBADF);
punit = unit_from_ppsapi_handle(handle);
if (NULL == punit)
RETURN_PPS_ERRNO(EBADF);
if (NULL == pmode)
RETURN_PPS_ERRNO(EFAULT);
*pmode = punit->provider->caps;
return 0;
}
/*
* Fetch timestamps
*/
static inline int
time_pps_fetch(
pps_handle_t handle,
const int tsformat,
pps_info_t * pinfo,
const struct timespec * ptimeout
)
{
pps_unit_t * punit;
int err;
/*
* Check for valid arguments and fetch timestamps
*/
if (!handle)
RETURN_PPS_ERRNO(EBADF);
if (NULL == pinfo)
RETURN_PPS_ERRNO(EFAULT);
punit = unit_from_ppsapi_handle(handle);
if (NULL == punit)
RETURN_PPS_ERRNO(EBADF);
err = (*punit->provider->ptime_pps_fetch)(punit,
punit->context,
tsformat,
pinfo,
ptimeout);
if (err)
RETURN_PPS_ERRNO(err);
else
return 0;
}
/*
* time_pps_kcbind - specify kernel consumer
*
* Not supported so far by Windows.
*/
static inline int
time_pps_kcbind(
pps_handle_t handle,
const int kernel_consumer,
const int edge, const int tsformat
)
{
pps_unit_t * punit;
int err;
if (!handle)
RETURN_PPS_ERRNO(EBADF);
punit = unit_from_ppsapi_handle(handle);
if (NULL == punit)
RETURN_PPS_ERRNO(EBADF);
err = (*punit->provider->ptime_pps_kcbind)(
punit,
punit->context,
kernel_consumer,
edge,
tsformat);
if (err)
RETURN_PPS_ERRNO(err);
else
return 0;
}
#endif /* TIMEPPS_H */

View File

@ -1,4 +0,0 @@
/**************************************************************
* Dummy Header for Unix to Windows NT portability
* Created for NTP package
**************************************************************/

View File

@ -1,7 +0,0 @@
#ifndef WIN32_IO_H
#define WIN32_IO_H
extern void InitSockets(void);
extern void connection_reset_fix(SOCKET fd, sockaddr_u *addr);
#endif /* WIN32_IO_H */

View File

@ -1,461 +0,0 @@
/*
* File: instsrv.c
* Purpose: To install a new service and to insert registry entries.
*
*/
#ifndef __RPCASYNC_H__
#define __RPCASYNC_H__ /* Skip asynch rpc inclusion */
#endif
#include <windows.h>
#include <stdio.h>
#define PERR(api) printf("\n%s: Error %d from %s on line %d", \
__FILE__, GetLastError(), api, __LINE__);
#define MSG_FOR_ACCESS_DENIED "You aren't authorized to do this - please see your system Administrator"
#define MSG_1_FOR_BAD_PATH "The fully qualified path name to the .exe must be given, and"
#define MSG_2_FOR_BAD_PATH " the drive letter must be for a fixed disk (e.g., not a net drive)"
SC_HANDLE schService;
SC_HANDLE schSCManager;
int ok2;
VOID DisplayHelp(VOID);
/* --------------------------------------------------------------------------------------- */
int InstallService(LPCTSTR serviceName, LPCTSTR displayName, LPCTSTR serviceExe)
{
LPCTSTR lpszBinaryPathName = serviceExe;
TCHAR lpszRootPathName[] ="?:\\";
if ( (':' != *(lpszBinaryPathName+1)) || ('\\' != *(lpszBinaryPathName+2)) )
{ printf("\n%s",MSG_1_FOR_BAD_PATH);
printf("\n%s\n",MSG_2_FOR_BAD_PATH);
return 1;
}
#define DRIVE_TYPE_INDETERMINATE 0
#define ROOT_DIR_DOESNT_EXIST 1
*lpszRootPathName = *(lpszBinaryPathName+0) ;
switch ( GetDriveType(lpszRootPathName) )
{
case DRIVE_FIXED :
{ // OK
break;
}
case ROOT_DIR_DOESNT_EXIST :
{ printf("\n%s",MSG_1_FOR_BAD_PATH);
printf("\n the root directory where the .exe is specified to be must exist, and");
printf("\n%s\n",MSG_2_FOR_BAD_PATH);
return 1;
}
case DRIVE_TYPE_INDETERMINATE :
case DRIVE_REMOVABLE :
case DRIVE_REMOTE :
case DRIVE_CDROM :
case DRIVE_RAMDISK :
{ printf("\n%s",MSG_1_FOR_BAD_PATH);
printf("\n%s\n",MSG_2_FOR_BAD_PATH);
return 1;
}
default :
{ printf("\n%s",MSG_1_FOR_BAD_PATH);
printf("\n%s\n",MSG_2_FOR_BAD_PATH);
return 1;
}
}
if (INVALID_HANDLE_VALUE == CreateFile(lpszBinaryPathName,
GENERIC_READ,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL))
{
printf("\n%s",MSG_1_FOR_BAD_PATH);
printf("\n the file must exist, and");
printf("\n%s\n",MSG_2_FOR_BAD_PATH);
return 1;
}
schService = CreateService(
schSCManager, // SCManager database
serviceName, // name of service
displayName, // name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_WIN32_OWN_PROCESS, // service type
SERVICE_AUTO_START, // start type
SERVICE_ERROR_NORMAL, // error control type
lpszBinaryPathName, // service's binary
NULL, // no load ordering group
NULL, // no tag identifier
NULL, // no dependencies
NULL, // Local System account
NULL); // null password
if (NULL == schService)
{ switch (GetLastError())
{
case ERROR_ACCESS_DENIED :
{ printf("\n%s",MSG_FOR_ACCESS_DENIED);
break;
}
case ERROR_SERVICE_EXISTS :
{ printf("\nThe %s service is already installed",serviceName);
printf("\nRemove it first if you need to re-install a new version\n");
break;
}
default :
{ PERR("CreateService");
}
}
return 1;
}
else
CloseServiceHandle(schService);
return 0;
}
/* --------------------------------------------------------------------------------------- */
int RemoveService(LPCTSTR serviceName)
{
{
#define SZ_ENUM_BUF 4096
ENUM_SERVICE_STATUS essServiceStatus[SZ_ENUM_BUF];
DWORD dwBufSize = sizeof(essServiceStatus);
DWORD dwBytesNeeded = 0;
DWORD dwServicesReturned = 0;
DWORD dwResumeHandle = 0;
DWORD dwI = 0;
BOOLEAN bFound = FALSE;
if (!EnumServicesStatus(schSCManager,
SERVICE_WIN32,
SERVICE_ACTIVE,
(LPENUM_SERVICE_STATUS)&essServiceStatus,
dwBufSize,
&dwBytesNeeded,
&dwServicesReturned,
&dwResumeHandle))
{ switch (GetLastError())
{
case ERROR_ACCESS_DENIED :
{ printf("\n%s",MSG_FOR_ACCESS_DENIED);
break;
}
default :
{ PERR("EnumServicesStatus");
}
}
return 1;
}
for (dwI=0; dwI<dwServicesReturned; dwI++)
{ if(0 == _stricmp(essServiceStatus[dwI].lpServiceName,serviceName))
{ bFound = TRUE;
break;
}
}
if (bFound)
{ printf("\nThe %s service cannot be removed until it has been stopped.",serviceName);
printf("\nTo stop the %s service, use the Stop button in the Control",serviceName);
printf("\n Panel Services applet\n");
return 1;
}
}
schService = OpenService(schSCManager,
serviceName,
SERVICE_ALL_ACCESS);
if (NULL == schService)
{ switch (GetLastError())
{
case ERROR_ACCESS_DENIED :
{ printf("\n%s",MSG_FOR_ACCESS_DENIED);
break;
}
case ERROR_SERVICE_DOES_NOT_EXIST :
{ printf("\nThe %s service is not installed, so cannot be removed\n",serviceName);
break;
}
default :
{ PERR("OpenService");
}
}
return 1;
}
if (DeleteService(schService))
{ printf("\nDelete of Service \"Network Time Protocol\" was SUCCESSFUL\n");
return 0;
}
else
{ switch (GetLastError())
{
case ERROR_ACCESS_DENIED :
{ printf("\n%s",MSG_FOR_ACCESS_DENIED);
break;
}
default :
{ PERR("DeleteService");
}
}
return 1;
}
}
/* --------------------------------------------------------------------------------------- */
int addSourceToRegistry(LPSTR pszAppname, LPSTR pszMsgDLL)
{
HKEY hk; /* registry key handle */
DWORD dwData;
BOOL bSuccess;
char regarray[200];
char *lpregarray = regarray;
/* When an application uses the RegisterEventSource or OpenEventLog
function to get a handle of an event log, the event loggging service
searches for the specified source name in the registry. You can add a
new source name to the registry by opening a new registry subkey
under the Application key and adding registry values to the new
subkey. */
strcpy(lpregarray, "SYSTEM\\CurrentControlSet\\Services\\EventLog\\Application\\");
strcat(lpregarray, pszAppname);
/* Create a new key for our application */
bSuccess = RegCreateKey(HKEY_LOCAL_MACHINE, lpregarray, &hk);
if(bSuccess != ERROR_SUCCESS)
{
PERR("RegCreateKey");
return 1;
}
/* Add the Event-ID message-file name to the subkey. */
bSuccess = RegSetValueEx(hk, /* subkey handle */
"EventMessageFile", /* value name */
0, /* must be zero */
REG_EXPAND_SZ, /* value type */
(LPBYTE) pszMsgDLL, /* address of value data */
strlen(pszMsgDLL) + 1); /* length of value data */
if(bSuccess != ERROR_SUCCESS)
{
PERR("RegSetValueEx");
return 1;
}
/* Set the supported types flags and addit to the subkey. */
dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE |
EVENTLOG_INFORMATION_TYPE;
bSuccess = RegSetValueEx(hk, /* subkey handle */
"TypesSupported", /* value name */
0, /* must be zero */
REG_DWORD, /* value type */
(LPBYTE) &dwData, /* address of value data */
sizeof(DWORD)); /* length of value data */
if(bSuccess != ERROR_SUCCESS)
{
PERR("RegSetValueEx");
return 1;
}
RegCloseKey(hk);
return 0;
}
/* --------------------------------------------------------------------------------------- */
int addKeysToRegistry()
{
HKEY hk; /* registry key handle */
BOOL bSuccess;
char myarray[200];
char *lpmyarray = myarray;
int arsize = 0;
/* now add the depends on service key */
/* Create a new key for our application */
bSuccess = RegCreateKey(HKEY_LOCAL_MACHINE,
"SYSTEM\\CurrentControlSet\\Services\\NTP", &hk);
if(bSuccess != ERROR_SUCCESS)
{
PERR("RegCreateKey");
return 1;
}
strcpy(lpmyarray,"TcpIp");
lpmyarray = lpmyarray + 6;
arsize = arsize + 6;
strcpy(lpmyarray,"Afd");
lpmyarray = lpmyarray + 4;
arsize = arsize + 4;
arsize = arsize + 2;
strcpy(lpmyarray,"\0\0");
bSuccess = RegSetValueEx(hk, /* subkey handle */
"DependOnService", /* value name */
0, /* must be zero */
REG_MULTI_SZ, /* value type */
(LPBYTE) &myarray, /* address of value data */
arsize); /* length of value data */
if(bSuccess != ERROR_SUCCESS)
{
PERR("RegSetValueEx");
return 1;
}
RegCloseKey(hk);
return 0;
}
/* --------------------------------------------------------------------------------------- */
int main(int argc, char *argv[])
{
#define SZ_NAME_BUF 270 // 256 is max, add a little
UCHAR ucNameBuf[SZ_NAME_BUF] = "NTP";
LPTSTR lpszServName = (LPTSTR)&ucNameBuf;
UCHAR ucDNameBuf[SZ_NAME_BUF] = "Network Time Protocol";
LPTSTR lpszDispName = (LPTSTR)&ucDNameBuf;
UCHAR ucExeNBuf[SZ_NAME_BUF] = "";
LPTSTR lpszExeName = (LPTSTR)&ucExeNBuf;
BOOL bRemovingService = FALSE;
char *p;
int ok = 0;
// check if Win32s, if so, display notice and terminate
if( GetVersion() & 0x80000000 )
{
MessageBox( NULL,
"This application cannot run on Windows 3.1.\n"
"This application will now terminate.",
"NAMED",
MB_OK | MB_ICONSTOP | MB_SETFOREGROUND );
return( 1 );
}
if (argc == 2)
bRemovingService = (!stricmp(argv[1], "remove"));
if(!bRemovingService)
{
if (argc != 2)
{
DisplayHelp();
return(1);
}
p=argv[1];
if ( ('/' == *p)
|| ('-' == *p) )
{
DisplayHelp();
return(1);
}
}
if (strlen(argv[1]) > 256)
{
printf("\nThe service name cannot be longer than 256 characters\n");
return(1);
}
bRemovingService = (!stricmp(argv[1], "remove"));
schSCManager = OpenSCManager(
NULL, // machine (NULL == local)
NULL, // database (NULL == default)
SC_MANAGER_ALL_ACCESS); // access required
if (NULL == schSCManager)
{ switch (GetLastError())
{
case ERROR_ACCESS_DENIED :
{ printf("\n%s",MSG_FOR_ACCESS_DENIED);
break;
}
default :
{ PERR("OpenSCManager");
}
}
return (0);
}
if (bRemovingService)
{
ok = RemoveService(lpszServName);
}
else
{
/* get the exe name */
strcpy(lpszExeName,argv[1]);
ok = InstallService(lpszServName, lpszDispName, lpszExeName);
}
CloseServiceHandle(schSCManager);
if (!bRemovingService)
{
if (ok == 0)
{ /* Set the Event-ID message-file name. */
ok = addSourceToRegistry("NTP", lpszExeName);
if (ok == 0)
ok = addKeysToRegistry();
else return ok;
if (ok == 0)
{
printf("\nThe \"Network Time Protocol\" service was successfully created.\n");
printf("\nDon't forget!!! You must now go to the Control Panel and");
printf("\n use the Services applet to change the account name and");
printf("\n password that the NTP Service will use when");
printf("\n it starts.");
printf("\nTo do this: use the Startup button in the Services applet,");
printf("\n and (for example) specify the desired account and");
printf("\n correct password.");
printf("\nAlso, use the Services applet to ensure this newly installed");
printf("\n service starts automatically on bootup.\n");
return 0;
}
}
else return ok;
}
return 0;
}
/* --------------------------------------------------------------------------------------- */
VOID DisplayHelp(VOID)
{
printf("Installs or removes the NTP service.\n");
printf("To install the NTP service,\n");
printf("type INSTSRV <path> \n");
printf("Where:\n");
printf(" path Absolute path to the NTP service, name.exe. You must\n");
printf(" use a fully qualified path and the drive letter must be for a\n");
printf(" fixed, local drive.\n\n");
printf("For example, INSTSRV i:\\winnt\\system32\\ntpd.exe\n");
printf("To remove the NTP service,\n");
printf("type INSTSRV remove \n");
}
/* EOF */

Some files were not shown because too many files have changed in this diff Show More