Messages in this thread | | | Date | Wed, 2 Jan 2008 12:45:39 +0100 | From | Abdel <> | Subject | macro _set_base - "do - while(0)" question |
| |
Hi,
In file include/asm-i386/system.h, _set_base and _set_limit use an useless do ... while(0)
Why is this needed ?
exemple with _set_base from linux-2.6.23
#define _set_base(addr,base) do { unsigned long __pr; \ __asm__ __volatile__ ("movw %%dx,%1\n\t" \ "rorl $16,%%edx\n\t" \ "movb %%dl,%2\n\t" \ "movb %%dh,%3" \ :"=&d" (__pr) \ :"m" (*((addr)+2)), \ "m" (*((addr)+4)), \ "m" (*((addr)+7)), \ "0" (base) \ ); } while(0)
-- Abdel http://draconux.free.fr/
| |