00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef _SCHED_H
00040 #define _SCHED_H
00041
00042 #undef PTW32_LEVEL
00043
00044 #if defined(_POSIX_SOURCE)
00045 #define PTW32_LEVEL 0
00046
00047 #endif
00048
00049 #if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309
00050 #undef PTW32_LEVEL
00051 #define PTW32_LEVEL 1
00052
00053 #endif
00054
00055 #if defined(INCLUDE_NP)
00056 #undef PTW32_LEVEL
00057 #define PTW32_LEVEL 2
00058
00059 #endif
00060
00061 #define PTW32_LEVEL_MAX 3
00062
00063 #if !defined(PTW32_LEVEL)
00064 #define PTW32_LEVEL PTW32_LEVEL_MAX
00065
00066 #endif
00067
00068
00069 #if __GNUC__ && ! defined (__declspec)
00070 # error Please upgrade your GNU compiler to one that supports __declspec.
00071 #endif
00072
00073
00074
00075
00076
00077
00078
00079 #ifdef PTW32_BUILD
00080 # define PTW32_DLLPORT __declspec (dllexport)
00081 #else
00082 # define PTW32_DLLPORT __declspec (dllimport)
00083 #endif
00084
00085
00086
00087
00088
00089
00090 #ifndef PTW32_CONFIG_H
00091 # if defined(WINCE)
00092 # define NEED_ERRNO
00093 # define NEED_SEM
00094 # endif
00095 # if defined(_UWIN) || defined(__MINGW32__)
00096 # define HAVE_MODE_T
00097 # endif
00098 #endif
00099
00100
00101
00102
00103
00104 #if PTW32_LEVEL >= PTW32_LEVEL_MAX
00105 #ifdef NEED_ERRNO
00106 #include "need_errno.h"
00107 #else
00108 #include <errno.h>
00109 #endif
00110 #endif
00111
00112 #if defined(__MINGW32__) || defined(_UWIN)
00113 #if PTW32_LEVEL >= PTW32_LEVEL_MAX
00114
00115 # include <sys/types.h>
00116
00117 # include <time.h>
00118 #endif
00119 #else
00120 typedef int pid_t;
00121 #endif
00122
00123
00124
00125 enum {
00126 SCHED_OTHER = 0,
00127 SCHED_FIFO,
00128 SCHED_RR,
00129 SCHED_MIN = SCHED_OTHER,
00130 SCHED_MAX = SCHED_RR
00131 };
00132
00133 struct sched_param {
00134 int sched_priority;
00135 };
00136
00137 #ifdef __cplusplus
00138 extern "C"
00139 {
00140 #endif
00141
00142 PTW32_DLLPORT int sched_yield (void);
00143
00144 PTW32_DLLPORT int sched_get_priority_min (int policy);
00145
00146 PTW32_DLLPORT int sched_get_priority_max (int policy);
00147
00148 PTW32_DLLPORT int sched_setscheduler (pid_t pid, int policy);
00149
00150 PTW32_DLLPORT int sched_getscheduler (pid_t pid);
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162 #define sched_rr_get_interval(_pid, _interval) \
00163 ( errno = ENOTSUP, (int) -1 )
00164
00165
00166 #ifdef __cplusplus
00167 }
00168 #endif
00169
00170 #undef PTW32_LEVEL
00171 #undef PTW32_LEVEL_MAX
00172
00173 #endif
00174