]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
win32_io.c:
authorSven Dietricht <dietrict@ntp.org>
Wed, 26 Jul 2000 23:46:01 +0000 (23:46 -0000)
committerSven Dietricht <dietrict@ntp.org>
Wed, 26 Jul 2000 23:46:01 +0000 (23:46 -0000)
  Add NT_set_process_priority function to unclutter ntpd/ntpd.c

bk: 397f7839Nmv_xbin_7xbq4UyunC6PQ

ports/winnt/ntpd/win32_io.c

index f4e83b4e86701a9c52f8eefbdb5569d524da9f9e..923beefd3386a45b22461ecb4961771e605d844d 100644 (file)
@@ -1,3 +1,4 @@
+/* This file implementes system calls that are not compatible with UNIX */
 
 #ifdef HAVE_CONFIG_H
 # include <config.h>
 #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
  *