File: /usr/include/bits/sched.h

1     /* Definitions of constants and data structure for POSIX 1003.1b-1993
2        scheduling interface.
3        Copyright (C) 1996, 1997, 1998, 1999, 2001 Free Software Foundation, Inc.
4        This file is part of the GNU C Library.
5     
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.
10     
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.
15     
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.  */
20     
21     #ifndef __need_schedparam
22     
23     #ifndef _SCHED_H
24     # error "Never include <bits/sched.h> directly; use <sched.h> instead."
25     #endif
26     
27     
28     /* Scheduling algorithms.  */
29     #define SCHED_OTHER	0
30     #define SCHED_FIFO	1
31     #define SCHED_RR	2
32     
33     #ifdef __USE_MISC
34     /* Cloning flags.  */
35     # define CSIGNAL       0x000000ff /* Signal mask to be sent at exit.  */
36     # define CLONE_VM      0x00000100 /* Set if VM shared between processes.  */
37     # define CLONE_FS      0x00000200 /* Set if fs info shared between processes.  */
38     # define CLONE_FILES   0x00000400 /* Set if open files shared between processes.  */
39     # define CLONE_SIGHAND 0x00000800 /* Set if signal handlers shared.  */
40     # define CLONE_PID     0x00001000 /* Set if pid shared.  */
41     # define CLONE_PTRACE  0x00002000 /* Set if tracing continues on the child.  */
42     # define CLONE_VFORK   0x00004000 /* Set if the parent wants the child to
43     				     wake it up on mm_release.  */
44     #endif
45     
46     /* The official definition.  */
47     struct sched_param
48       {
49         int __sched_priority;
50       };
51     
52     __BEGIN_DECLS
53     
54     /* Clone current process.  */
55     #ifdef __USE_MISC
56     extern int clone (int (*__fn) (void *__arg), void *__child_stack,
57     		  int __flags, void *__arg) __THROW;
58     #endif
59     
60     __END_DECLS
61     
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.  */
68     struct __sched_param
69       {
70         int __sched_priority;
71       };
72     # undef __need_schedparam
73     #endif
74