diff options
author | Cornelia Huck <cohuck@de.ibm.com> | 2006-01-06 03:19:21 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-06 11:33:51 -0500 |
commit | a8237fc4108060402d904bea5e1062e22e731969 (patch) | |
tree | fc19e33ea8bbe664c33fba6c78b34e497f2cc478 /drivers/s390/cio/cio.h | |
parent | 8129ee164267dc030b8e1d541ee3643c0b9f2fa1 (diff) |
[PATCH] s390: introduce struct subchannel_id
This patch introduces a struct subchannel_id containing the subchannel number
(formerly referred to as "irq") and switches code formerly relying on the
subchannel number over to it.
While we're touching inline assemblies anyway, make sure they have correct
memory constraints.
Signed-off-by: Cornelia Huck <cohuck@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/cio.h')
-rw-r--r-- | drivers/s390/cio/cio.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/s390/cio/cio.h b/drivers/s390/cio/cio.h index c50a9da420a9..0ca987344e07 100644 --- a/drivers/s390/cio/cio.h +++ b/drivers/s390/cio/cio.h | |||
@@ -1,6 +1,8 @@ | |||
1 | #ifndef S390_CIO_H | 1 | #ifndef S390_CIO_H |
2 | #define S390_CIO_H | 2 | #define S390_CIO_H |
3 | 3 | ||
4 | #include "schid.h" | ||
5 | |||
4 | /* | 6 | /* |
5 | * where we put the ssd info | 7 | * where we put the ssd info |
6 | */ | 8 | */ |
@@ -83,7 +85,7 @@ struct orb { | |||
83 | 85 | ||
84 | /* subchannel data structure used by I/O subroutines */ | 86 | /* subchannel data structure used by I/O subroutines */ |
85 | struct subchannel { | 87 | struct subchannel { |
86 | unsigned int irq; /* aka. subchannel number */ | 88 | struct subchannel_id schid; |
87 | spinlock_t lock; /* subchannel lock */ | 89 | spinlock_t lock; /* subchannel lock */ |
88 | 90 | ||
89 | enum { | 91 | enum { |
@@ -114,7 +116,7 @@ struct subchannel { | |||
114 | 116 | ||
115 | #define to_subchannel(n) container_of(n, struct subchannel, dev) | 117 | #define to_subchannel(n) container_of(n, struct subchannel, dev) |
116 | 118 | ||
117 | extern int cio_validate_subchannel (struct subchannel *, unsigned int); | 119 | extern int cio_validate_subchannel (struct subchannel *, struct subchannel_id); |
118 | extern int cio_enable_subchannel (struct subchannel *, unsigned int); | 120 | extern int cio_enable_subchannel (struct subchannel *, unsigned int); |
119 | extern int cio_disable_subchannel (struct subchannel *); | 121 | extern int cio_disable_subchannel (struct subchannel *); |
120 | extern int cio_cancel (struct subchannel *); | 122 | extern int cio_cancel (struct subchannel *); |
@@ -127,14 +129,15 @@ extern int cio_cancel (struct subchannel *); | |||
127 | extern int cio_set_options (struct subchannel *, int); | 129 | extern int cio_set_options (struct subchannel *, int); |
128 | extern int cio_get_options (struct subchannel *); | 130 | extern int cio_get_options (struct subchannel *); |
129 | extern int cio_modify (struct subchannel *); | 131 | extern int cio_modify (struct subchannel *); |
132 | |||
130 | /* Use with care. */ | 133 | /* Use with care. */ |
131 | #ifdef CONFIG_CCW_CONSOLE | 134 | #ifdef CONFIG_CCW_CONSOLE |
132 | extern struct subchannel *cio_probe_console(void); | 135 | extern struct subchannel *cio_probe_console(void); |
133 | extern void cio_release_console(void); | 136 | extern void cio_release_console(void); |
134 | extern int cio_is_console(int irq); | 137 | extern int cio_is_console(struct subchannel_id); |
135 | extern struct subchannel *cio_get_console_subchannel(void); | 138 | extern struct subchannel *cio_get_console_subchannel(void); |
136 | #else | 139 | #else |
137 | #define cio_is_console(irq) 0 | 140 | #define cio_is_console(schid) 0 |
138 | #define cio_get_console_subchannel() NULL | 141 | #define cio_get_console_subchannel() NULL |
139 | #endif | 142 | #endif |
140 | 143 | ||