This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.25-461-g46ee3da


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  46ee3da55ee36af9c930556ad4fca3f69434a067 (commit)
      from  4bad368d9f13c2d8b8d2b2cea89a61916223d882 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=46ee3da55ee36af9c930556ad4fca3f69434a067

commit 46ee3da55ee36af9c930556ad4fca3f69434a067
Author: Zack Weinberg <zackw@panix.com>
Date:   Sat May 20 18:23:01 2017 -0400

    Remove __need_schedparam and __cpu_set_t_defined.
    
    bits/sched.h has logic to expose only an impl-namespace variant of
    struct sched_param (i.e. struct __sched_param), but nothing uses it,
    and the only header that includes bits/sched.h is sched.h.  The
    __need_schedparam logic can therefore be removed.
    
    bits/sched.h also has a great deal of code relating to cpu_set_t
    objects that was *almost* the same between the two versions of
    bits/sched.h in the tree; a little spelunking indicated that this is
    because some bug fixes got applied to the Linux-specific bits/sched.h
    but not the generic one.  Introduce a new header, bits/cpu-set.h,
    containing the version of that code with the bugfixes, have sched.h
    include it directly, and delete all of the code from both versions of
    bits/sched.h.
    
    Also remove the unnecessary name mangling in the definition of struct
    sched_param -- POSIX specifies a field 'sched_priority', so there is
    no reason to define it as '__sched_priority' and then paper over that
    with a macro.  (Just in case someone was using the internal name,
    'sched_priority' remains a macro defined to expand to itself, and
    '__sched_priority' now expands to 'sched_priority'.)
    
    Finally, as long as I'm touching these files anyway, merge new
    constants from linux/sched.h into the Linux bits/sched.h.
    
    	* bits/sched.h: Remove __need_schedparam logic and replace with a
    	normal multiple-include guard.  Change field name in struct
    	sched_param from __sched_priority to sched_priority.  Delete
    	everything under #ifndef __cpu_set_t_defined.
    	* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.  Also sync with
    	kernel sched.h, adding SCHED_ISO and SCHED_DEADLINE constants.
    
    	* posix/sched.h: Include bits/cpu-set.h as well as bits/sched.h.
    	For compatibility, #define sched_priority to itself, and #define
    	__sched_priority as sched_priority.
    	* posix/bits/cpu-set.h: New file containing, verbatim, the code
    	that was under #ifndef __cpu_set_t_defined in
    	sysdeps/unix/sysv/linux/bits/sched.h.
    	* include/bits/cpu-set.h: New wrapper.
    	* posix/Makefile: Install bits/cpu-set.h.

diff --git a/ChangeLog b/ChangeLog
index 0a21fa5..bcd4e45 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2017-06-12  Zack Weinberg  <zackw@panix.com>
+
+	* bits/sched.h: Remove __need_schedparam logic and replace with a
+	normal multiple-include guard.  Change field name in struct
+	sched_param from __sched_priority to sched_priority.  Delete
+	everything under #ifndef __cpu_set_t_defined.
+	* sysdeps/unix/sysv/linux/bits/sched.h: Likewise.  Also sync with
+	kernel sched.h, adding SCHED_ISO and SCHED_DEADLINE constants.
+
+	* posix/sched.h: Include bits/cpu-set.h as well as bits/sched.h.
+	For compatibility, #define sched_priority to itself, and #define
+	__sched_priority as sched_priority.
+	* posix/bits/cpu-set.h: New file containing, verbatim, the code
+	that was under #ifndef __cpu_set_t_defined in
+	sysdeps/unix/sysv/linux/bits/sched.h.
+	* include/bits/cpu-set.h: New wrapper.
+	* posix/Makefile: Install bits/cpu-set.h.
+
 2017-06-12  Paul E. Murphy  <murphyp@linux.vnet.ibm.com>
 	    Gabriel F. T. Gomes  <gftg@linux.vnet.ibm.com>
 	    Tulio Magno Quites Machado Filho  <tuliom@linux.vnet.ibm.com>
diff --git a/bits/sched.h b/bits/sched.h
index c36c569..0588f31 100644
--- a/bits/sched.h
+++ b/bits/sched.h
@@ -17,13 +17,13 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#ifndef __need_schedparam
+#ifndef _BITS_SCHED_H
+#define _BITS_SCHED_H 1
 
 #ifndef _SCHED_H
 # error "Never include <bits/sched.h> directly; use <sched.h> instead."
 #endif
 
