os-windows: fix cpumask operations
[fio.git] / os / os-windows.h
index 520da19aa1731f130a12ee4adac5fdd1484dd606..1b87771d2d7498a0ec6c2a1b49cb8bc0059f9965 100644 (file)
@@ -209,17 +209,17 @@ static inline int fio_getaffinity(int pid, os_cpu_mask_t *mask)
 
 static inline void fio_cpu_clear(os_cpu_mask_t *mask, int cpu)
 {
-       *mask ^= 1 << (cpu-1);
+       *mask &= ~(1ULL << cpu);
 }
 
 static inline void fio_cpu_set(os_cpu_mask_t *mask, int cpu)
 {
-       *mask |= 1 << cpu;
+       *mask |= 1ULL << cpu;
 }
 
 static inline int fio_cpu_isset(os_cpu_mask_t *mask, int cpu)
 {
-       return (*mask & (1U << cpu));
+       return (*mask & (1ULL << cpu)) > 0;
 }
 
 static inline int fio_cpu_count(os_cpu_mask_t *mask)