From: Sven Dietricht Date: Wed, 26 Jul 2000 23:46:01 +0000 (-0000) Subject: win32_io.c: X-Git-Tag: NTP_4_0_99_M~253 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb71cb4ea007819cadaf6a776a03b63e429095fd;p=thirdparty%2Fntp.git win32_io.c: Add NT_set_process_priority function to unclutter ntpd/ntpd.c bk: 397f7839Nmv_xbin_7xbq4UyunC6PQ --- diff --git a/ports/winnt/ntpd/win32_io.c b/ports/winnt/ntpd/win32_io.c index f4e83b4e86..923beefd33 100644 --- a/ports/winnt/ntpd/win32_io.c +++ b/ports/winnt/ntpd/win32_io.c @@ -1,3 +1,4 @@ +/* This file implementes system calls that are not compatible with UNIX */ #ifdef HAVE_CONFIG_H # include @@ -14,6 +15,39 @@ #include "win32_io.h" +int NT_set_process_priority(void) +{ + DWORD SingleCPUMask = 0; + DWORD ProcessAffinityMask, SystemAffinityMask; + if (!GetProcessAffinityMask(GetCurrentProcess(), &ProcessAffinityMask, & + SystemAffinityMask)) + msyslog(LOG_ERR, "GetProcessAffinityMask: %m"); + else { + SingleCPUMask = 1; +# ifdef DEBUG + msyslog(LOG_INFO, "System AffinityMask = %x", SystemAffinityMask); +# endif + } + + while (SingleCPUMask && !(SingleCPUMask & SystemAffinityMask)) + SingleCPUMask = SingleCPUMask << 1; + + if (!SingleCPUMask) + msyslog(LOG_ERR, "Can't set Processor Affinity Mask"); + else if (!SetProcessAffinityMask(GetCurrentProcess(), SingleCPUMask)) + msyslog(LOG_ERR, "SetProcessAffinityMask: %m"); +# ifdef DEBUG + else msyslog(LOG_INFO,"ProcessorAffinity Mask: %x", SingleCPUMask ); +# endif + if (!SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS)) + { + msyslog(LOG_ERR, "SetPriorityClass: %m"); + return 0; + } + else + return 1; +} + /* * refclock_open - open serial port for reference clock *