]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/unix/sysv/linux/bits/sched.h
[versioning=yes]: Build the mapfiles with a pattern rule that lists all of them as...
[thirdparty/glibc.git] / sysdeps / unix / sysv / linux / bits / sched.h
CommitLineData
edf5b2d7
UD
1/* Definitions of constants and data structure for POSIX 1003.1b-1993
2 scheduling interface.
3387a425 3 Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
10dc2a90 4 This file is part of the GNU C Library.
edf5b2d7 5
10dc2a90
UD
6 The GNU C Library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Library General Public License as
8 published by the Free Software Foundation; either version 2 of the
9 License, or (at your option) any later version.
edf5b2d7 10
10dc2a90
UD
11 The GNU C Library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Library General Public License for more details.
edf5b2d7 15
10dc2a90
UD
16 You should have received a copy of the GNU Library General Public
17 License along with the GNU C Library; see the file COPYING.LIB. If not,
18 write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
edf5b2d7 20
4959e310
UD
21#ifndef __need_schedparam
22
5107cf1d 23#ifndef _SCHED_H
f4017d20 24# error "Never include <bits/sched.h> directly; use <sched.h> instead."
5107cf1d
UD
25#endif
26
0c5ecdc4 27
edf5b2d7
UD
28/* Scheduling algorithms. */
29#define SCHED_OTHER 0
30#define SCHED_FIFO 1
31#define SCHED_RR 2
32
f4017d20 33#ifdef __USE_MISC
edf5b2d7 34/* Cloning flags. */
f4017d20
UD
35# define CSIGNAL 0x000000ff /* Signal mask to be sent at exit. */
36# define CLONE_VM 0x00000100 /* Set if VM shared between processes. */
3387a425
UD
37# define CLONE_FS 0x00000200 /* Set if fs info shared between processes. */
38# define CLONE_FILES 0x00000400 /* Set if open files shared between processes. */
f4017d20
UD
39# define CLONE_SIGHAND 0x00000800 /* Set if signal handlers shared. */
40# define CLONE_PID 0x00001000 /* Set if pid shared. */
3387a425 41# define CLONE_PTRACE 0x00002000 /* Set if tracing continues on the child. */
f4017d20 42#endif
edf5b2d7 43
4959e310
UD
44/* The official definition. */
45struct sched_param
46 {
47 int sched_priority;
48 };
edf5b2d7 49
f4017d20
UD
50__BEGIN_DECLS
51
0c5ecdc4
UD
52/* Clone current process. */
53extern int __clone __P ((int (*__fn) (void *__arg), void *__child_stack,
54 int __flags, void *__arg));
55#ifdef __USE_MISC
56extern int clone __P ((int (*__fn) (void *__arg), void *__child_stack,
57 int __flags, void *__arg));
58#endif
f4017d20 59
4959e310
UD
60#endif /* need schedparam */
61
62#if !defined __defined_schedparam \
63 && (defined __need_schedparam || defined _SCHED_H)
64# define __defined_schedparam 1
65/* Data structure to describe a process' schedulability. */
66struct __sched_param
67 {
68 int sched_priority;
69 };
70# undef __need_schedparam
71#endif
72
f4017d20 73__END_DECLS