1
2
3
4
5
6
7
8
9 #ifndef S390_CPUMSF_KERNEL_H
10 #define S390_CPUMSF_KERNEL_H
11
12 #define S390_CPUMSF_PAGESZ 4096
13 #define S390_CPUMSF_DIAG_DEF_FIRST 0x8001
14
15 struct hws_basic_entry {
16 unsigned int def:16;
17 unsigned int R:4;
18 unsigned int U:4;
19 unsigned int z:2;
20 unsigned int T:1;
21 unsigned int W:1;
22 unsigned int P:1;
23 unsigned int AS:2;
24 unsigned int I:1;
25 unsigned int CL:2;
26 unsigned int:14;
27 unsigned int prim_asn:16;
28 unsigned long long ia;
29 unsigned long long gpp;
30 unsigned long long hpp;
31 };
32
33 struct hws_diag_entry {
34 unsigned int def:16;
35 unsigned int R:15;
36 unsigned int I:1;
37 u8 data[];
38 };
39
40 struct hws_combined_entry {
41 struct hws_basic_entry basic;
42 struct hws_diag_entry diag;
43 };
44
45 struct hws_trailer_entry {
46 union {
47 struct {
48 unsigned int f:1;
49 unsigned int a:1;
50 unsigned int t:1;
51 unsigned int:29;
52 unsigned int bsdes:16;
53 unsigned int dsdes:16;
54 };
55 unsigned long long flags;
56 };
57 unsigned long long overflow;
58 unsigned char timestamp[16];
59 unsigned long long reserved1;
60 unsigned long long reserved2;
61 union {
62 struct {
63 unsigned long long clock_base:1;
64 unsigned long long progusage1:63;
65 unsigned long long progusage2;
66 };
67 unsigned long long progusage[2];
68 };
69 };
70
71 #endif