--- cpu_topo.c 2009-12-22 00:58:58.000000000 +0200 +++ cpu_topo.c 2010-07-14 20:19:05.228570843 +0300 @@ -53,7 +53,6 @@ #include #include #include -#include #include #define __cdecl --- cputopology.h 2009-12-22 00:58:58.000000000 +0200 +++ cputopology.h 2010-07-14 20:19:34.867919186 +0300 @@ -268,7 +268,7 @@ unsigned GetThreadCount(unsigned long package_ordinal, unsigned long core_ordinal); void InitCpuTopology(); -unsigned BindContext(unsigned cpu); +int BindContext(unsigned cpu); void SetChkProcessAffinityConsistency(unsigned lcl_OSProcessorCount); void SetGenericAffinityBit(GenericAffinityMask *pAffinityMap, unsigned cpu); unsigned GetMaxCPUSupportedByOS(); --- mk_64.sh 2009-12-22 00:58:58.000000000 +0200 +++ mk_64.sh 2010-07-14 18:55:47.631285973 +0300 @@ -1,6 +1,6 @@ #!/bin/sh -gcc -g -c get_cpuid_lix64.s -o get_cpuid_lix64.o -gcc -g -c util_os.c -gcc -g -DBUILD_MAIN cpu_topo.c -o cpu_topology64.out get_cpuid_lix64.o util_os.o +gcc -g -c -D__linux__ get_cpuid_lix64.s -o get_cpuid_lix64.o +gcc -g -c -D__linux__ util_os.c +gcc -g -D__linux__ -DBUILD_MAIN cpu_topo.c -o cpu_topology64.out get_cpuid_lix64.o util_os.o --- util_os.c 2009-12-22 00:58:58.000000000 +0200 +++ util_os.c 2010-07-14 20:22:22.950896069 +0300 @@ -18,8 +18,9 @@ #include #include #include -#include #include +#include +#include #ifdef __CPU_ISSET #define MY_CPU_SET __CPU_SET @@ -105,12 +106,12 @@ int BindContext(unsigned int cpu) { int ret = -1; #ifdef __linux__ - cpu_set_t currentCPU; + cpuset_t currentCPU; // add check for size of cpumask_t. MY_CPU_ZERO(¤tCPU); // turn on the equivalent bit inside the bitmap corresponding to affinitymask MY_CPU_SET(cpu, ¤tCPU); - if ( !sched_setaffinity (0, sizeof(currentCPU), ¤tCPU) ) + if ( !cpuset_setaffinity (CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, sizeof(currentCPU), ¤tCPU) ) { ret = 0; } #else @@ -241,9 +242,9 @@ void SetChkProcessAffinityConsistency(unsigned int lcl_OSProcessorCount) {unsigned int i, sum = 0; #ifdef __linux__ - cpu_set_t allowedCPUs; + cpuset_t allowedCPUs; - sched_getaffinity(0, sizeof(allowedCPUs), &allowedCPUs); + cpuset_getaffinity(CPU_LEVEL_CPUSET, CPU_WHICH_PID, -1, sizeof(allowedCPUs), &allowedCPUs); for (i = 0; i < lcl_OSProcessorCount; i++ ) { if ( MY_CPU_ISSET(i, &allowedCPUs) == 0 )