-
 /* Scheduling algorithms.  */
 #define SCHED_OTHER	0
 #define SCHED_FIFO	1
@@ -32,120 +32,7 @@
 /* Data structure to describe a process' schedulability.  */
 struct sched_param
 {
-  int __sched_priority;
+  int sched_priority;
 };
 
-#endif	/* need schedparam */
-
-#if !defined __defined_schedparam \
-    && (defined __need_schedparam || defined _SCHED_H)
-# define __defined_schedparam	1
-/* Data structure to describe a process' schedulability.  */
-struct __sched_param
-  {
-    int __sched_priority;
-  };
-# undef __need_schedparam
-#endif
-
-
-#if defined _SCHED_H && !defined __cpu_set_t_defined
-# define __cpu_set_t_defined
-/* Size definition for CPU sets.  */
-# define __CPU_SETSIZE	1024
-# define __NCPUBITS	(8 * sizeof (__cpu_mask))
-
-/* Type for array elements in 'cpu_set_t'.  */
-typedef unsigned long int __cpu_mask;
-
-/* Basic access functions.  */
-# define __CPUELT(cpu)	((cpu) / __NCPUBITS)
-# define __CPUMASK(cpu)	((__cpu_mask) 1 << ((cpu) % __NCPUBITS))
-
-/* Data structure to describe CPU mask.  */
-typedef struct
-{
-  __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS];
-} cpu_set_t;
-
-/* Access functions for CPU masks.  */
-# if __GNUC_PREREQ (2, 91)
-#  define __CPU_ZERO_S(setsize, cpusetp) \
-  do __builtin_memset (cpusetp, '\0', setsize); while (0)
-# else
-#  define __CPU_ZERO_S(setsize, cpusetp) \
-  do {									      \
-    size_t __i;								      \
-    size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
-    __cpu_mask *__bits = (cpusetp)->__bits;				      \
-    for (__i = 0; __i < __imax; ++__i)					      \
-      __bits[__i] = 0;							      \
-  } while (0)
-# endif
-# define __CPU_SET_S(cpu, setsize, cpusetp) \
-  (__extension__							      \
-   ({ size_t __cpu = (cpu);						      \
-      __cpu < 8 * (setsize)						      \
-      ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]		      \
-	 |= __CPUMASK (__cpu))						      \
-      : 0; }))
-# define __CPU_CLR_S(cpu, setsize, cpusetp) \
-  (__extension__							      \
-   ({ size_t __cpu = (cpu);						      \
-      __cpu < 8 * (setsize)						      \
-      ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]		      \
-	 &= ~__CPUMASK (__cpu))						      \
-      : 0; }))
-# define __CPU_ISSET_S(cpu, setsize, cpusetp) \
-  (__extension__							      \
-   ({ size_t __cpu = (cpu);						      \
-      __cpu < 8 * (setsize)						      \
-      ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]      \
-	  & __CPUMASK (__cpu))) != 0					      \
-      : 0; }))
-
-# define __CPU_COUNT_S(setsize, cpusetp) \
-  __sched_cpucount (setsize, cpusetp)
-
-# if __GNUC_PREREQ (2, 91)
-#  define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
-  (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)
-# else
-#  define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
-  (__extension__							      \
-   ({ const __cpu_mask *__arr1 = (cpusetp1)->__bits;			      \
-      const __cpu_mask *__arr2 = (cpusetp2)->__bits;			      \
-      size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
-      size_t __i;							      \
-      for (__i = 0; __i < __imax; ++__i)				      \
-	if (__arr1[__i] != __arr2[__i])					      \
-	  break;							      \
-      __i == __imax; }))
-# endif
-
-# define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \
-  (__extension__							      \
-   ({ cpu_set_t *__dest = (destset);					      \
-      const __cpu_mask *__arr1 = (srcset1)->__bits;			      \
-      const __cpu_mask *__arr2 = (srcset2)->__bits;			      \
-      size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
-      size_t __i;							      \
-      for (__i = 0; __i < __imax; ++__i)				      \
-	((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i];    \
-      __dest; }))
-
-# define __CPU_ALLOC_SIZE(count) \
-  ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))
-# define __CPU_ALLOC(count) __sched_cpualloc (count)
-# define __CPU_FREE(cpuset) __sched_cpufree (cpuset)
-
-__BEGIN_DECLS
-
-extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
-     __THROW;
-extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur;
-extern void __sched_cpufree (cpu_set_t *__set) __THROW;
-
-__END_DECLS
-
-#endif
+#endif /* bits/sched.h */
diff --git a/include/bits/cpu-set.h b/include/bits/cpu-set.h
new file mode 100644
index 0000000..388f03c
--- /dev/null
+++ b/include/bits/cpu-set.h
@@ -0,0 +1 @@
+#include <posix/bits/cpu-set.h>
diff --git a/posix/Makefile b/posix/Makefile
index 52b022c..1c328b8 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -30,8 +30,8 @@ headers	:= sys/utsname.h sys/times.h sys/wait.h sys/types.h unistd.h	      \
 	   bits/posix1_lim.h bits/posix2_lim.h bits/posix_opt.h		      \
 	   bits/local_lim.h tar.h bits/utsname.h bits/confname.h	      \
 	   bits/waitflags.h bits/waitstatus.h sys/unistd.h sched.h	      \
