]> git.ipfire.org Git - thirdparty/glibc.git/blame - sysdeps/unix/sysv/linux/bits/sched.h
Update.
[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.
d53afacb 3 Copyright (C) 1996, 1997, 1998, 1999 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. */
d53afacb
UD
42# define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to
43 wake it up on mm_release. */
f4017d20 44#endif
edf5b2d7 45
4959e310
UD
46/* The official definition. */
47struct sched_param
48 {
49 int sched_priority;
50 };
edf5b2d7 51
f4017d20
UD
52__BEGIN_DECLS
53
0c5ecdc4 54/* Clone current process. */
0c5ecdc4 55#ifdef __USE_MISC
4d3a563f
UD
56extern int clone (int (*__fn) (void *__arg), void *__child_stack,
57 int __flags, void *__arg) __THROW;
0c5ecdc4 58#endif
f4017d20 59
ba9234d9
UD
60__END_DECLS
61
4959e310
UD
62#endif /* need schedparam */
63
64#if !defined __defined_schedparam \
65 && (defined __need_schedparam || defined _SCHED_H)
66# define __defined_schedparam 1
67/* Data structure to describe a process' schedulability. */
68struct __sched_param
69 {
70 int sched_priority;
71 };
72# undef __need_schedparam
73#endif