|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 04/16] Move event channel macros / struct definition to proper place
The original ones seem to be mis-placed in sched.h, move them to proper place
in xen.h and event.h.
Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
xen/include/public/xen.h | 2 ++
xen/include/xen/event.h | 43 +++++++++++++++++++++++++++++++++++++++++++
xen/include/xen/sched.h | 45 ---------------------------------------------
3 files changed, 45 insertions(+), 45 deletions(-)
diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
index fe44eb5..6132682 100644
--- a/xen/include/public/xen.h
+++ b/xen/include/public/xen.h
@@ -557,6 +557,8 @@ DEFINE_XEN_GUEST_HANDLE(multicall_entry_t);
* 1024 if a long is 32 bits; 4096 if a long is 64 bits.
*/
#define NR_EVENT_CHANNELS (sizeof(unsigned long) * sizeof(unsigned long) * 64)
+#define EVTCHNS_PER_BUCKET 128
+#define NR_EVTCHN_BUCKETS (NR_EVENT_CHANNELS / EVTCHNS_PER_BUCKET)
struct vcpu_time_info {
/*
diff --git a/xen/include/xen/event.h b/xen/include/xen/event.h
index 65ac81a..1c13bd0 100644
--- a/xen/include/xen/event.h
+++ b/xen/include/xen/event.h
@@ -15,6 +15,49 @@
#include <asm/bitops.h>
#include <asm/event.h>
+#ifndef CONFIG_COMPAT
+#define BITS_PER_EVTCHN_WORD(d) BITS_PER_LONG
+#else
+#define BITS_PER_EVTCHN_WORD(d) (has_32bit_shinfo(d) ? 32 : BITS_PER_LONG)
+#endif
+#define MAX_EVTCHNS(d) (BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d))
+
+struct evtchn
+{
+#define ECS_FREE 0 /* Channel is available for use. */
+#define ECS_RESERVED 1 /* Channel is reserved. */
+#define ECS_UNBOUND 2 /* Channel is waiting to bind to a remote domain. */
+#define ECS_INTERDOMAIN 3 /* Channel is bound to another domain. */
+#define ECS_PIRQ 4 /* Channel is bound to a physical IRQ line. */
+#define ECS_VIRQ 5 /* Channel is bound to a virtual IRQ line. */
+#define ECS_IPI 6 /* Channel is bound to a virtual IPI line. */
+ u8 state; /* ECS_* */
+ u8 xen_consumer; /* Consumer in Xen, if any? (0 = send to guest) */
+ u16 notify_vcpu_id; /* VCPU for local delivery notification */
+ union {
+ struct {
+ domid_t remote_domid;
+ } unbound; /* state == ECS_UNBOUND */
+ struct {
+ u16 remote_port;
+ struct domain *remote_dom;
+ } interdomain; /* state == ECS_INTERDOMAIN */
+ struct {
+ u16 irq;
+ u16 next_port;
+ u16 prev_port;
+ } pirq; /* state == ECS_PIRQ */
+ u16 virq; /* state == ECS_VIRQ */
+ } u;
+#ifdef FLASK_ENABLE
+ void *ssid;
+#endif
+};
+
+int evtchn_init(struct domain *d); /* from domain_create */
+void evtchn_destroy(struct domain *d); /* from domain_kill */
+void evtchn_destroy_final(struct domain *d); /* from complete_domain_destroy */
+
/*
* send_guest_vcpu_virq: Notify guest via a per-VCPU VIRQ.
* @v: VCPU to which virtual IRQ should be sent
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 39f85d2..64a0ba4 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -45,51 +45,6 @@ DEFINE_XEN_GUEST_HANDLE(vcpu_runstate_info_compat_t);
/* A global pointer to the initial domain (DOM0). */
extern struct domain *dom0;
-#ifndef CONFIG_COMPAT
-#define BITS_PER_EVTCHN_WORD(d) BITS_PER_LONG
-#else
-#define BITS_PER_EVTCHN_WORD(d) (has_32bit_shinfo(d) ? 32 : BITS_PER_LONG)
-#endif
-#define MAX_EVTCHNS(d) (BITS_PER_EVTCHN_WORD(d) * BITS_PER_EVTCHN_WORD(d))
-#define EVTCHNS_PER_BUCKET 128
-#define NR_EVTCHN_BUCKETS (NR_EVENT_CHANNELS / EVTCHNS_PER_BUCKET)
-
-struct evtchn
-{
-#define ECS_FREE 0 /* Channel is available for use. */
-#define ECS_RESERVED 1 /* Channel is reserved. */
-#define ECS_UNBOUND 2 /* Channel is waiting to bind to a remote domain. */
-#define ECS_INTERDOMAIN 3 /* Channel is bound to another domain. */
-#define ECS_PIRQ 4 /* Channel is bound to a physical IRQ line. */
-#define ECS_VIRQ 5 /* Channel is bound to a virtual IRQ line. */
-#define ECS_IPI 6 /* Channel is bound to a virtual IPI line. */
- u8 state; /* ECS_* */
- u8 xen_consumer; /* Consumer in Xen, if any? (0 = send to guest) */
- u16 notify_vcpu_id; /* VCPU for local delivery notification */
- union {
- struct {
- domid_t remote_domid;
- } unbound; /* state == ECS_UNBOUND */
- struct {
- u16 remote_port;
- struct domain *remote_dom;
- } interdomain; /* state == ECS_INTERDOMAIN */
- struct {
- u16 irq;
- u16 next_port;
- u16 prev_port;
- } pirq; /* state == ECS_PIRQ */
- u16 virq; /* state == ECS_VIRQ */
- } u;
-#ifdef FLASK_ENABLE
- void *ssid;
-#endif
-};
-
-int evtchn_init(struct domain *d); /* from domain_create */
-void evtchn_destroy(struct domain *d); /* from domain_kill */
-void evtchn_destroy_final(struct domain *d); /* from complete_domain_destroy */
-
struct waitqueue_vcpu;
struct vcpu
--
1.7.10.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |