diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2006-03-24 06:15:14 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-24 10:33:16 -0500 |
commit | 495a5b45ac33b8fe2c49780fdbcc8014cb6d6ddc (patch) | |
tree | b456ebc9e8f53edd726c903401b5e40bbb9562d5 /drivers/s390/cio/chsc.h | |
parent | dc06010c62da773321258df1d8a1708a3158e29d (diff) |
[PATCH] s390: channel path measurements
Gather extended measurements for channel paths from the channel subsystem and
expose them to userspace via a sysfs attribute.
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/s390/cio/chsc.h')
-rw-r--r-- | drivers/s390/cio/chsc.h | 22 |
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 | ||
16 | struct cmg_chars { | ||
17 | u32 values[NR_MEASUREMENT_CHARS]; | ||
18 | }; | ||
19 | |||
20 | #define NR_MEASUREMENT_ENTRIES 8 | ||
21 | struct cmg_entry { | ||
22 | u32 values[NR_MEASUREMENT_ENTRIES]; | ||
23 | }; | ||
24 | |||
15 | struct channel_path_desc { | 25 | struct 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 | ||
53 | struct css_chsc_char { | 67 | struct 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; | |||
67 | extern void *chsc_get_chp_desc(struct subchannel*, int); | 85 | extern void *chsc_get_chp_desc(struct subchannel*, int); |
68 | 86 | ||
69 | extern int chsc_enable_facility(int); | 87 | extern int chsc_enable_facility(int); |
88 | struct channel_subsystem; | ||
89 | extern 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 | ||