aboutsummaryrefslogtreecommitdiffstats
path: root/tools/xenpaging
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2010-12-23 15:25:57 +0000
committerIan Campbell <ian.campbell@citrix.com>2010-12-23 15:25:57 +0000
commit3e446a35ee82c738367e8f90e3bc9166687043a8 (patch)
treed2ed5fd210a798cb5c54007a08e8bd2b9e9a221f /tools/xenpaging
parent252cb308e37470915d0f64c730e4e2e829ec2512 (diff)
downloadxen-3e446a35ee82c738367e8f90e3bc9166687043a8.tar.gz
xen-3e446a35ee82c738367e8f90e3bc9166687043a8.tar.bz2
xen-3e446a35ee82c738367e8f90e3bc9166687043a8.zip
libxc: convert evtchn interfaces to use an opaque handle type
This makes the interface consistent with the changes made to the main interface in 21483:779c0ef9682c. Also fix some references to "struct xc_interface" which should have been simply "xc_interface" in tools/xenpaging, and update QEMU_TAG to pull in the corresponding qemu change. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/xenpaging')
-rw-r--r--tools/xenpaging/mem_event.h2
-rw-r--r--tools/xenpaging/policy_default.c2
-rw-r--r--tools/xenpaging/xc.c12
-rw-r--r--tools/xenpaging/xc.h4
-rw-r--r--tools/xenpaging/xenpaging.c14
5 files changed, 17 insertions, 17 deletions
diff --git a/tools/xenpaging/mem_event.h b/tools/xenpaging/mem_event.h
index 9f7bdf008a..807b21816b 100644
--- a/tools/xenpaging/mem_event.h
+++ b/tools/xenpaging/mem_event.h
@@ -40,7 +40,7 @@
typedef struct mem_event {
domid_t domain_id;
- int xce_handle;
+ xc_evtchn *xce_handle;
int port;
mem_event_back_ring_t back_ring;
mem_event_shared_page_t *shared_page;
diff --git a/tools/xenpaging/policy_default.c b/tools/xenpaging/policy_default.c
index ea32407ca4..e1e727991d 100644
--- a/tools/xenpaging/policy_default.c
+++ b/tools/xenpaging/policy_default.c
@@ -70,7 +70,7 @@ int policy_init(xenpaging_t *paging)
int policy_choose_victim(xenpaging_t *paging, domid_t domain_id,
xenpaging_victim_t *victim)
{
- struct xc_interface *xch = paging->xc_handle;
+ xc_interface *xch = paging->xc_handle;
unsigned long wrap = current_gfn;
ASSERT(victim != NULL);
diff --git a/tools/xenpaging/xc.c b/tools/xenpaging/xc.c
index 3b9c836aa0..d1a62ff77f 100644
--- a/tools/xenpaging/xc.c
+++ b/tools/xenpaging/xc.c
@@ -65,9 +65,9 @@ int xc_mem_paging_flush_ioemu_cache(domid_t domain_id)
return rc;
}
-int xc_wait_for_event_or_timeout(xc_interface *xch, int xce_handle, unsigned long ms)
+int xc_wait_for_event_or_timeout(xc_interface *xch, xc_evtchn *xce, unsigned long ms)
{
- struct pollfd fd = { .fd = xce_handle, .events = POLLIN | POLLERR };
+ struct pollfd fd = { .fd = xc_evtchn_fd(xce), .events = POLLIN | POLLERR };
int port;
int rc;
@@ -83,14 +83,14 @@ int xc_wait_for_event_or_timeout(xc_interface *xch, int xce_handle, unsigned lon
if ( rc == 1 )
{
- port = xc_evtchn_pending(xce_handle);
+ port = xc_evtchn_pending(xce);
if ( port == -1 )
{
ERROR("Failed to read port from event channel");
goto err;
}
- rc = xc_evtchn_unmask(xce_handle, port);
+ rc = xc_evtchn_unmask(xce, port);
if ( rc != 0 )
{
ERROR("Failed to unmask event channel port");
@@ -106,9 +106,9 @@ int xc_wait_for_event_or_timeout(xc_interface *xch, int xce_handle, unsigned lon
return -errno;
}
-int xc_wait_for_event(xc_interface *xch, int xce_handle)
+int xc_wait_for_event(xc_interface *xch, xc_evtchn *xce)
{
- return xc_wait_for_event_or_timeout(xch, xce_handle, -1);
+ return xc_wait_for_event_or_timeout(xch, xce, -1);
}
int xc_get_platform_info(xc_interface *xc_handle, domid_t domain_id,
diff --git a/tools/xenpaging/xc.h b/tools/xenpaging/xc.h
index 5febb89ef3..41cf310c47 100644
--- a/tools/xenpaging/xc.h
+++ b/tools/xenpaging/xc.h
@@ -53,8 +53,8 @@ typedef struct xc_platform_info {
int alloc_bitmap(unsigned long **bitmap, unsigned long bitmap_size);
int xc_mem_paging_flush_ioemu_cache(domid_t domain_id);
-int xc_wait_for_event(xc_interface *xch, int xce_handle);
-int xc_wait_for_event_or_timeout(xc_interface *xch, int xce_handle, unsigned long ms);
+int xc_wait_for_event(xc_interface *xch, xc_evtchn *xce);
+int xc_wait_for_event_or_timeout(xc_interface *xch, xc_evtchn *xce, unsigned long ms);
int xc_get_platform_info(xc_interface *xc_handle, domid_t domain_id,
xc_platform_info_t *platform_info);
diff --git a/tools/xenpaging/xenpaging.c b/tools/xenpaging/xenpaging.c
index 74e4f56589..508068f9c5 100644
--- a/tools/xenpaging/xenpaging.c
+++ b/tools/xenpaging/xenpaging.c
@@ -144,8 +144,8 @@ xenpaging_t *xenpaging_init(domid_t domain_id)
}
/* Open event channel */
- paging->mem_event.xce_handle = xc_evtchn_open();
- if ( paging->mem_event.xce_handle < 0 )
+ paging->mem_event.xce_handle = xc_evtchn_open(NULL, 0);
+ if ( paging->mem_event.xce_handle == NULL )
{
ERROR("Failed to open event channel");
goto err;
@@ -246,7 +246,7 @@ xenpaging_t *xenpaging_init(domid_t domain_id)
int xenpaging_teardown(xenpaging_t *paging)
{
int rc;
- struct xc_interface *xch;
+ xc_interface *xch;
if ( paging == NULL )
return 0;
@@ -274,7 +274,7 @@ int xenpaging_teardown(xenpaging_t *paging)
{
ERROR("Error closing event channel");
}
- paging->mem_event.xce_handle = -1;
+ paging->mem_event.xce_handle = NULL;
/* Close connection to Xen */
rc = xc_interface_close(xch);
@@ -338,7 +338,7 @@ static int put_response(mem_event_t *mem_event, mem_event_response_t *rsp)
int xenpaging_evict_page(xenpaging_t *paging,
xenpaging_victim_t *victim, int fd, int i)
{
- struct xc_interface *xch = paging->xc_handle;
+ xc_interface *xch = paging->xc_handle;
void *page;
unsigned long gfn;
int ret;
@@ -412,7 +412,7 @@ static int xenpaging_resume_page(xenpaging_t *paging, mem_event_response_t *rsp,
static int xenpaging_populate_page(xenpaging_t *paging,
uint64_t *gfn, int fd, int i)
{
- struct xc_interface *xch = paging->xc_handle;
+ xc_interface *xch = paging->xc_handle;
unsigned long _gfn;
void *page;
int ret;
@@ -467,7 +467,7 @@ static int xenpaging_populate_page(xenpaging_t *paging,
static int evict_victim(xenpaging_t *paging, domid_t domain_id,
xenpaging_victim_t *victim, int fd, int i)
{
- struct xc_interface *xch = paging->xc_handle;
+ xc_interface *xch = paging->xc_handle;
int j = 0;
int ret;