On Tue, May 09, 2006 at 07:49:42AM -0700, Martin J. Bligh wrote: > >+#define __cli() \ > >+do { \ > >+ struct vcpu_info *_vcpu; \ > >+ preempt_disable(); \ > >+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \ > >+ _vcpu->evtchn_upcall_mask = 1; \ > >+ preempt_enable_no_resched(); \ > >+ barrier(); \ > >+} while (0) > > Should be a real function Yes, except it's not trivially done because if __cli was an inline function, you need to have everything that is used in the declaration defined when the function is declared as opposed to when the #define gets used. I'll give it another try, but it very quickly becomes #include hell. Anybody want to comment on the performance impact of making local_irq_* non-inline functions? christian