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/css.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/css.h')
-rw-r--r-- | drivers/s390/cio/css.h | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/s390/cio/css.h b/drivers/s390/cio/css.h index 2004a6c49388..f26e16daecb5 100644 --- a/drivers/s390/cio/css.h +++ b/drivers/s390/cio/css.h | |||
@@ -6,6 +6,8 @@ | |||
6 | 6 | ||
7 | #include <asm/cio.h> | 7 | #include <asm/cio.h> |
8 | 8 | ||
9 | #include "schid.h" | ||
10 | |||
9 | /* | 11 | /* |
10 | * path grouping stuff | 12 | * path grouping stuff |
11 | */ | 13 | */ |
@@ -68,7 +70,7 @@ struct ccw_device_private { | |||
68 | atomic_t onoff; | 70 | atomic_t onoff; |
69 | unsigned long registered; | 71 | unsigned long registered; |
70 | __u16 devno; /* device number */ | 72 | __u16 devno; /* device number */ |
71 | __u16 irq; /* subchannel number */ | 73 | __u16 sch_no; /* subchannel number */ |
72 | __u8 imask; /* lpm mask for SNID/SID/SPGID */ | 74 | __u8 imask; /* lpm mask for SNID/SID/SPGID */ |
73 | int iretry; /* retry counter SNID/SID/SPGID */ | 75 | int iretry; /* retry counter SNID/SID/SPGID */ |
74 | struct { | 76 | struct { |
@@ -121,12 +123,11 @@ struct css_driver { | |||
121 | extern struct bus_type css_bus_type; | 123 | extern struct bus_type css_bus_type; |
122 | extern struct css_driver io_subchannel_driver; | 124 | extern struct css_driver io_subchannel_driver; |
123 | 125 | ||
124 | int css_probe_device(int irq); | 126 | extern int css_probe_device(struct subchannel_id); |
125 | extern struct subchannel * get_subchannel_by_schid(int irq); | 127 | extern struct subchannel * get_subchannel_by_schid(struct subchannel_id); |
126 | extern unsigned int highest_subchannel; | ||
127 | extern int css_init_done; | 128 | extern int css_init_done; |
128 | 129 | ||
129 | #define __MAX_SUBCHANNELS 65536 | 130 | #define __MAX_SUBCHANNEL 65535 |
130 | 131 | ||
131 | extern struct bus_type css_bus_type; | 132 | extern struct bus_type css_bus_type; |
132 | extern struct device css_bus_device; | 133 | extern struct device css_bus_device; |
@@ -144,7 +145,7 @@ void device_set_waiting(struct subchannel *); | |||
144 | void device_kill_pending_timer(struct subchannel *); | 145 | void device_kill_pending_timer(struct subchannel *); |
145 | 146 | ||
146 | /* Helper functions to build lists for the slow path. */ | 147 | /* Helper functions to build lists for the slow path. */ |
147 | int css_enqueue_subchannel_slow(unsigned long schid); | 148 | extern int css_enqueue_subchannel_slow(struct subchannel_id schid); |
148 | void css_walk_subchannel_slow_list(void (*fn)(unsigned long)); | 149 | void css_walk_subchannel_slow_list(void (*fn)(unsigned long)); |
149 | void css_clear_subchannel_slow_list(void); | 150 | void css_clear_subchannel_slow_list(void); |
150 | int css_slow_subchannels_exist(void); | 151 | int css_slow_subchannels_exist(void); |