Mercurial > sarpn
comparison arch/channel.h @ 16:3d69c66b2610
arch: last fixup, now things seem to work as expected
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Fri, 08 Apr 2011 09:44:57 -0400 |
parents | c75be274ce23 |
children |
comparison
equal
deleted
inserted
replaced
15:c1212be83114 | 16:3d69c66b2610 |
---|---|
217 ); | 217 ); |
218 | 218 |
219 return cc; | 219 return cc; |
220 } | 220 } |
221 | 221 |
222 static inline void wait_for_io_int() | 222 extern void wait_for_io_int(); |
223 { | |
224 struct psw psw; | |
225 | |
226 __builtin_memset(&psw, 0, sizeof(struct psw)); | |
227 psw.io = 1; | |
228 psw.ea = 1; | |
229 psw.ba = 1; | |
230 psw.w = 1; | |
231 | |
232 asm volatile( | |
233 " larl %%r1,0f\n" | |
234 " stg %%r1,%0\n" | |
235 " lpswe %1\n" | |
236 "0:\n" | |
237 : /* output */ | |
238 "=m" (psw.ptr) | |
239 : /* input */ | |
240 "m" (psw) | |
241 : /* clobbered */ | |
242 "r1", "r2" | |
243 ); | |
244 } | |
245 | 223 |
246 #endif | 224 #endif |