1 #ifndef S390_CIO_IOASM_H
2 #define S390_CIO_IOASM_H
8 __u32 reserved1 : 16; /* reserved 0x00000001 */
9 __u32 irq : 16; /* aka. subchannel number */
10 __u32 intparm; /* interruption parameter */
17 } __attribute__ ((packed));
21 * Some S390 specific IO instructions as inline
24 static inline int stsch(int irq, volatile struct schib *addr)
34 : "d" (irq | 0x10000), "a" (addr)
39 static inline int msch(int irq, volatile struct schib *addr)
49 : "d" (irq | 0x10000L), "a" (addr)
54 static inline int msch_err(int irq, volatile struct schib *addr)
65 #ifdef CONFIG_ARCH_S390X
66 ".section __ex_table,\"a\"\n"
71 ".section __ex_table,\"a\"\n"
77 : "d" (irq | 0x10000L), "a" (addr), "K" (-EIO)
82 static inline int tsch(int irq, volatile struct irb *addr)
92 : "d" (irq | 0x10000L), "a" (addr)
97 static inline int tpi( volatile struct tpi_info *addr)
101 __asm__ __volatile__(
111 static inline int ssch(int irq, volatile struct orb *addr)
115 __asm__ __volatile__(
121 : "d" (irq | 0x10000L), "a" (addr)
126 static inline int rsch(int irq)
130 __asm__ __volatile__(
136 : "d" (irq | 0x10000L)
141 static inline int csch(int irq)
145 __asm__ __volatile__(
151 : "d" (irq | 0x10000L)
156 static inline int hsch(int irq)
160 __asm__ __volatile__(
166 : "d" (irq | 0x10000L)
171 static inline int xsch(int irq)
175 __asm__ __volatile__(
177 " .insn rre,0xb2760000,%1,0\n"
181 : "d" (irq | 0x10000L)
186 static inline int chsc(void *chsc_area)
190 __asm__ __volatile__ (
191 ".insn rre,0xb25f0000,%1,0 \n\t"
201 static inline int iac( void)
205 __asm__ __volatile__(
209 : "=d" (ccode) : : "cc", "1" );
213 static inline int rchp(int chpid)
217 __asm__ __volatile__(