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