8668e768a7c2d620aecb3b177350789d8ea0120d
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / solaris2 / kopensolaris-gnu / priocntlP.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 pcnice
54 {
55         int pc_val;
56         int pc_op;
57 } pcnice_t;
58
59 /* pc_op values.  */
60 #define PC_GETNICE              0
61 #define PC_SETNICE              1
62
63 typedef struct pcprio
64 {
65         int pc_op;
66         id_t pc_cid;
67         int pc_val;
68 } pcprio_t;
69
70 /* pc_op values.  */
71 #define PC_GETPRIO              0
72 #define PC_SETPRIO              1
73
74 typedef struct pc_vaparm
75 {
76         int pc_key;
77         unsigned long long pc_parm;
78 } pc_vaparm_t;
79
80 /* pc_key values.  */
81 #define PC_KY_NULL              0
82 #define PC_KY_CLNAME    1
83
84 typedef struct pc_vaparms
85 {
86         unsigned int pc_vaparmscnt;
87 #define PC_VAPARMCNT    8
88         pc_vaparm_t pc_parms[PC_VAPARMCNT];
89 } pc_vaparms_t;
90
91 typedef struct pcpri
92 {
93         id_t pc_cid;
94         pri_t pc_clpmax;
95         pri_t pc_clpmin;
96 } pcpri_t;
97
98 typedef struct pcadmin
99 {
100         id_t pc_cid;
101         __caddr_t pc_cladmin;
102 } pcadmin_t;
103
104 __BEGIN_DECLS
105
106 long priocntl (idtype_t idtype, id_t id, int cmd, ...);
107
108 long priocntlset (procset_t *ps, int cmd, ...);
109
110 __END_DECLS
111
112 #endif /* _PRIOCNTLP_H */