-	   bits/sched.h re_comp.h wait.h bits/environments.h cpio.h	      \
-	   spawn.h bits/unistd.h
+	   bits/sched.h bits/cpu-set.h re_comp.h wait.h bits/environments.h   \
+	   cpio.h spawn.h bits/unistd.h
 
 routines :=								      \
 	uname								      \
diff --git a/bits/sched.h b/posix/bits/cpu-set.h
similarity index 81%
copy from bits/sched.h
copy to posix/bits/cpu-set.h
index c36c569..f9b11b9 100644
--- a/bits/sched.h
+++ b/posix/bits/cpu-set.h
@@ -1,4 +1,4 @@
-/* Definitions of constants and data structure for POSIX 1003.1b-1993
+/* Definition of the cpu_set_t structure used by the POSIX 1003.1b-1993
    scheduling interface.
    Copyright (C) 1996-2017 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
@@ -17,46 +17,19 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#ifndef __need_schedparam
+#ifndef _BITS_CPU_SET_H
+#define _BITS_CPU_SET_H 1
 
 #ifndef _SCHED_H
-# error "Never include <bits/sched.h> directly; use <sched.h> instead."
+# error "Never include <bits/cpu-set.h> directly; use <sched.h> instead."
 #endif
 
-
-/* Scheduling algorithms.  */
-#define SCHED_OTHER	0
-#define SCHED_FIFO	1
-#define SCHED_RR	2
-
-/* Data structure to describe a process' schedulability.  */
-struct sched_param
-{
-  int __sched_priority;
-};
-
-#endif	/* need schedparam */
-
-#if !defined __defined_schedparam \
-    && (defined __need_schedparam || defined _SCHED_H)
-# define __defined_schedparam	1
-/* Data structure to describe a process' schedulability.  */
-struct __sched_param
-  {
-    int __sched_priority;
-  };
-# undef __need_schedparam
-#endif
-
-
-#if defined _SCHED_H && !defined __cpu_set_t_defined
-# define __cpu_set_t_defined
 /* Size definition for CPU sets.  */
 # define __CPU_SETSIZE	1024
 # define __NCPUBITS	(8 * sizeof (__cpu_mask))
 
 /* Type for array elements in 'cpu_set_t'.  */
-typedef unsigned long int __cpu_mask;
+typedef __CPU_MASK_TYPE __cpu_mask;
 
 /* Basic access functions.  */
 # define __CPUELT(cpu)	((cpu) / __NCPUBITS)
