Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/arch/xen/include/intr.h,v rcsdiff: /ftp/cvs/cvsroot/src/sys/arch/xen/include/intr.h,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.31 retrieving revision 1.31.10.2 diff -u -p -r1.31 -r1.31.10.2 --- src/sys/arch/xen/include/intr.h 2009/07/29 12:02:06 1.31 +++ src/sys/arch/xen/include/intr.h 2011/06/26 12:56:32 1.31.10.2 @@ -1,4 +1,4 @@ -/* $NetBSD: intr.h,v 1.31 2009/07/29 12:02:06 cegger Exp $ */ +/* $NetBSD: intr.h,v 1.31.10.2 2011/06/26 12:56:32 cherry Exp $ */ /* NetBSD intr.h,v 1.15 2004/10/31 10:39:34 yamt Exp */ /*- @@ -33,15 +33,18 @@ #ifndef _XEN_INTR_H_ #define _XEN_INTR_H_ +#ifndef _LOCORE +#include +#include #include -#ifndef _LOCORE +#include +#include +#include + #include #include #include -#include -#include -#include #include "opt_xen.h" @@ -55,6 +58,13 @@ struct evtsource { struct intrhand *ev_handlers; /* handler chain */ struct evcnt ev_evcnt; /* interrupt counter */ char ev_evname[32]; /* event counter name */ + struct simplelock ev_lock; /* protects this structure */ + + /* + * XXX: The lock is quite coursegrained ( for the entire + * handler list ), but contention is expected to be low. See + * how this performs and revisit. + */ }; /* @@ -175,9 +185,15 @@ int intr_find_mpmapping(int, int, struct struct pic *intr_findpic(int); void intr_add_pcibus(struct pcibus_attach_args *); -int x86_send_ipi(struct cpu_info *, int); -void x86_broadcast_ipi(int); -void x86_multicast_ipi(int, int); +#ifdef MULTIPROCESSOR +void xen_ipi_init(void); +int xen_send_ipi(struct cpu_info *, uint32_t); +void xen_broadcast_ipi(uint32_t); +#else +#define xen_ipi_init(_1) do {} while(0) /* nothing */ +#define xen_send_ipi(_i1, _i2) do {} while(0) /* nothing */ +#define xen_broadcast_ipi(_i1) do {} while(0) /* nothing */ +#endif /* MULTIPROCESSOR */ #endif /* !_LOCORE */