macro _set_base - "do - while(0)" question

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <linux-kernel@...>
Date: Wednesday, January 2, 2008 - 7:45 am

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/
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
macro _set_base - "do - while(0)" question, Abdel, (Wed Jan 2, 7:45 am)
Re: macro _set_base - "do - while(0)" question, DervishD, (Wed Jan 2, 8:42 am)
Re: macro _set_base - "do - while(0)" question, Sam Ravnborg, (Wed Jan 2, 7:49 am)