From f7e6610ba12319d68833526676b16879aaff415c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Thu, 14 Jul 2011 18:51:43 -0700 Subject: [PATCH] Linux x264_cpu_num_processors(): use glibc macros The cpu_set_t structure is considered opaque. Also handle sched_getaffinity() error case if "cpusetsize is smaller than the size of the affinity mask used by the kernel." --- common/cpu.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/common/cpu.c b/common/cpu.c index 7fffc4db..10988c3f 100644 --- a/common/cpu.c +++ b/common/cpu.c @@ -365,14 +365,8 @@ int x264_cpu_num_processors( void ) return sysconf( _SC_NPROCESSORS_ONLN ); #elif SYS_LINUX - unsigned int bit; - int np; cpu_set_t p_aff; - memset( &p_aff, 0, sizeof(p_aff) ); - sched_getaffinity( 0, sizeof(p_aff), &p_aff ); - for( np = 0, bit = 0; bit < sizeof(p_aff); bit++ ) - np += (((uint8_t *)&p_aff)[bit / 8] >> (bit % 8)) & 1; - return np; + return sched_getaffinity( 0, sizeof(p_aff), &p_aff ) ? 1 : CPU_COUNT(&p_aff); #elif SYS_BEOS system_info info; -- 2.40.0