qclib
hcpinfbk_qclib.h
1 /* Copyright IBM Corp. 2013, 2015 */
2 
3 struct inf0par {
4  unsigned char /* XL1 */ infpflg1; /* Partition Flag Byte 1 @VRKP30K */
5  #define INFPMTEN 128 /* Multithreading (MT) is enabled @VRKP30K */
6  unsigned char /* XL1 */ infpflg2; /* Partition Flag Byte 2 reserved for */
7  /* IBM use. */
8  unsigned char /* XL1 */ infpval1; /* Partition Validity Byte 1 */
9  #define INFPPROC 128 /* Processor Count Validity */
10  /* This bit being on indicates that */
11  /* INFPSCPS, INFPDCPS, INFPSIFL, */
12  /* and INFPDIFL contain valid counts. */
13  #define INFPWBCC 64 /* Partition weight-based capped */
14  /* capacity validity. */
15  /* This bit being on indicates that */
16  /* INFPWBCP and INFPWBIF are valid. */
17  #define INFPACC 32 /* Partition absolute capped capacity */
18  /* validity. */
19  /* This bit being on indicates that */
20  /* INFPABCP and INFPABIF are valid. */
21  #define INFPPID 16 /* Partition ID Validity. */
22  /* This bit being on indicates that */
23  /* a SYSIB 2.2.2 was obtained from */
24  /* STSI and information reported in */
25  /* the following fields is valid: */
26  /* INFPPNUM, INFPPNAM */
27  #define INFPLGVL 8 /* LPAR Group Absolute Capacity */
28  /* Capping information validity */
29  /* This bit being on indicates */
30  /* that INFPLGNM, INFPLGCP and */
31  /* INFPLGIF are valid. @VRKQXDN */
32  unsigned char /* XL1 */ infpval2; /* Partition Validity Byte 2 reserved */
33  /* for IBM use. */
34  short int /* HL2 */ infppnum; /* Logical Partition Number. This is */
35  /* the Logical-Partition Number */
36  /* reported by STSI 2.2.2. */
37  short int /* HL2 */ infpscps; /* Count of shared logical CP cores @VRKP30K */
38  /* configured for this partition. */
39  short int /* HL2 */ infpdcps; /* Count of dedicated logical CP cores */
40  /* configured for this partition. @VRKP30K */
41  short int /* HL2 */ infpsifl; /* Count of shared logical IFL cores @VRKP30K */
42  /* configured for this partition. */
43  short int /* HL2 */ infpdifl; /* Count of dedicated logical IFL cores */
44  /* configured for this partition. @VRKP30K */
45  char __filler0[2];
46  unsigned char /* CL8 */ infppnam[8]; /* Logical Partition Name, in EBCDIC */
47  /* format. This is the Logical- */
48  /* Partition Name reported by STSI */
49  /* 2.2.2. */
50  int /* FL4 */ infpwbcp; /* Partition weight-based capped */
51  /* capacity for CPs, a scaled */
52  /* number where X'00010000' */
53  /* represents one CPU. */
54  /* Zero if not capped. */
55  /* Cap is applicable only to shared */
56  /* processors. @U7206P4 */
57  int /* FL4 */ infpabcp; /* Partition absolute capped */
58  /* capacity for CPs, a scaled */
59  /* number where X'00010000' */
60  /* represents one core. @VRKP30K */
61  /* Zero if not capped. */
62  /* Cap is applicable only to shared */
63  /* processors. @U7206P4 */
64  int /* FL4 */ infpwbif; /* Partition weight-based capped */
65  /* capacity for IFLs, a scaled */
66  /* number where X'00010000' */
67  /* represents one core. @VRKP30K */
68  /* Zero if not capped. */
69  /* Cap is applicable only to shared */
70  /* processors. @U7206P4 */
71  int /* FL4 */ infpabif; /* Partition absolute capped */
72  /* capacity for IFLs, a scaled */
73  /* number where X'00010000' */
74  /* represents one core. @VRKP30K */
75  /* Zero if not capped. */
76  /* Cap is applicable only to shared */
77  /* processors. @U7206P4 */
78  unsigned char /* CL8 */ infplgnm[8]; /* LPAR Group Name. Binary zeros when */
79  /* the partition is not in a group. */
80  /* EBCDIC and padded with blanks on */
81  /* the right when in a group. The */
82  /* group name may be reported even */
83  /* if there is no group cap on CP or */
84  /* IFL CPU types. @VRKQXDN */
85  int /* FL4 */ infplgcp; /* LPAR Group Absolute Capacity */
86  /* Value for the CP CPU type */
87  /* when nonzero. This field will be */
88  /* nonzero only when INFPLGNM is */
89  /* nonzero and a cap is defined for */
90  /* the LPAR Group for CP CPU */
91  /* type. When nonzero, contains a */
92  /* scaled number where X'00010000' */
93  /* represents one core. @VRKQXDN */
94  int /* FL4 */ infplgif; /* LPAR Group Absolute Capacity */
95  /* Value for the IFL CPU type */
96  /* when nonzero. This field will be */
97  /* nonzero only when INFPLGNM is */
98  /* nonzero and a cap is defined for */
99  /* the LPAR Group for IFL CPU */
100  /* type. When nonzero, contains a */
101  /* scaled number where X'00010000' */
102  /* represents one core. @VRKQXDN */
103  #define INF0PSIZ 56 /* Size of Partition Section in bytes */
104  #define INF0PSZD 7 /* Size of Partition Section in DWs */
105 };
106 struct inf0mac {
107  unsigned char /* XL1 */ infmflg1; /* Machine Flag Byte 1 reserved */
108  /* for IBM use */
109  unsigned char /* XL1 */ infmflg2; /* Machine Flag Byte 2 reserved */
110  /* for IBM use */
111  unsigned char /* XL1 */ infmval1; /* Machine Validity Byte 1 */
112  #define INFMPROC 128 /* Processor Count Validity */
113  /* When this bit is on, it indicates that */
114  /* INFMSCPS, INFMDCPS, INFMSIFL, */
115  /* and INFMDIFL contain valid counts. */
116  /* The validity bit may be off when: */
117  /* - STHYI support is not available on */
118  /* a lower level hypervisor, or */
119  /* - Global Performance Data is not */
120  /* enabled. */
121  #define INFMMID 64 /* Machine ID Validity */
122  /* This bit being on indicates that */
123  /* a SYSIB 1.1.1 was obtained from */
124  /* STSI and information reported */
125  /* in the following fields is valid: */
126  /* INFMTYPE, INFMMANU, INFMSEQ, */
127  /* and INFMPMAN. */
128  #define INFMMNAM 32 /* Machine Name Validity */
129  /* This bit being on indicates that */
130  /* the INFMNAME field is valid. */
131  unsigned char /* XL1 */ infmval2; /* Machine Validity Byte 2 */
132  /* Reserved for IBM use */
133  short int /* HL2 */ infmscps; /* Count of shared CPs configured */
134  /* in the machine or in the physical */
135  /* partition if the system is */
136  /* physically partitioned. */
137  short int /* HL2 */ infmdcps; /* Count of dedicated CPs configured */
138  /* in the machine or in the physical */
139  /* partition if the system is */
140  /* physically partitioned. */
141  short int /* HL2 */ infmsifl; /* Count of shared IFLs configured */
142  /* in the machine or in the physical */
143  /* partition if the system is */
144  /* physically partitioned. */
145  short int /* HL2 */ infmdifl; /* Count of dedicated IFLs configured */
146  /* in the machine or in the physical */
147  /* partition if the system is */
148  /* physically partitioned. */
149  unsigned char /* CL8 */ infmname[8]; /* Machine Name, in EBCDIC format. */
150  /* This is the CPC name associated */
151  /* with the processor. */
152  unsigned char /* CL4 */ infmtype[4]; /* Machine Type, in EBCDIC format. */
153  /* This is the machine type */
154  /* reported by STSI 1.1.1 (Basic */
155  /* Machine Configuration). */
156  unsigned char /* CL16 */ infmmanu[16]; /* Machine Manufacturer, in EBCDIC */
157  /* format. This is the name of the */
158  /* manufacturer of the configuration */
159  /* reported by STSI 1.1.1.. */
160  unsigned char /* CL16 */ infmseq[16]; /* Sequence Code, in EBCDIC format. */
161  /* This is the sequence code of */
162  /* the configuration reported by */
163  /* STSI 1.1.1. */
164  unsigned char /* CL4 */ infmpman[4]; /* Plant of Manufacture, in EBCDIC */
165  /* format. This is the 4-byte code */
166  /* reported by STSI 1.1.1. */
167  #define INF0MSIZ 64 /* Size of Machine Section in bytes */
168  #define INF0MSZD 8 /* Size of Machine Section in DWs */
169  char __filler0[4];
170 };
171 struct inf0hyp {
172  unsigned char /* XL1 */ infyflg1; /* Hypervisor Flag Byte 1 @U7105P4 */
173  #define INFYLMCN 128 /* Guest CPU usage hard limiting is @U7105P4 */
174  /* using the consumption method. @U7105P4 */
175  #define INFYLMPR 64 /* If on, Limithard caps use */
176  /* prorated core time for capping. */
177  /* If off, raw CPU time is used. @D0400HY */
178  unsigned char /* XL1 */ infyflg2; /* Hypervisor Flag Byte 2 */
179  /* Reserved for IBM use */
180  unsigned char /* XL1 */ infyval1; /* Hypervisor Validity Byte 1 */
181  /* Reserved for IBM use */
182  unsigned char /* XL1 */ infyval2; /* Hypervisor Validity Byte 2 */
183  /* Reserved for IBM use */
184  unsigned char /* XL1 */ infytype; /* Hypervisor type */
185  #define INFYTVM 1 /* z/VM is the hypervisor */
186  char __filler0[1];
187  unsigned char /* XL1 */ infycpt; /* Threads in use per CP core. @VRKP30K */
188  /* This value is reported for the @VRKP30K */
189  /* current configuration settings @VRKP30K */
190  /* even when the guest CPUs are not @VRKP30K */
191  /* dispatched on CPs. The value is @U8802DN */
192  /* only set when SMT enabled as @U8802DN */
193  /* indicated by INFPFLG1.INFPMTEN. @U8802DN */
194  unsigned char /* XL1 */ infyiflt; /* Threads in use per IFL core. @VRKP30K */
195  /* This value is reported for the @VRKP30K */
196  /* current configuration settings @VRKP30K */
197  /* even when the guest CPUs are not @VRKP30K */
198  /* dispatched on IFLs. The value is @U8802DN */
199  /* only set when SMT enabled as @U8802DN */
200  /* indicated by INFPFLG1.INFPMTEN. @U8802DN */
201  unsigned char /* CL8 */ infysyid[8]; /* System Identifier, in EBCDIC */
202  /* format, left justified and padded */
203  /* with blanks. This is the value */
204  /* generally specified on the */
205  /* SYSTEM_IDentifier statement in */
206  /* the system configuration file. */
207  /* Blank if non-existent. */
208  unsigned char /* CL8 */ infyclnm[8]; /* Cluster Name, in EBCDIC format, */
209  /* left justified and padded with */
210  /* blanks. This is the name on the */
211  /* SSI statement in the system */
212  /* configuration file. Blank if */
213  /* non-existent. */
214  short int /* HL2 */ infyscps; /* Number of CP cores shared by @VRKP30K */
215  /* guests of this hypervisor. @VRKP30K */
216  short int /* HL2 */ infydcps; /* Number of CP cores dedicated @VRKP30K */
217  /* to guest CPUs of this hypervisor. @VRKP30K */
218  short int /* HL2 */ infysifl; /* Number of IFL cores shared by @VRKP30K */
219  /* guests of this hypervisor. @VRKP30K */
220  short int /* HL2 */ infydifl; /* Number of IFL cores dedicated @VRKP30K */
221  /* to guest CPUs of this hypervisor. @VRKP30K */
222  #define INF0YSIZ 32 /* Size of Hypervisor Section in bytes */
223  #define INF0YSZD 4 /* Size of Hypervisor Section in DWs */
224 };
225 struct inf0hdyg {
226  short int /* HL2 */ infyoff; /* Offset to Hypervisor Section */
227  /* mapped by INF0HYP */
228  short int /* HL2 */ infylen; /* Length of Hypervisor Section in */
229  /* bytes */
230  short int /* HL2 */ infgoff; /* Offset to Guest Section mapped */
231  /* by INF0GST */
232  short int /* HL2 */ infglen; /* Length of Guest Section in bytes */
233  #define INF0HYSZ 8 /* Size of section description in bytes */
234  #define INF0HYSD 1 /* Size of section description in DWs */
235 };
236 struct inf0hdr {
237  unsigned char /* XL1 */ infhflg1; /* Header Flag Byte 1 */
238  /* These flag settings indicate */
239  /* the environment that the instruction */
240  /* was executed in and may influence */
241  /* the value of validity bits. */
242  /* The validity bits, not these flags, */
243  /* should be used to determine if a */
244  /* field is valid. */
245  #define INFGPDU 128 /* Global Performance Data unavailable */
246  #define INFSTHYI 64 /* One or more hypervisor levels */
247  /* below this level does */
248  /* not support the STHYI instruction. */
249  /* When this flag is set the value */
250  /* of INFGPDU is not meaningful */
251  /* because the state of the Global */
252  /* Performance Data setting cannot */
253  /* be determined. @U7221DN */
254  #define INFVSI 32 /* Virtualization stack is incomplete. */
255  /* This bit indicates one of 2 cases: */
256  /* 1. One or more hypervisor levels */
257  /* does not support STHYI. For this case */
258  /* INFSTHYI will also be set. */
259  /* 2. There were more than 3 levels */
260  /* of guest/hypervisor information */
261  /* to report. */
262  #define INFBASIC 16 /* Execution environment is not */
263  /* within a logical partition. */
264  unsigned char /* XL1 */ infhflg2; /* Header Flag Byte 2 reserved for IBM use */
265  unsigned char /* XL1 */ infhval1; /* Header Validity Byte 1 */
266  /* Reserved for IBM use */
267  unsigned char /* XL1 */ infhval2; /* Header Validity Byte 2 */
268  /* Reserved for IBM use */
269  char __filler0[3];
270  unsigned char /* XL1 */ infhygct; /* Count of reported hypervisors/ */
271  /* guests. This indicates how many */
272  /* hypervisor/guest sections are in */
273  /* the response buffer up to a */
274  /* maximum of 3. */
275  short int /* HL2 */ infhtotl; /* Total length of the response */
276  /* buffer in bytes, including the */
277  /* Header, Machine, Partition, and */
278  /* Hypervisor and Guest sections. */
279  short int /* HL2 */ infhdln; /* Length of Header Section in bytes */
280  short int /* HL2 */ infmoff; /* Offset to Machine Section mapped */
281  /* by INF0MAC */
282  short int /* HL2 */ infmlen; /* Length of Machine Section in bytes */
283  short int /* HL2 */ infpoff; /* Offset to Partition Section mapped */
284  /* by INF0PAR */
285  short int /* HL2 */ infplen; /* Length of Partition Section in bytes */
286  #define INF0YGMX 3 /* Maximum Hypervisor/Guest sections */
287  union {
288  unsigned char /* XL8 */ infhygs1[8]; /* Hypervisor/Guest Header 1 */
289  struct {
290  short int /* HL2 */ infhoff1; /* Offset to Hypervisor Section 1, */
291  /* mapped by INF0HYP */
292  short int /* HL2 */ infhlen1; /* Length of Hypervisor Section 1 in */
293  /* bytes */
294  short int /* HL2 */ infgoff1; /* Offset to Guest Section 1 mapped */
295  /* by INF0GST */
296  short int /* HL2 */ infglen1; /* Length of Guest Section 1 in bytes */
297  };
298  };
299  union {
300  unsigned char /* XL8 */ infhygs2[8]; /* Hypervisor/Guest Header 2 */
301  struct {
302  short int /* HL2 */ infhoff2; /* Offset to Hypervisor Section 2 */
303  /* mapped by INF0HYP */
304  short int /* HL2 */ infhlen2; /* Length of Hypervisor Section 2 in */
305  /* bytes */
306  short int /* HL2 */ infgoff2; /* Offset to Guest Section 2 mapped */
307  /* by INF0GST */
308  short int /* HL2 */ infglen2; /* Length of Guest Section 2 in bytes */
309  };
310  };
311  union {
312  unsigned char /* XL8 */ infhygs3[8]; /* Hypervisor/Guest Header 3 */
313  struct {
314  short int /* HL2 */ infhoff3; /* Offset to Hypervisor Section 3 */
315  /* mapped by INF0HYP */
316  short int /* HL2 */ infhlen3; /* Length of Hypervisor Section 3 in */
317  /* bytes */
318  short int /* HL2 */ infgoff3; /* Offset to Guest Section 3 mapped */
319  /* by INF0GST */
320  short int /* HL2 */ infglen3; /* Length of Guest Section 3 in bytes */
321  #define INF0HDSZ 48 /* Size of header in bytes */
322  #define INF0HDSD 6 /* Size of Header in DWs */
323  };
324  };
325  char __filler1[4];
326 };
327 struct inf0gst {
328  unsigned char /* XL1 */ infgflg1; /* Guest Flag Byte 1 */
329  #define INFGMOB 128 /* Guest mobility is enabled. @U7405P4 */
330  #define INFGMCPT 64 /* Guest has multiple CPU types */
331  #define INFGCPLH 32 /* Guest CP dispatch type has */
332  /* LIMITHARD cap. */
333  #define INFGIFLH 16 /* Guest IFL dispatch type has */
334  /* LIMITHARD cap. */
335  #define INFGVCPT 8 /* Virtual CPs are thread dispatched @VRKP30K */
336  #define INFGVIFT 4 /* Virtual IFLs are thread dispatched@VRKP30K */
337  unsigned char /* XL1 */ infgflg2; /* Guest Flag Byte 2 */
338  /* Reserved for IBM use */
339  unsigned char /* XL1 */ infgval1; /* Guest Validity Byte 1 */
340  /* Reserved for IBM use */
341  unsigned char /* XL1 */ infgval2; /* Guest Validity Byte 2 */
342  /* Reserved for IBM use */
343  unsigned char /* CL8 */ infgusid[8]; /* Guest's userid, in EBCDIC format */
344  short int /* HL2 */ infgscps; /* Number of guest shared CPs */
345  short int /* HL2 */ infgdcps; /* Number of guest dedicated CPs */
346  unsigned char /* XL1 */ infgcpdt; /* Dispatch type for guest CPs */
347  /* This field is valid if INFGSCPS @VRKP30K */
348  /* or INFGDCPS is greater than zero. @VRKP30K */
349  /* 00 General Purpose (CP) */
350  char __filler0[3];
351  int /* FL4 */ infgcpcc; /* Guest current capped capacity for */
352  /* shared virtual CPs, a scaled */
353  /* number where X'00010000' */
354  /* represents one core. @VRKP30K */
355  /* Zero if not capped. */
356  short int /* HL2 */ infgsifl; /* Number of guest shared IFLs */
357  short int /* HL2 */ infgdifl; /* Number of guest dedicated IFLs */
358  unsigned char /* XL1 */ infgifdt; /* Dispatch type for guest IFLs. This */
359  /* field is valid if INFGSIFL or */
360  /* INFGDIFL is greater than zero. */
361  /* 00 General Purpose (CP) */
362  /* 03 Integrated Facility for LINUX (IFL) */
363  char __filler1[3];
364  int /* FL4 */ infgifcc; /* Guest current capped capacity for */
365  /* shared virtual IFLs, a scaled */
366  /* number where X'00010000' */
367  /* represents one core. @VRKP30K */
368  /* Zero if not capped. */
369  unsigned char /* XL1 */ infgpflg; /* CPU Pool Capping Flags */
370  #define INFGPCLH 128 /* CPU Pool's CP virtual type has */
371  /* LIMITHARD cap. @U7068P4 */
372  #define INFGPCPC 64 /* CPU Pool's CP virtual type has */
373  /* CAPACITY cap. @U7068P4 */
374  #define INFGPILH 32 /* CPU Pool's IFL virtual type has */
375  /* LIMITHARD cap. @U7068P4 */
376  #define INFGPIFC 16 /* CPU Pool's IFL virtual type has */
377  /* CAPACITY cap. @U7068P4 */
378  #define INFPRCTM 8 /* CPU Pool uses prorated core time. @U7874HY */
379  char __filler2[3];
380  unsigned char /* CL8 */ infgpnam[8]; /* CPU pool name. Blanks if not in a */
381  /* CPU Pool. */
382  int /* FL4 */ infgpccc; /* CPU pool capped capacity for shared */
383  /* virtual CPs, a scaled number where */
384  /* X'00010000' represents one core. @VRKP30K */
385  /* Zero if not capped. */
386  int /* FL4 */ infgpicc; /* CPU pool capped capacity for shared */
387  /* virtual IFLs, a scaled number where */
388  /* X'00010000' represents one core. @VRKP30K */
389  /* Zero if not capped. */
390  #define INF0GSIZ 56 /* Size of Guest Section in bytes */
391  #define INF0GSZD 7 /* Size of Guest Section in DWs */
392 };
393 struct infbk {
394  long long /* DL8 */ infresp; /* Minimum response buffer size @U7059P4 */
395  /* for all function codes. @U7059P4 */
396  #define INFRCOK 0 /* Success @U7128DN */
397  #define INFRFC 4 /* Unsupported function code @U7128DN */
398  #define INFCAPAC 0 /* FC=0 - Obtain CPU Capacity Info @U7128DN */
399 };
Definition: hcpinfbk_qclib.h:106
Definition: hcpinfbk_qclib.h:225
Definition: hcpinfbk_qclib.h:393
Definition: hcpinfbk_qclib.h:171
Definition: hcpinfbk_qclib.h:3
Definition: hcpinfbk_qclib.h:327
Definition: hcpinfbk_qclib.h:236