Promote priocntlP.h to sys/priocntl.h
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / sys / priocntl.h
1 /* Copyright (C) 2008 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3    Contributed by David Bartley <dtbartle@csclub.uwaterloo.ca>, 2008.
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 _PRIOCNTLP_H
21 #define _PRIOCNTLP_H
22
23 #include <features.h>
24 #include <sys/types.h>
25 #include <sys/procset.h>
26
27 #define PC_VERSION      1
28
29 #define PC_GETCID       0
30 #define PC_GETCLINFO    1
31 #define PC_SETPARMS     2
32 #define PC_GETPARMS     3
33 #define PC_ADMIN        4
34 #define PC_GETPRIRANGE  5
35 #define PC_DONICE       6
36 #define PC_SETXPARMS    7
37 #define PC_GETXPARMS    8
38 #define PC_SETDFLCL     9
39 #define PC_GETDFLCL     10
40 #define PC_DOPRIO       11
41
42 #define PC_CLNULL       -1
43
44 typedef struct pcinfo
45   {
46         id_t pc_cid;
47 #define PC_CLNMSZ       16
48         char pc_clname[PC_CLNMSZ];
49 #define PC_CLINFOSZ     (32 / sizeof (int))
50         int pc_clinfo[PC_CLINFOSZ];
51   } pcinfo_t;
52
53 typedef struct pcparms
54   {
55     id_t pc_cid;
56 #define PC_CLPARMSZ     (32 / sizeof (int))
57     int pc_clparms[PC_CLPARMSZ];
58   } pcparms_t;
59
60 typedef struct pcnice
61   {
62         int pc_val;
63         int pc_op;
64   } pcnice_t;
65
66 /* pc_op values.  */
67 #define PC_GETNICE      0
68 #define PC_SETNICE      1
69
70 typedef struct pcprio
71   {
72         int pc_op;
73         id_t pc_cid;
74         int pc_val;
75   } pcprio_t;
76
77 /* pc_op values.  */
78 #define PC_GETPRIO      0
79 #define PC_SETPRIO      1
80
81 typedef struct pc_vaparm
82   {
83         int pc_key;
84         unsigned long long pc_parm;
85   } pc_vaparm_t;
86
87 /* pc_key values.  */
88 #define PC_KY_NULL      0
89 #define PC_KY_CLNAME    1
90
91 typedef struct pc_vaparms
92   {
93         unsigned int pc_vaparmscnt;
94 #define PC_VAPARMCNT    8
95         pc_vaparm_t pc_parms[PC_VAPARMCNT];
96   } pc_vaparms_t;
97
98 typedef struct pcpri
99   {
100         id_t pc_cid;
101         pri_t pc_clpmax;
102         pri_t pc_clpmin;
103   } pcpri_t;
104
105 typedef struct pcadmin
106   {
107         id_t pc_cid;
108         __caddr_t pc_cladmin;
109   } pcadmin_t;
110
111 __BEGIN_DECLS
112
113 long priocntl (idtype_t idtype, id_t id, int cmd, ...);
114
115 long priocntlset (procset_t *ps, int cmd, ...);
116
117 __END_DECLS
118
119 #endif /* _PRIOCNTLP_H */