From: Wei Liu <wei.liu2@citrix.com>
To: xen-devel@lists.xen.org
Cc: Wei Liu <wei.liu2@citrix.com>,
keir@xen.org, ian.campbell@citrix.com, jbeulich@suse.com,
david.vrabel@citrix.com
Subject: [RFC PATCH V4 04/18] Move event channel macros / struct definition to proper place
Date: Tue, 5 Mar 2013 12:30:26 +0000 [thread overview]
Message-ID: <1362486640-14707-5-git-send-email-wei.liu2@citrix.com> (raw)
In-Reply-To: <1362486640-14707-1-git-send-email-wei.liu2@citrix.com>
After remove reference to NR_EVTCHN_BUCKETS in struct domain, we can move
those macros / struct definitions to event.h.
Also update xen/xsm/flask/hooks.c to include the new header.
Signed-off-by: Wei Liu <wei.liu2@citrix.com>
---
xen/include/xen/event.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++
xen/include/xen/sched.h | 45 ---------------------------------------------
xen/xsm/flask/hooks.c | 1 +
3 files changed, 47 insertions(+), 45 deletions(-)
diff --git a/xen/include/xen/event.h b/xen/include/xen/event.h
index 65ac81a..271d792 100644
--- a/xen/include/xen/event.h
+++ b/xen/include/xen/event.h
@@ -15,6 +15,52 @@
#include <asm/bitops.h>
#include <asm/event.h>
+#ifndef CONFIG_COMPAT
+#define BITS_PER_EVTCHN_WORD(d) BITS_PER_XEN_ULONG
+#else
+#define BITS_PER_EVTCHN_WORD(d) (has_32bit_shinfo(d) ? 32 : BITS_PER_XEN_ULONG)
+#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 */
+
/*
* 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 f869cf1..58b7176 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_XEN_ULONG
-#else
-#define BITS_PER_EVTCHN_WORD(d) (has_32bit_shinfo(d) ? 32 : BITS_PER_XEN_ULONG)
-#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
diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
index 29a78dd..6d446ab 100644
--- a/xen/xsm/flask/hooks.c
+++ b/xen/xsm/flask/hooks.c
@@ -11,6 +11,7 @@
#include <xen/init.h>
#include <xen/lib.h>
#include <xen/sched.h>
+#include <xen/event.h>
#include <xen/paging.h>
#include <xen/xmalloc.h>
#include <xsm/xsm.h>
--
1.7.10.4
next prev parent reply other threads:[~2013-03-05 12:30 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-05 12:30 [RFC PATCH V4] Implement 3-level event channel ABI in Xen Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 01/18] xen: correct BITS_PER_EVTCHN_WORD on arm Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 02/18] Clean up trailing whitespaces Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 03/18] Dynamically allocate d->evtchn Wei Liu
2013-03-05 12:30 ` Wei Liu [this message]
2013-03-05 12:30 ` [RFC PATCH V4 05/18] Add d->max_evtchns Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 06/18] Add evtchn_is_{pending, masked} and evtchn_clear_pending Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 07/18] Implement extended event channel ABIs query Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 08/18] Define 3-level event channel registration interface Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 09/18] Add evtchn_extended in struct domain Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 10/18] Calculate max event channels for EVTCHN_EXTENDED_L3 Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 11/18] Bump EVTCHNS_PER_BUCKET to 512 Wei Liu
2013-03-15 18:15 ` David Vrabel
2013-03-15 18:37 ` Wei Liu
2013-03-15 18:43 ` David Vrabel
2013-03-05 12:30 ` [RFC PATCH V4 12/18] Update Xen public header xen.h Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 13/18] Genneralized event channel operations Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 14/18] Introduce EVTCHN_WORD_BITORDER macro Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 15/18] Infrastructure to manipulate 3-level event channel pages Wei Liu
2013-03-05 14:22 ` Jan Beulich
2013-03-05 12:30 ` [RFC PATCH V4 16/18] Implement 3-level event channel routines Wei Liu
2013-03-05 14:28 ` Jan Beulich
2013-03-05 16:07 ` Wei Liu
2013-03-05 16:13 ` Jan Beulich
2013-03-05 12:30 ` [RFC PATCH V4 17/18] Only allow extended event channel on Dom0 and driver domains Wei Liu
2013-03-05 12:30 ` [RFC PATCH V4 18/18] libxl: add evtchn_extended_allowed flag Wei Liu
2013-03-05 13:48 ` Ian Jackson
2013-03-05 17:11 ` Wei Liu
2013-03-05 17:38 ` Ian Jackson
2013-03-05 17:51 ` Wei Liu
2013-03-05 17:56 ` David Vrabel
2013-03-05 18:08 ` Wei Liu
2013-03-06 17:16 ` Wei Liu
2013-03-07 11:23 ` David Vrabel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1362486640-14707-5-git-send-email-wei.liu2@citrix.com \
--to=wei.liu2@citrix.com \
--cc=david.vrabel@citrix.com \
--cc=ian.campbell@citrix.com \
--cc=jbeulich@suse.com \
--cc=keir@xen.org \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).