From 783c4820303fb6b031d401564f8089ecaf154b62 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 18 Apr 2018 00:27:31 +0200 Subject: [PATCH] Fix sched_param --- bits/sched.h | 6 +----- bits/{sched.h => types/struct___sched_param.h} | 24 +++++++----------------- bits/{sched.h => types/struct_sched_param.h} | 20 +++++--------------- posix/Makefile | 3 ++- posix/sched.h | 2 +- sysdeps/htl/bits/types/struct___pthread_attr.h | 4 ++-- sysdeps/htl/pt-attr.c | 2 +- sysdeps/htl/timer_routines.h | 4 ++-- sysdeps/unix/sysv/linux/bits/sched.h | 6 +----- 9 files changed, 22 insertions(+), 49 deletions(-) copy bits/{sched.h => types/struct___sched_param.h} (64%) copy bits/{sched.h => types/struct_sched_param.h} (67%) diff --git a/bits/sched.h b/bits/sched.h index 8d9f077eee..bdd94c969d 100644 --- a/bits/sched.h +++ b/bits/sched.h @@ -29,10 +29,6 @@ #define SCHED_FIFO 1 #define SCHED_RR 2 -/* Data structure to describe a process' schedulability. */ -struct sched_param -{ - int sched_priority; -}; +#include #endif /* bits/sched.h */ diff --git a/bits/sched.h b/bits/types/struct___sched_param.h similarity index 64% copy from bits/sched.h copy to bits/types/struct___sched_param.h index 8d9f077eee..a6d95bfd61 100644 --- a/bits/sched.h +++ b/bits/types/struct___sched_param.h @@ -1,5 +1,4 @@ -/* Definitions of constants and data structure for POSIX 1003.1b-1993 - scheduling interface. +/* Sched parameter structure. Generic version. Copyright (C) 1996-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -14,25 +13,16 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see + License along with the GNU C Library; if not, see . */ -#ifndef _BITS_SCHED_H -#define _BITS_SCHED_H 1 - -#ifndef _SCHED_H -# error "Never include directly; use instead." -#endif - -/* Scheduling algorithms. */ -#define SCHED_OTHER 0 -#define SCHED_FIFO 1 -#define SCHED_RR 2 +#ifndef _BITS_TYPES_STRUCT___SCHED_PARAM +#define _BITS_TYPES_STRUCT___SCHED_PARAM 1 /* Data structure to describe a process' schedulability. */ -struct sched_param +struct __sched_param { - int sched_priority; + int __sched_priority; }; -#endif /* bits/sched.h */ +#endif /* bits/types/struct___sched_param.h */ diff --git a/bits/sched.h b/bits/types/struct_sched_param.h similarity index 67% copy from bits/sched.h copy to bits/types/struct_sched_param.h index 8d9f077eee..60707023d5 100644 --- a/bits/sched.h +++ b/bits/types/struct_sched_param.h @@ -1,5 +1,4 @@ -/* Definitions of constants and data structure for POSIX 1003.1b-1993 - scheduling interface. +/* Sched parameter structure. Generic version. Copyright (C) 1996-2018 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -14,20 +13,11 @@ Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see + License along with the GNU C Library; if not, see . */ -#ifndef _BITS_SCHED_H -#define _BITS_SCHED_H 1 - -#ifndef _SCHED_H -# error "Never include directly; use instead." -#endif - -/* Scheduling algorithms. */ -#define SCHED_OTHER 0 -#define SCHED_FIFO 1 -#define SCHED_RR 2 +#ifndef _BITS_TYPES_STRUCT_SCHED_PARAM +#define _BITS_TYPES_STRUCT_SCHED_PARAM 1 /* Data structure to describe a process' schedulability. */ struct sched_param @@ -35,4 +25,4 @@ struct sched_param int sched_priority; }; -#endif /* bits/sched.h */ +#endif /* bits/types/struct_sched_param.h */ diff --git a/posix/Makefile b/posix/Makefile index 51dcf129ec..2a1cb2dd47 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -31,7 +31,8 @@ headers := sys/utsname.h sys/times.h sys/wait.h sys/types.h unistd.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 bits/cpu-set.h re_comp.h wait.h bits/environments.h \ - cpio.h spawn.h bits/unistd.h + cpio.h spawn.h bits/unistd.h \ + bits/types/struct___sched_param.h bits/types/struct_sched_param.h routines := \ uname \ diff --git a/posix/sched.h b/posix/sched.h index 619b3b3a81..87a2336384 100644 --- a/posix/sched.h +++ b/posix/sched.h @@ -45,7 +45,7 @@ typedef __pid_t pid_t; /* Backward compatibility. */ #define sched_priority sched_priority -#define __sched_priority sched_priority +#define __sched_priority __sched_priority __BEGIN_DECLS diff --git a/sysdeps/htl/bits/types/struct___pthread_attr.h b/sysdeps/htl/bits/types/struct___pthread_attr.h index 2299c0179f..5c4b4e6c30 100644 --- a/sysdeps/htl/bits/types/struct___pthread_attr.h +++ b/sysdeps/htl/bits/types/struct___pthread_attr.h @@ -19,7 +19,7 @@ #ifndef _BITS_TYPES_STRUCT___PTHREAD_ATTR #define _BITS_TYPES_STRUCT___PTHREAD_ATTR 1 -#include +#include #define __need_size_t #include @@ -32,7 +32,7 @@ enum __pthread_contentionscope; that not all of them are supported on all systems. */ struct __pthread_attr { - struct sched_param __schedparam; + struct __sched_param __schedparam; void *__stackaddr; size_t __stacksize; size_t __guardsize; diff --git a/sysdeps/htl/pt-attr.c b/sysdeps/htl/pt-attr.c index 77ecc73465..fc39aa63d6 100644 --- a/sysdeps/htl/pt-attr.c +++ b/sysdeps/htl/pt-attr.c @@ -24,7 +24,7 @@ #include const struct __pthread_attr __pthread_default_attr = { - __schedparam: { sched_priority: 0 }, + __schedparam: { __sched_priority: 0 }, __stacksize: 0, __stackaddr: NULL, #ifdef PAGESIZE diff --git a/sysdeps/htl/timer_routines.h b/sysdeps/htl/timer_routines.h index a8134f510f..062128cf92 100644 --- a/sysdeps/htl/timer_routines.h +++ b/sysdeps/htl/timer_routines.h @@ -32,8 +32,8 @@ thread_attr_compare (const pthread_attr_t * left, const pthread_attr_t * right) struct __pthread_attr *ileft = (struct __pthread_attr *) left; struct __pthread_attr *iright = (struct __pthread_attr *) right; - return ileft->__schedparam.sched_priority - == iright->__schedparam.sched_priority + return ileft->__schedparam.__sched_priority + == iright->__schedparam.__sched_priority && ileft->__stackaddr == iright->__stackaddr && ileft->__stacksize == iright->__stacksize && ileft->__guardsize == iright->__guardsize diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h index 24159c57b3..34f27a7d9b 100644 --- a/sysdeps/unix/sysv/linux/bits/sched.h +++ b/sysdeps/unix/sysv/linux/bits/sched.h @@ -71,11 +71,7 @@ # define CLONE_IO 0x80000000 /* Clone I/O context. */ #endif -/* Data structure to describe a process' schedulability. */ -struct sched_param -{ - int sched_priority; -}; +#include __BEGIN_DECLS -- 2.11.4.GIT