2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>

* libc/include/sched.h: Include prototypes for
        sched_* methods.
        * libc/include/sys/sched.h: Update to POSIX
        1003.1b-2008.  Rework constants to allow sharing
        between RTEMS and Cygwin.
This commit is contained in:
Jeff Johnston 2010-04-01 18:33:37 +00:00
parent 7e53fcbc29
commit c1bfa897da
3 changed files with 113 additions and 20 deletions

View File

@ -1,3 +1,11 @@
2010-04-01 Joel Sherrill <joel.sherrill@oarcorp.com>
* libc/include/sched.h: Include prototypes for
sched_* methods.
* libc/include/sys/sched.h: Update to POSIX
1003.1b-2008. Rework constants to allow sharing
between RTEMS and Cygwin.
2010-03-27 Corinna Vinschen <corinna@vinschen.de> 2010-03-27 Corinna Vinschen <corinna@vinschen.de>
* libc/locale/locale.c (loadlocale): Optimize "EUC" charset check. * libc/locale/locale.c (loadlocale): Optimize "EUC" charset check.

View File

@ -1,11 +1,94 @@
/*
* Written by Joel Sherrill <joel@OARcorp.com>.
*
* COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR).
*
* Permission to use, copy, modify, and distribute this software for any
* purpose without fee is hereby granted, provided that this entire notice
* is included in all copies of any software which is or includes a copy
* or modification of this software.
*
* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION
* OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
* SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
*
* $Id$
*/
#ifndef _SCHED_H_ #ifndef _SCHED_H_
#define _SCHED_H_ #define _SCHED_H_
#include <sys/types.h>
#include <sys/sched.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <sys/sched.h> #if defined(_POSIX_PRIORITY_SCHEDULING)
/*
* XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1803
*/
int sched_setparam(
pid_t __pid,
const struct sched_param *__param
);
/*
* XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1800
*/
int sched_getparam(
pid_t __pid,
struct sched_param *__param
);
/*
* XBD 13 - Set Scheduling Policy and Scheduling Parameters,
* P1003.1b-2008, p. 1805
*/
int sched_setscheduler(
pid_t __pid,
int __policy,
const struct sched_param *__param
);
/*
* XBD 13 - Get Scheduling Policy, P1003.1b-2008, p. 1801
*/
int sched_getscheduler(
pid_t __pid
);
/*
* XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1799
*/
int sched_get_priority_max(
int __policy
);
int sched_get_priority_min(
int __policy
);
/*
* XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1802
*/
int sched_rr_get_interval(
pid_t __pid,
struct timespec *__interval
);
#endif /* _POSIX_PRIORITY_SCHEDULING */
#if defined(_POSIX_THREADS) || defined(_POSIX_PRIORITY_SCHEDULING)
/*
* XBD 13 - Yield Processor, P1003.1b-2008, p. 1807
*/
int sched_yield( void );
#endif /* _POSIX_THREADS or _POSIX_PRIORITY_SCHEDULING */
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -1,7 +1,7 @@
/* /*
* Written by Joel Sherrill <joel@OARcorp.com>. * Written by Joel Sherrill <joel@OARcorp.com>.
* *
* COPYRIGHT (c) 1989-2000. * COPYRIGHT (c) 1989-2010.
* On-Line Applications Research Corporation (OAR). * On-Line Applications Research Corporation (OAR).
* *
* Permission to use, copy, modify, and distribute this software for any * Permission to use, copy, modify, and distribute this software for any
@ -18,41 +18,43 @@
*/ */
#ifndef __POSIX_SYS_SCHEDULING_h #ifndef _SYS_SCHED_H_
#define __POSIX_SYS_SCHEDULING_h #define _SYS_SCHED_H_
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <sys/unistd.h> /* Scheduling Policies */
/* Open Group Specifications Issue 6 */
#include <sys/types.h> #if defined(__CYGWIN__)
#include <sys/time.h> #define SCHED_OTHER 3
#else
/* Scheduling Policies, P1003.1b-1993, p. 250
NOTE: SCHED_SPORADIC added by P1003.4b/D8, p. 34. */
#define SCHED_OTHER 0 #define SCHED_OTHER 0
#endif
#define SCHED_FIFO 1 #define SCHED_FIFO 1
#define SCHED_RR 2 #define SCHED_RR 2
#if defined(_POSIX_SPORADIC_SERVER) #if defined(_POSIX_SPORADIC_SERVER)
#define SCHED_SPORADIC 3 #define SCHED_SPORADIC 4
#endif #endif
/* Scheduling Parameters, P1003.1b-1993, p. 249 /* Scheduling Parameters */
NOTE: Fields whose name begins with "ss_" added by P1003.4b/D8, p. 33. */ /* Open Group Specifications Issue 6 */
struct sched_param { struct sched_param {
int sched_priority; /* Process execution scheduling priority */ int sched_priority; /* Process execution scheduling priority */
#if defined(_POSIX_SPORADIC_SERVER) #if defined(_POSIX_SPORADIC_SERVER) || defined(_POSIX_THREAD_SPORADIC_SERVER)
int ss_low_priority; /* Low scheduling priority for sporadic */ int sched_ss_low_priority; /* Low scheduling priority for sporadic */
/* server */ /* server */
struct timespec ss_replenish_period; struct timespec sched_ss_repl_period;
/* Replenishment period for sporadic server */ /* Replenishment period for sporadic server */
struct timespec ss_initial_budget; /* Initial budget for sporadic server */ struct timespec sched_ss_init_budget;
/* Initial budget for sporadic server */
int sched_ss_max_repl; /* Maximum pending replenishments for */
/* sporadic server */
#endif #endif
}; };