@@ -85,22 +58,22 @@ typedef struct
 # define __CPU_SET_S(cpu, setsize, cpusetp) \
   (__extension__							      \
    ({ size_t __cpu = (cpu);						      \
-      __cpu < 8 * (setsize)						      \
+      __cpu / 8 < (setsize)						      \
       ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]		      \
 	 |= __CPUMASK (__cpu))						      \
       : 0; }))
 # define __CPU_CLR_S(cpu, setsize, cpusetp) \
   (__extension__							      \
    ({ size_t __cpu = (cpu);						      \
-      __cpu < 8 * (setsize)						      \
+      __cpu / 8 < (setsize)						      \
       ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]		      \
 	 &= ~__CPUMASK (__cpu))						      \
       : 0; }))
 # define __CPU_ISSET_S(cpu, setsize, cpusetp) \
   (__extension__							      \
    ({ size_t __cpu = (cpu);						      \
-      __cpu < 8 * (setsize)						      \
-      ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]      \
+      __cpu / 8 < (setsize)						      \
+      ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]	      \
 	  & __CPUMASK (__cpu))) != 0					      \
       : 0; }))
 
@@ -148,4 +121,4 @@ extern void __sched_cpufree (cpu_set_t *__set) __THROW;
 
 __END_DECLS
 
-#endif
+#endif /* bits/cpu-set.h */
diff --git a/posix/sched.h b/posix/sched.h
index 7037ab3..d5cdac3 100644
--- a/posix/sched.h
+++ b/posix/sched.h
@@ -39,11 +39,13 @@ typedef __pid_t pid_t;
 # define __pid_t_defined
 #endif
 
-
 /* Get system specific constant and data structure definitions.  */
 #include <bits/sched.h>
-/* Define the real names for the elements of `struct sched_param'.  */
-#define sched_priority	__sched_priority
+#include <bits/cpu-set.h>
+
+/* Backward compatibility.  */
+#define sched_priority    sched_priority
+#define __sched_priority  sched_priority
 
 
 __BEGIN_DECLS
diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h
index cc0d698..6d23e94 100644
--- a/sysdeps/unix/sysv/linux/bits/sched.h
+++ b/sysdeps/unix/sysv/linux/bits/sched.h
@@ -17,20 +17,22 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#ifndef __need_schedparam
+#ifndef _BITS_SCHED_H
+#define _BITS_SCHED_H 1
 
 #ifndef _SCHED_H
 # error "Never include <bits/sched.h> directly; use <sched.h> instead."
 #endif
 
-
 /* Scheduling algorithms.  */
 #define SCHED_OTHER		0
 #define SCHED_FIFO		1
 #define SCHED_RR		2
 #ifdef __USE_GNU
 # define SCHED_BATCH		3
+# define SCHED_ISO		4
 # define SCHED_IDLE		5
+# define SCHED_DEADLINE		6
 
 # define SCHED_RESET_ON_FORK	0x40000000
 #endif
@@ -69,11 +71,11 @@
 # define CLONE_IO	0x80000000	/* Clone I/O context.  */
 #endif
 
-/* The official definition.  */
+/* Data structure to describe a process' schedulability.  */
 struct sched_param
-  {
-    int __sched_priority;
-  };
+{
+  int sched_priority;
+};
 
 __BEGIN_DECLS
 
@@ -92,120 +94,6 @@ extern int sched_getcpu (void) __THROW;
 extern int setns (int __fd, int __nstype) __THROW;
 #endif
 
