summaryrefslogtreecommitdiffstats
path: root/gl/sched.in.h
diff options
context:
space:
mode:
Diffstat (limited to 'gl/sched.in.h')
-rw-r--r--gl/sched.in.h111
1 files changed, 111 insertions, 0 deletions
diff --git a/gl/sched.in.h b/gl/sched.in.h
new file mode 100644
index 00000000..5b4034c3
--- /dev/null
+++ b/gl/sched.in.h
@@ -0,0 +1,111 @@
1/* A GNU-like <sched.h>.
2 Copyright (C) 2008-2025 Free Software Foundation, Inc.
3
4 This file is free software: you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as
6 published by the Free Software Foundation; either version 2.1 of the
7 License, or (at your option) any later version.
8
9 This file is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
16
17#ifndef _@GUARD_PREFIX@_SCHED_H
18
19#if __GNUC__ >= 3
20@PRAGMA_SYSTEM_HEADER@
21#endif
22@PRAGMA_COLUMNS@
23
24/* This file uses #include_next of a system file that defines time_t.
25 For the 'year2038' module to work right, <config.h> needs to have been
26 included before. */
27#if !_GL_CONFIG_H_INCLUDED
28 #error "Please include config.h first."
29#endif
30
31/* The include_next requires a split double-inclusion guard. */
32#if @HAVE_SCHED_H@
33# if @HAVE_SYS_CDEFS_H@
34# include <sys/cdefs.h>
35# endif
36# @INCLUDE_NEXT@ @NEXT_SCHED_H@
37#endif
38
39#ifndef _@GUARD_PREFIX@_SCHED_H
40#define _@GUARD_PREFIX@_SCHED_H
41
42/* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*. */
43#if !_GL_CONFIG_H_INCLUDED
44 #error "Please include config.h first."
45#endif
46
47/* Get pid_t.
48 This is needed on glibc 2.11 (see
49 glibc bug <https://sourceware.org/bugzilla/show_bug.cgi?id=13198>)
50 and Mac OS X 10.5. */
51#include <sys/types.h>
52
53#ifdef __KLIBC__
54/* On OS/2 kLIBC, struct sched_param is in spawn.h. */
55# include <spawn.h>
56#endif
57
58#ifdef __VMS
59/* On OpenVMS, struct sched_param is in <pthread.h>. */
60# include <pthread.h>
61#endif
62
63/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
64
65/* The definition of _GL_WARN_ON_USE is copied here. */
66
67#if !@HAVE_STRUCT_SCHED_PARAM@
68
69# if !GNULIB_defined_struct_sched_param
70struct sched_param
71{
72 int sched_priority;
73};
74# define GNULIB_defined_struct_sched_param 1
75# endif
76
77#endif
78
79#if !(defined SCHED_FIFO && defined SCHED_RR && defined SCHED_OTHER)
80# define SCHED_FIFO 1
81# define SCHED_RR 2
82# define SCHED_OTHER 0
83#endif
84
85#if @GNULIB_SCHED_YIELD@
86# if @REPLACE_SCHED_YIELD@
87# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
88# undef sched_yield
89# define sched_yield rpl_sched_yield
90# endif
91_GL_FUNCDECL_RPL (sched_yield, int, (void), );
92_GL_CXXALIAS_RPL (sched_yield, int, (void));
93# else
94# if !@HAVE_SCHED_YIELD@
95_GL_FUNCDECL_SYS (sched_yield, int, (void), );
96# endif
97_GL_CXXALIAS_SYS (sched_yield, int, (void));
98# endif
99# if __GLIBC__ >= 2
100_GL_CXXALIASWARN (sched_yield);
101# endif
102#elif defined GNULIB_POSIXCHECK
103# undef sched_yield
104# if HAVE_RAW_DECL_SCHED_YIELD
105_GL_WARN_ON_USE (sched_yield, "sched_yield is not portable - "
106 "use gnulib module sched_yield for portability");
107# endif
108#endif
109
110#endif /* _@GUARD_PREFIX@_SCHED_H */
111#endif /* _@GUARD_PREFIX@_SCHED_H */