From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wen Congyang Subject: [RFC Patch v2 07/16] colo: implement restore_callbacks get_page() Date: Thu, 11 Jul 2013 16:35:39 +0800 Message-ID: <1373531748-12547-8-git-send-email-wency@cn.fujitsu.com> References: <1373531748-12547-1-git-send-email-wency@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1373531748-12547-1-git-send-email-wency@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Dong Eddie , Lai Jiangshan , xen-devl , Shriram Rajagopalan Cc: Jiang Yunhong , Wen Congyang , Ye Wei , Xu Yao , Hong Tao List-Id: xen-devel@lists.xenproject.org This patch implements restore callbacks for colo: 1. get_page(): We have cache the whole memory, so just return the buffer. This page is also marked as dirty. Signed-off-by: Ye Wei Signed-off-by: Jiang Yunhong Signed-off-by: Wen Congyang --- tools/libxc/xc_domain_restore_colo.c | 9 +++++++++ tools/libxc/xc_save_restore_colo.h | 1 + 2 files changed, 10 insertions(+), 0 deletions(-) diff --git a/tools/libxc/xc_domain_restore_colo.c b/tools/libxc/xc_domain_restore_colo.c index 674e55e..77b63b6 100644 --- a/tools/libxc/xc_domain_restore_colo.c +++ b/tools/libxc/xc_domain_restore_colo.c @@ -143,3 +143,12 @@ void colo_free(struct restore_data *comm_data, void *data) xc_evtchn_close(colo_data->xce); free(colo_data); } + +char* colo_get_page(struct restore_data *comm_data, void *data, + unsigned long pfn) +{ + struct restore_colo_data *colo_data = data; + + set_bit(pfn, colo_data->dirty_pages); + return colo_data->pagebase + pfn * PAGE_SIZE; +} diff --git a/tools/libxc/xc_save_restore_colo.h b/tools/libxc/xc_save_restore_colo.h index b5416af..67c567c 100644 --- a/tools/libxc/xc_save_restore_colo.h +++ b/tools/libxc/xc_save_restore_colo.h @@ -6,5 +6,6 @@ extern int colo_init(struct restore_data *, void **); extern void colo_free(struct restore_data *, void *); +extern char *colo_get_page(struct restore_data *, void *, unsigned long); #endif -- 1.7.4