Example #1
0
 public static void CPU_CLR_S(int cpu, size_t cpusetsize, cpu_set_t *set)
 {
     if (cpu / 8 < (int)cpusetsize)
     {
         ((size_t *)set)[cpu / 8 / SizeOf.size_t] &= ~((size_t)1 << (cpu % (8 * SizeOf.size_t)));
     }
 }
Example #2
0
 public static bool CPU_ISSET_S(int cpu, size_t cpusetsize, cpu_set_t *set)
 {
     if (cpu / 8 < (int)cpusetsize)
     {
         size_t value = ((size_t *)set)[cpu / 8 / SizeOf.size_t] & ((size_t)1 << (cpu % (8 * SizeOf.size_t)));
         return(value != 0);
     }
     return(false);
 }
Example #3
0
        public static void CPU_ZERO_S(size_t size, cpu_set_t *set)
        {
            size_t *s = (size_t *)set;

            for (size_t i = 0; i < size / SizeOf.size_t; i++)
            {
                s[i] = 0;
            }
        }
Example #4
0
        public static void CPU_XOR_S(size_t setsize, cpu_set_t *destset, cpu_set_t *srcset1, cpu_set_t *srcset2)
        {
            size_t *dst  = (size_t *)destset;
            size_t *src1 = (size_t *)srcset1;
            size_t *src2 = (size_t *)srcset2;

            for (size_t i = 0; i < setsize / SizeOf.size_t; i++)
            {
                dst[i] = src1[i] ^ src2[i];
            }
        }
Example #5
0
        public static bool CPU_EQUAL_S(size_t size, cpu_set_t *set1, cpu_set_t *set2)
        {
            size_t *s1 = (size_t *)set1;
            size_t *s2 = (size_t *)set2;

            for (int i = 0; i < size / SizeOf.size_t; i++)
            {
                if (s1[i] != s2[i])
                {
                    return(false);
                }
            }
            return(true);
        }
Example #6
0
        public static int CPU_COUNT_S(size_t size, cpu_set_t *set)
        {
            size_t *s     = (size_t *)set;
            size_t  count = 0;

            for (size_t i = 0; i < size / SizeOf.ssize_t; i++)
            {
                size_t n = s[i];
                while (n != 0)
                {
                    count += n & 1;
                    n    >>= 1;
                }
            }
            return((int)count);
        }
 internal static unsafe bool CPU_ISSET(int cpu, cpu_set_t *set)
 {
     return((set->bits[CPUELT(cpu)] & CPUMASK(cpu)) != 0);
 }
 internal static unsafe void CPU_SET(int cpu, cpu_set_t *set)
 {
     set->bits[CPUELT(cpu)] |= CPUMASK(cpu);
 }
 internal static extern unsafe int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask);
Example #10
0
 public static extern int sched_setaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *mask);
Example #11
0
 public static bool CPU_EQUAL(cpu_set_t *s1, cpu_set_t *s2) => CPU_EQUAL_S(SizeOf.cpu_set_t, s1, s2);
Example #12
0
 public static void CPU_ZERO(cpu_set_t *set) => CPU_ZERO_S(SizeOf.cpu_set_t, set);
Example #13
0
 public static int CPU_COUNT(cpu_set_t *set) => CPU_COUNT_S(SizeOf.cpu_set_t, set);
Example #14
0
 public static void CPU_XOR(cpu_set_t *d, cpu_set_t *s1, cpu_set_t *s2) => CPU_XOR_S(SizeOf.cpu_set_t, d, s1, s2);
Example #15
0
 public static bool CPU_ISSET(int cpu, cpu_set_t *set) => CPU_ISSET_S(cpu, SizeOf.cpu_set_t, set);
Example #16
0
 public static void CPU_CLR(int cpu, cpu_set_t *set) => CPU_CLR_S(cpu, SizeOf.cpu_set_t, set);