Add headers for OpenSolaris extensions that glibc implements
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / sys / pset.h
1 /* Declarations of processor sets.
2    Copyright (C) 2008 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, write to the Free
17    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18    02111-1307 USA.  */
19
20 #ifndef _SYS_PSET_H
21 #define _SYS_PSET_H
22
23 #include <sys/processor.h>
24 #include <features.h>
25
26 typedef int psetid_t;
27
28 /* Syscall sub-call numbers.  */
29 #define PSET_CREATE             0
30 #define PSET_DESTROY            1
31 #define PSET_ASSIGN             2
32 #define PSET_INFO               3
33 #define PSET_BIND               4
34 #define PSET_GETLOADAVG         5
35 #define PSET_LIST               6
36 #define PSET_SETATTR            7
37 #define PSET_GETATTR            8
38 #define PSET_ASSIGN_FORCED      9
39
40 #define PS_NONE         -1
41 #define PS_QUERY        -2
42 #define PS_MYID         -3
43 #define PS_SOFT         -4
44 #define PS_HARD         -5
45 #define PS_QUERY_TYPE   -6
46
47 /* types of processor sets */
48 #define PS_SYSTEM       1
49 #define PS_PRIVATE      2
50
51 __BEGIN_DECLS
52
53 extern int  pset_create (psetid_t *newpset);
54 extern int  pset_destroy (psetid_t pset);
55 extern int  pset_assign (psetid_t pset, processorid_t cpu, psetid_t *opset);
56 extern int  pset_info (psetid_t pset, int *type, unsigned int *numcpus,
57     processorid_t *cpulist);
58 extern int  pset_bind (psetid_t pset, idtype_t idtype, id_t id,
59     psetid_t *opset);
60 extern int  pset_getloadavg (psetid_t pset, double loadavg[], int nelem);
61 extern int  pset_list (psetid_t *psetlist, unsigned int *numpsets);
62 extern int  pset_setattr (psetid_t pset, unsigned int attr);
63 extern int  pset_getattr (psetid_t pset, unsigned int *attr);
64
65 __END_DECLS
66
67 #endif /* _SYS_PSET_H */