* bits/sched.h: Define __CPU_COUNT. Declare __sched_cpucount.

* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
	* posix/sched.h: Define CPU_COUNT.
This commit is contained in:
Ulrich Drepper 2007-04-04 18:51:36 +00:00
parent eab1bdfb8e
commit b4afdd0651
5 changed files with 21 additions and 10 deletions

View File

@ -5,6 +5,9 @@
* posix/sched_cpucount.c: New file.
* posix/tst-cpucount.c: New file.
* posix/Versions: Export __sched_cpucount with version GLIBC_2.6.
* bits/sched.h: Define __CPU_COUNT. Declare __sched_cpucount.
* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.
* posix/sched.h: Define CPU_COUNT.
2007-03-27 Jakub Jelinek <jakub@redhat.com>

View File

@ -1,6 +1,6 @@
/* Definitions of constants and data structure for POSIX 1003.1b-1993
scheduling interface.
Copyright (C) 1996, 1997, 2001, 2003 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 2001, 2003, 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -68,4 +68,7 @@ typedef struct
((cpusetp)->__bits[__CPUELT (cpu)] &= ~__CPUMASK (cpu))
# define __CPU_ISSET(cpu, cpusetp) \
(((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0)
extern int __sched_cpucount (size_t __setsize, cpu_set_t *__setp) __THROW;
# define __CPU_COUNT(cpusetp) \
__sched_cpucount (sizeof (cpu_set_t), cpusetp)
#endif

View File

@ -1,5 +1,5 @@
/* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
Copyright (C) 1996,1997,1999,2001-2003,2004 Free Software Foundation, Inc.
Copyright (C) 1996,1997,1999,2001-2004,2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -65,11 +65,12 @@ extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
#ifdef __USE_GNU
/* Access macros for `cpu_set'. */
#define CPU_SETSIZE __CPU_SETSIZE
#define CPU_SET(cpu, cpusetp) __CPU_SET (cpu, cpusetp)
#define CPU_CLR(cpu, cpusetp) __CPU_CLR (cpu, cpusetp)
#define CPU_ISSET(cpu, cpusetp) __CPU_ISSET (cpu, cpusetp)
#define CPU_ZERO(cpusetp) __CPU_ZERO (cpusetp)
# define CPU_SETSIZE __CPU_SETSIZE
# define CPU_SET(cpu, cpusetp) __CPU_SET (cpu, cpusetp)
# define CPU_CLR(cpu, cpusetp) __CPU_CLR (cpu, cpusetp)
# define CPU_ISSET(cpu, cpusetp) __CPU_ISSET (cpu, cpusetp)
# define CPU_ZERO(cpusetp) __CPU_ZERO (cpusetp)
# define CPU_COUNT(cpusetp) __CPU_COUNT (cpusetp)
/* Set the CPU affinity for a task */

View File

@ -21,10 +21,10 @@
int
__sched_cpucount (cpu_set_t *setp)
__sched_cpucount (size_t setsize, cpu_set_t *setp)
{
int s = 0;
for (unsigned int j = 0; j < __CPU_SETSIZE / __NCPUBITS; ++j)
for (unsigned int j = 0; j < setsize / sizeof (__cpu_mask); ++j)
{
__cpu_mask l = setp->__bits[j];
if (l == 0)

View File

@ -1,6 +1,7 @@
/* Definitions of constants and data structure for POSIX 1003.1b-1993
scheduling interface.
Copyright (C) 1996-1999,2001-2003,2005,2006 Free Software Foundation, Inc.
Copyright (C) 1996-1999,2001-2003,2005,2006,2007
Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -127,4 +128,7 @@ typedef struct
((cpusetp)->__bits[__CPUELT (cpu)] &= ~__CPUMASK (cpu))
# define __CPU_ISSET(cpu, cpusetp) \
(((cpusetp)->__bits[__CPUELT (cpu)] & __CPUMASK (cpu)) != 0)
extern int __sched_cpucount (size_t __setsize, cpu_set_t *__setp) __THROW;
# define __CPU_COUNT(cpusetp) \
__sched_cpucount (sizeof (cpu_set_t), cpusetp)
#endif