aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/cio/chsc.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/cio/chsc.h')
-rw-r--r--drivers/s390/cio/chsc.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/drivers/s390/cio/chsc.h b/drivers/s390/cio/chsc.h
index 3e75095f35d0..a259245780ae 100644
--- a/drivers/s390/cio/chsc.h
+++ b/drivers/s390/cio/chsc.h
@@ -12,6 +12,16 @@ struct chsc_header {
12 u16 code; 12 u16 code;
13}; 13};
14 14
15#define NR_MEASUREMENT_CHARS 5
16struct cmg_chars {
17 u32 values[NR_MEASUREMENT_CHARS];
18};
19
20#define NR_MEASUREMENT_ENTRIES 8
21struct cmg_entry {
22 u32 values[NR_MEASUREMENT_ENTRIES];
23};
24
15struct channel_path_desc { 25struct channel_path_desc {
16 u8 flags; 26 u8 flags;
17 u8 lsn; 27 u8 lsn;
@@ -27,6 +37,10 @@ struct channel_path {
27 int id; 37 int id;
28 int state; 38 int state;
29 struct channel_path_desc desc; 39 struct channel_path_desc desc;
40 /* Channel-measurement related stuff: */
41 int cmg;
42 int shared;
43 void *cmg_chars;
30 struct device dev; 44 struct device dev;
31}; 45};
32 46
@@ -52,7 +66,11 @@ struct css_general_char {
52 66
53struct css_chsc_char { 67struct css_chsc_char {
54 u64 res; 68 u64 res;
55 u64 : 43; 69 u64 : 20;
70 u32 secm : 1; /* bit 84 */
71 u32 : 1;
72 u32 scmc : 1; /* bit 86 */
73 u32 : 20;
56 u32 scssc : 1; /* bit 107 */ 74 u32 scssc : 1; /* bit 107 */
57 u32 scsscf : 1; /* bit 108 */ 75 u32 scsscf : 1; /* bit 108 */
58 u32 : 19; 76 u32 : 19;
@@ -67,6 +85,8 @@ extern int css_characteristics_avail;
67extern void *chsc_get_chp_desc(struct subchannel*, int); 85extern void *chsc_get_chp_desc(struct subchannel*, int);
68 86
69extern int chsc_enable_facility(int); 87extern int chsc_enable_facility(int);
88struct channel_subsystem;
89extern int chsc_secm(struct channel_subsystem *, int);
70 90
71#define to_channelpath(device) container_of(device, struct channel_path, dev) 91#define to_channelpath(device) container_of(device, struct channel_path, dev)
72 92