#ifndef CPUSET_H
#define CPUSET_H
#ifdef HAVE_SCHED_H
# include <sched.h>
#endif
#ifdef HAVE_SYS_CPUSET_H
# include <sys/cpuset.h>
#endif
#ifndef HAVE_CPUSET_T
#ifdef HAVE_CPU_SET_T
#define HAVE_CPUSET_T 1
typedef cpu_set_t cpuset_t;
#endif
#endif
#ifndef HAVE_CPUID_T
#ifdef __linux__
typedef int cpuid_t;
#elif defined(__FreeBSD__) || defined(__gnu_hurd__) || defined(__DragonFly__)
typedef size_t cpuid_t;
#else
typedef size_t cpuid_t;
#endif
#endif
#ifndef HAVE_CPUSET_CREATE
cpuset_t *cpuset_create(void);
#endif
#ifndef HAVE_CPUSET_DESTROY
void cpuset_destroy(cpuset_t *set);
#endif
#ifndef HAVE_CPUSET_ZERO
void cpuset_zero(cpuset_t *set);
#endif
#ifndef HAVE_CPUSET_SET
int cpuset_set(cpuid_t cpu, cpuset_t *set);
#endif
#ifndef HAVE_CPUSET_CLR
int cpuset_clr(cpuid_t cpu, cpuset_t *set);
#endif
#ifndef HAVE_CPUSET_ISSET
int cpuset_isset(cpuid_t cpu, const cpuset_t *set);
#endif
#ifndef HAVE_CPUSET_SIZE
size_t cpuset_size(const cpuset_t *set);
#endif
void cpuset_or(cpuset_t *destset, const cpuset_t *srcset);
#endif