-
-__END_DECLS
-
-#endif	/* need schedparam */
-
-#if !defined __defined_schedparam \
-    && (defined __need_schedparam || defined _SCHED_H)
-# define __defined_schedparam	1
-/* Data structure to describe a process' schedulability.  */
-struct __sched_param
-  {
-    int __sched_priority;
-  };
-# undef __need_schedparam
-#endif
-
-
-#if defined _SCHED_H && !defined __cpu_set_t_defined
-# define __cpu_set_t_defined
-/* Size definition for CPU sets.  */
-# define __CPU_SETSIZE	1024
-# define __NCPUBITS	(8 * sizeof (__cpu_mask))
-
-/* Type for array elements in 'cpu_set_t'.  */
-typedef __CPU_MASK_TYPE __cpu_mask;
-
-/* Basic access functions.  */
-# define __CPUELT(cpu)	((cpu) / __NCPUBITS)
-# define __CPUMASK(cpu)	((__cpu_mask) 1 << ((cpu) % __NCPUBITS))
-
-/* Data structure to describe CPU mask.  */
-typedef struct
-{
-  __cpu_mask __bits[__CPU_SETSIZE / __NCPUBITS];
-} cpu_set_t;
-
-/* Access functions for CPU masks.  */
-# if __GNUC_PREREQ (2, 91)
-#  define __CPU_ZERO_S(setsize, cpusetp) \
-  do __builtin_memset (cpusetp, '\0', setsize); while (0)
-# else
-#  define __CPU_ZERO_S(setsize, cpusetp) \
-  do {									      \
-    size_t __i;								      \
-    size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
-    __cpu_mask *__bits = (cpusetp)->__bits;				      \
-    for (__i = 0; __i < __imax; ++__i)					      \
-      __bits[__i] = 0;							      \
-  } while (0)
-# endif
-# define __CPU_SET_S(cpu, setsize, cpusetp) \
-  (__extension__							      \
-   ({ size_t __cpu = (cpu);						      \
-      __cpu / 8 < (setsize)						      \
-      ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]		      \
-	 |= __CPUMASK (__cpu))						      \
-      : 0; }))
-# define __CPU_CLR_S(cpu, setsize, cpusetp) \
-  (__extension__							      \
-   ({ size_t __cpu = (cpu);						      \
-      __cpu / 8 < (setsize)						      \
-      ? (((__cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]		      \
-	 &= ~__CPUMASK (__cpu))						      \
-      : 0; }))
-# define __CPU_ISSET_S(cpu, setsize, cpusetp) \
-  (__extension__							      \
-   ({ size_t __cpu = (cpu);						      \
-      __cpu / 8 < (setsize)						      \
-      ? ((((const __cpu_mask *) ((cpusetp)->__bits))[__CPUELT (__cpu)]	      \
-	  & __CPUMASK (__cpu))) != 0					      \
-      : 0; }))
-
-# define __CPU_COUNT_S(setsize, cpusetp) \
-  __sched_cpucount (setsize, cpusetp)
-
-# if __GNUC_PREREQ (2, 91)
-#  define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
-  (__builtin_memcmp (cpusetp1, cpusetp2, setsize) == 0)
-# else
-#  define __CPU_EQUAL_S(setsize, cpusetp1, cpusetp2) \
-  (__extension__							      \
-   ({ const __cpu_mask *__arr1 = (cpusetp1)->__bits;			      \
-      const __cpu_mask *__arr2 = (cpusetp2)->__bits;			      \
-      size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
-      size_t __i;							      \
-      for (__i = 0; __i < __imax; ++__i)				      \
-	if (__arr1[__i] != __arr2[__i])					      \
-	  break;							      \
-      __i == __imax; }))
-# endif
-
-# define __CPU_OP_S(setsize, destset, srcset1, srcset2, op) \
-  (__extension__							      \
-   ({ cpu_set_t *__dest = (destset);					      \
-      const __cpu_mask *__arr1 = (srcset1)->__bits;			      \
-      const __cpu_mask *__arr2 = (srcset2)->__bits;			      \
-      size_t __imax = (setsize) / sizeof (__cpu_mask);			      \
-      size_t __i;							      \
-      for (__i = 0; __i < __imax; ++__i)				      \
-	((__cpu_mask *) __dest->__bits)[__i] = __arr1[__i] op __arr2[__i];    \
-      __dest; }))
-
-# define __CPU_ALLOC_SIZE(count) \
-  ((((count) + __NCPUBITS - 1) / __NCPUBITS) * sizeof (__cpu_mask))
-# define __CPU_ALLOC(count) __sched_cpualloc (count)
-# define __CPU_FREE(cpuset) __sched_cpufree (cpuset)
-
-__BEGIN_DECLS
-
-extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
-  __THROW;
-extern cpu_set_t *__sched_cpualloc (size_t __count) __THROW __wur;
-extern void __sched_cpufree (cpu_set_t *__set) __THROW;
-
 __END_DECLS
 
-#endif
+#endif /* bits/sched.h */

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                            |   18 +++++
 bits/sched.h                         |  121 +------------------------------
 include/bits/cpu-set.h               |    1 +
 posix/Makefile                       |    4 +-
 bits/sched.h => posix/bits/cpu-set.h |   47 +++----------
 posix/sched.h                        |    8 ++-
 sysdeps/unix/sysv/linux/bits/sched.h |  130 +++-------------------------------
 7 files changed, 49 insertions(+), 280 deletions(-)
 create mode 100644 include/bits/cpu-set.h
 copy bits/sched.h => posix/bits/cpu-set.h (81%)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]