0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef S390_CPUMSF_KERNEL_H
0010 #define S390_CPUMSF_KERNEL_H
0011
0012 #define S390_CPUMSF_PAGESZ 4096
0013 #define S390_CPUMSF_DIAG_DEF_FIRST 0x8001
0014
0015 struct hws_basic_entry {
0016 unsigned int def:16;
0017 unsigned int R:4;
0018 unsigned int U:4;
0019 unsigned int z:2;
0020 unsigned int T:1;
0021 unsigned int W:1;
0022 unsigned int P:1;
0023 unsigned int AS:2;
0024 unsigned int I:1;
0025 unsigned int CL:2;
0026 unsigned int:14;
0027 unsigned int prim_asn:16;
0028 unsigned long long ia;
0029 unsigned long long gpp;
0030 unsigned long long hpp;
0031 };
0032
0033 struct hws_diag_entry {
0034 unsigned int def:16;
0035 unsigned int R:15;
0036 unsigned int I:1;
0037 u8 data[];
0038 };
0039
0040 struct hws_combined_entry {
0041 struct hws_basic_entry basic;
0042 struct hws_diag_entry diag;
0043 };
0044
0045 struct hws_trailer_entry {
0046 union {
0047 struct {
0048 unsigned int f:1;
0049 unsigned int a:1;
0050 unsigned int t:1;
0051 unsigned int:29;
0052 unsigned int bsdes:16;
0053 unsigned int dsdes:16;
0054 };
0055 unsigned long long flags;
0056 };
0057 unsigned long long overflow;
0058 unsigned char timestamp[16];
0059 unsigned long long reserved1;
0060 unsigned long long reserved2;
0061 union {
0062 struct {
0063 unsigned long long clock_base:1;
0064 unsigned long long progusage1:63;
0065 unsigned long long progusage2;
0066 };
0067 unsigned long long progusage[2];
0068 };
0069 };
0070
0071 #endif