From 783c4820303fb6b031d401564f8089ecaf154b62 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 18 Apr 2018 00:27:31 +0200 Subject: Fix sched_param --- bits/sched.h | 6 +----- bits/types/struct___sched_param.h | 28 ++++++++++++++++++++++++++ bits/types/struct_sched_param.h | 28 ++++++++++++++++++++++++++ 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, 66 insertions(+), 17 deletions(-) create mode 100644 bits/types/struct___sched_param.h create mode 100644 bits/types/struct_sched_param.h diff --git a/bits/sched.h b/bits/sched.h index 8d9f077..bdd94c9 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/types/struct___sched_param.h b/bits/types/struct___sched_param.h new file mode 100644 index 0000000..a6d95bf --- /dev/null +++ b/bits/types/struct___sched_param.h @@ -0,0 +1,28 @@ +/* Sched parameter structure. Generic version. + Copyright (C) 1996-2018 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + 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 + . */ + +#ifndef _BITS_TYPES_STRUCT___SCHED_PARAM +#define _BITS_TYPES_STRUCT___SCHED_PARAM 1 + +/* Data structure to describe a process' schedulability. */ +struct __sched_param +{ + int __sched_priority; +}; + +#endif /* bits/types/struct___sched_param.h */ diff --git a/bits/types/struct_sched_param.h b/bits/types/struct_sched_param.h new file mode 100644 index 0000000..6070702 --- /dev/null +++ b/bits/types/struct_sched_param.h @@ -0,0 +1,28 @@ +/* Sched parameter structure. Generic version. + Copyright (C) 1996-2018 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 + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + 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 + . */ + +#ifndef _BITS_TYPES_STRUCT_SCHED_PARAM +#define _BITS_TYPES_STRUCT_SCHED_PARAM 1 + +/* Data structure to describe a process' schedulability. */ +struct sched_param +{ + int sched_priority; +}; + +#endif /* bits/types/struct_sched_param.h */ diff --git a/posix/Makefile b/posix/Makefile index 51dcf12..2a1cb2d 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 619b3b3..87a2336 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 2299c01..5c4b4e6 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 77ecc73..fc39aa6 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 a8134f5..062128c 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 24159c5..34f27a7 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 -- cgit v1.1