From 9f2b28a508ac2789e2f778c7bb20a6759bbab8f1 Mon Sep 17 00:00:00 2001 From: Bernhard Reutner-Fischer Date: Wed, 24 Sep 2008 16:31:29 +0000 Subject: - only compile them if the respective syscalls are available --- libc/sysdeps/linux/common/sched_getaffinity.c | 11 ++++++++--- libc/sysdeps/linux/common/sched_setaffinity.c | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 3 deletions(-) (limited to 'libc/sysdeps/linux') diff --git a/libc/sysdeps/linux/common/sched_getaffinity.c b/libc/sysdeps/linux/common/sched_getaffinity.c index 678571239..b3256c207 100644 --- a/libc/sysdeps/linux/common/sched_getaffinity.c +++ b/libc/sysdeps/linux/common/sched_getaffinity.c @@ -26,8 +26,7 @@ #include #include -/* Experimentally off - libc_hidden_proto(memset) */ - +#if defined __NR_sched_getaffinity #define __NR___syscall_sched_getaffinity __NR_sched_getaffinity static __inline__ _syscall3(int, __syscall_sched_getaffinity, __kernel_pid_t, pid, size_t, cpusetsize, cpu_set_t *, cpuset); @@ -45,5 +44,11 @@ int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *cpuset) } return res; } - +#elif defined __UCLIBC_HAS_STUBS__ +int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *cpuset) +{ + __set_errno(ENOSYS); + return -1; +} +#endif #endif diff --git a/libc/sysdeps/linux/common/sched_setaffinity.c b/libc/sysdeps/linux/common/sched_setaffinity.c index 7a854a819..004ec9dd0 100644 --- a/libc/sysdeps/linux/common/sched_setaffinity.c +++ b/libc/sysdeps/linux/common/sched_setaffinity.c @@ -30,6 +30,7 @@ #include #include +#if defined __NR_sched_setaffinity libc_hidden_proto(getpid) #define __NR___syscall_sched_setaffinity __NR_sched_setaffinity @@ -73,5 +74,19 @@ int sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t *cpuset) return INLINE_SYSCALL (sched_setaffinity, 3, pid, cpusetsize, cpuset); } +#else +#define ___HAVE_NO_sched_setaffinity #endif +#else +#define ___HAVE_NO_sched_setaffinity #endif + +#if defined ___HAVE_NO_sched_setaffinity && defined __UCLIBC_HAS_STUBS__ +int sched_setaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *cpuset) +{ + __set_errno(ENOSYS); + return -1; +} +#endif + +#endif /* __USE_GNU */ -- cgit v1.2.3