From: Danny Mayer Date: Fri, 18 Aug 2006 11:58:19 +0000 (-0400) Subject: Bug #685: Changes for MM timer and code cleanup X-Git-Tag: NTP_4_2_3P34~2^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8dd2ac427140eae87a9edb09acff6e5047161758;p=thirdparty%2Fntp.git Bug #685: Changes for MM timer and code cleanup bk: 44e5ab5bAbYwRRrs40bmEn0jsKsTkA --- diff --git a/include/ntpd.h b/include/ntpd.h index 65e937af4..7651331ac 100644 --- a/include/ntpd.h +++ b/include/ntpd.h @@ -11,9 +11,6 @@ #include "ntp_refclock.h" #include "recvbuff.h" -#ifdef SYS_WINNT -#define sleep(x) Sleep((DWORD) x * 1000 /* milliseconds */ ); -#endif /* SYS_WINNT */ /* ntp_config.c */ extern void getconfig P((int, char **)); diff --git a/ntpd/cmd_args.c b/ntpd/cmd_args.c index f4c9dbd46..f89e37be0 100644 --- a/ntpd/cmd_args.c +++ b/ntpd/cmd_args.c @@ -79,14 +79,6 @@ getCmdOpts( if (HAVE_OPT( DRIFTFILE )) stats_config(STATS_FREQ_FILE, OPT_ARG( DRIFTFILE )); -/* - * Enable the Multi-Media Timer for Windows? - */ -#ifdef WINNT - if (HAVE_OPT( ENABLEMMTIMER )) - enable_mm_timer(); -#endif - if (HAVE_OPT( PANICGATE )) allow_panic = TRUE; diff --git a/ntpd/ntp_timer.c b/ntpd/ntp_timer.c index bffec9215..bd01745b0 100644 --- a/ntpd/ntp_timer.c +++ b/ntpd/ntp_timer.c @@ -141,7 +141,7 @@ void init_timer(void) { # if defined SYS_WINNT & !defined(SYS_CYGWIN32) - HANDLE hToken; + HANDLE hToken = INVALID_HANDLE_VALUE; TOKEN_PRIVILEGES tkp; # endif /* SYS_WINNT */ diff --git a/ntpd/ntpd.c b/ntpd/ntpd.c index 37b8370f4..29feb2f43 100644 --- a/ntpd/ntpd.c +++ b/ntpd/ntpd.c @@ -515,13 +515,6 @@ ntpdmain( } #endif -#ifdef SYS_WINNT - /* - * Initialize the time structures and variables - */ - init_winnt_time(); -#endif - /* getstartup(argc, argv); / * startup configuration, may set debug */ #ifdef DEBUG @@ -530,6 +523,14 @@ ntpdmain( printf("%s\n", Version); #endif +/* + * Enable the Multi-Media Timer for Windows? + */ +#ifdef SYS_WINNT + if (HAVE_OPT( MODIFYMMTIMER )) + set_mm_timer(MM_TIMER_HIRES); +#endif + if (HAVE_OPT( NOFORK ) || HAVE_OPT( QUIT )) nofork = 1; @@ -561,6 +562,13 @@ ntpdmain( } #endif +#ifdef SYS_WINNT + /* + * Initialize the time structures and variables + */ + init_winnt_time(); +#endif + setup_logfile(); /* diff --git a/ntpd/ntpdbase-opts.def b/ntpd/ntpdbase-opts.def index 63aa4eb06..a4d0c3d62 100644 --- a/ntpd/ntpdbase-opts.def +++ b/ntpd/ntpdbase-opts.def @@ -207,11 +207,12 @@ flag = { }; flag = { - name = enablemmtimer; + ifdef = SYS_WINNT; + name = modifymmtimer; value = M; - descrip = "Enable Multimedia Timer (Windows only)"; + descrip = "Modify Multimedia Timer (Windows only)"; doc = <<- _EndOfDoc_ - Enable the Multimedia Timer for Windows. + Set the Windows Multimedia Timer to highest resolution. _EndOfDoc_; }; diff --git a/ports/winnt/include/clockstuff.h b/ports/winnt/include/clockstuff.h index 2815baede..d57866488 100644 --- a/ports/winnt/include/clockstuff.h +++ b/ports/winnt/include/clockstuff.h @@ -23,4 +23,15 @@ void reset_winnt_time(void); #define FILETIME_1970 0x019db1ded53e8000 #define HECTONANOSECONDS 10000000ui64 + +/* + * Multimedia Timer + */ + +void set_mm_timer(int); + +enum { + MM_TIMER_LORES, + MM_TIMER_HIRES +}; #endif diff --git a/ports/winnt/include/config.h b/ports/winnt/include/config.h index cab862e9a..69982287f 100644 --- a/ports/winnt/include/config.h +++ b/ports/winnt/include/config.h @@ -25,7 +25,7 @@ #pragma warning(disable: 4100) /* unreferenced formal parameter */ #pragma warning(disable: 4101) /* unreferenced local variable */ -#pragma warning(disable : 4127) +#pragma warning(disable: 4127) /* conditional expression is constant */ /* * Windows NT Configuration Values @@ -72,6 +72,11 @@ #define MAXHOSTNAMELEN 64 #define AUTOKEY +/* + * Multimedia timer enable + */ +#define USE_MM_TIMER + /* Enable OpenSSL */ #define OPENSSL 1 @@ -104,6 +109,7 @@ #define lseek _lseek #define pipe _pipe #define dup2 _dup2 +#define sleep(x) Sleep((DWORD) x * 1000 /* milliseconds */ ); #define pid_t int /* PID is an int */ #define ssize_t int /* ssize is an int */ diff --git a/ports/winnt/ntpd/nt_clockstuff.c b/ports/winnt/ntpd/nt_clockstuff.c index 76714c86a..3f95ab60d 100644 --- a/ports/winnt/ntpd/nt_clockstuff.c +++ b/ports/winnt/ntpd/nt_clockstuff.c @@ -60,7 +60,7 @@ * by the variable below which is initialized by a default value but * might be changed depending on a command line switch. */ - int modify_mm_timer = 0; + int modify_mm_timer = MM_TIMER_LORES; #define MM_TIMER_INTV 1 /* the interval we'd want to set the MM timer to [ms] */ @@ -115,9 +115,9 @@ static DOUBLE ppm_per_adjust_unit = 0.0; * Request Multimedia Timer */ void -enable_mm_timer() +set_mm_timer(int timerres) { - modify_mm_timer = 1; + modify_mm_timer = timerres; } /* * adj_systime - called once every second to make system time adjustments. @@ -280,7 +280,7 @@ adj_systime( void init_winnt_time(void) { BOOL noslew; - HANDLE hToken; + HANDLE hToken = INVALID_HANDLE_VALUE; TOKEN_PRIVILEGES tkp; /* diff --git a/ports/winnt/ntpd/ntpd.dsp b/ports/winnt/ntpd/ntpd.dsp index cf52b2570..cd83aad45 100644 --- a/ports/winnt/ntpd/ntpd.dsp +++ b/ports/winnt/ntpd/ntpd.dsp @@ -50,7 +50,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib $(OPENSSL)\out32dll\libeay32.lib /nologo /subsystem:console /machine:I386 /out:"../bin/Release/ntpd.exe" +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib winmm.lib $(OPENSSL)\out32dll\libeay32.lib /nologo /subsystem:console /machine:I386 /out:"../bin/Release/ntpd.exe" !ELSEIF "$(CFG)" == "ntpd - Win32 Debug" @@ -75,7 +75,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib $(OPENSSL)\out32dll\libeay32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../bin/Debug/ntpd.exe" /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib winmm.lib $(OPENSSL)\out32dll\libeay32.lib /nologo /subsystem:console /debug /machine:I386 /out:"../bin/Debug/ntpd.exe" /pdbtype:sept !ENDIF @@ -204,14 +204,30 @@ SOURCE=..\..\..\include\ascii.h # End Source File # Begin Source File +SOURCE=..\..\..\include\isc\assertions.h +# End Source File +# Begin Source File + SOURCE=..\..\..\include\binio.h # End Source File # Begin Source File +SOURCE=..\..\..\include\isc\boolean.h +# End Source File +# Begin Source File + +SOURCE=..\include\clockstuff.h +# End Source File +# Begin Source File + SOURCE=..\include\config.h # End Source File # Begin Source File +SOURCE=..\include\hopf_PCI_io.h +# End Source File +# Begin Source File + SOURCE=..\..\..\include\ieee754io.h # End Source File # Begin Source File @@ -224,6 +240,22 @@ SOURCE=..\include\arpa\inet.h # End Source File # Begin Source File +SOURCE=..\include\isc\int.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\isc\interfaceiter.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\iosignal.h +# End Source File +# Begin Source File + +SOURCE=..\include\isc\ipv6.h +# End Source File +# Begin Source File + SOURCE=..\..\..\ntpd\jupiter.h # End Source File # Begin Source File @@ -240,6 +272,14 @@ SOURCE=..\..\..\include\mbg_gps166.h # End Source File # Begin Source File +SOURCE=..\include\isc\net.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\isc\netaddr.h +# End Source File +# Begin Source File + SOURCE=..\include\netdb.h # End Source File # Begin Source File @@ -252,10 +292,22 @@ SOURCE=..\..\..\include\ntp_calendar.h # End Source File # Begin Source File +SOURCE=..\..\..\include\ntp_cmdargs.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\ntp_config.h +# End Source File +# Begin Source File + SOURCE=..\..\..\include\ntp_control.h # End Source File # Begin Source File +SOURCE=..\..\..\include\ntp_debug.h +# End Source File +# Begin Source File + SOURCE=..\..\..\include\ntp_filegen.h # End Source File # Begin Source File @@ -272,6 +324,10 @@ SOURCE=..\..\..\include\ntp_io.h # End Source File # Begin Source File +SOURCE=..\include\ntp_iocompletionport.h +# End Source File +# Begin Source File + SOURCE=..\..\..\include\ntp_machine.h # End Source File # Begin Source File @@ -296,6 +352,10 @@ SOURCE=..\..\..\include\ntp_request.h # End Source File # Begin Source File +SOURCE=..\..\..\include\ntp_rfc2553.h +# End Source File +# Begin Source File + SOURCE=..\..\..\include\ntp_select.h # End Source File # Begin Source File @@ -312,6 +372,14 @@ SOURCE=..\..\..\include\ntp_syslog.h # End Source File # Begin Source File +SOURCE=..\include\ntp_timer.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\include\ntp_tty.h +# End Source File +# Begin Source File + SOURCE=..\..\..\include\ntp_types.h # End Source File # Begin Source File @@ -320,18 +388,42 @@ SOURCE=..\..\..\include\ntp_unixtime.h # End Source File # Begin Source File +SOURCE="..\..\..\ntpd\ntpd-opts.h" +# End Source File +# Begin Source File + SOURCE=..\..\..\include\ntpd.h # End Source File # Begin Source File +SOURCE=..\include\ntservice.h +# End Source File +# Begin Source File + +SOURCE=..\include\isc\offset.h +# End Source File +# Begin Source File + +SOURCE=..\..\..\libopts\autoopts\options.h +# End Source File +# Begin Source File + SOURCE=..\include\sys\param.h # End Source File # Begin Source File +SOURCE=..\include\isc\platform.h +# End Source File +# Begin Source File + SOURCE=..\..\..\include\recvbuff.h # End Source File # Begin Source File +SOURCE=..\..\..\include\isc\result.h +# End Source File +# Begin Source File + SOURCE=..\include\sys\socket.h # End Source File # Begin Source File @@ -340,6 +432,10 @@ SOURCE=..\include\syslog.h # End Source File # Begin Source File +SOURCE=..\include\termios.h +# End Source File +# Begin Source File + SOURCE=..\include\transmitbuff.h # End Source File # Begin Source File @@ -350,6 +446,10 @@ SOURCE=..\include\sys\wait.h SOURCE=..\include\win32_io.h # End Source File +# Begin Source File + +SOURCE=..\include\isc\win32os.h +# End Source File # End Group # Begin Group "Generated Files"