From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yang Hongyang Subject: [PATCH v5 05/14] tools/libxc: unused attribute in DECLARE_HYPERCALL_BUFFER_SHADOW Date: Wed, 13 May 2015 09:53:55 +0800 Message-ID: <1431482044-21286-6-git-send-email-yanghy@cn.fujitsu.com> References: <1431482044-21286-1-git-send-email-yanghy@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1431482044-21286-1-git-send-email-yanghy@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: xen-devel@lists.xen.org Cc: wei.liu2@citrix.com, ian.campbell@citrix.com, wency@cn.fujitsu.com, andrew.cooper3@citrix.com, yunhong.jiang@intel.com, eddie.dong@intel.com, rshriram@cs.ubc.ca, ian.jackson@eu.citrix.com List-Id: xen-devel@lists.xenproject.org There are cases that we only need to use the hypercall buffer data, and do not use the xc_hypercall_buffer_t struct. DECLARE_HYPERCALL_BUFFER_SHADOW define a user pointer that can allow us to access the hypercall buffer data but it also define a xc_hypercall_buffer_t that we don't use, the compiler will report arg unused error. add __attribute__((unused)) before xc_hypercall_buffer_t to avoid the compiler error. The cases for example: In send_all_pages(), we only need to use the haypercall buffer data which is a dirty bitmap, we set the dirty bitmap to all dirty and call send_dirty_pages, we will not use the xc_hypercall_buffer_t and hypercall to retrive the dirty bitmap. In send_some_pages(), we will also only need to use the dirty_bitmap. the retrive dirty bitmap hypercall are done by the caller. Signed-off-by: Yang Hongyang CC: Ian Campbell CC: Ian Jackson CC: Wei Liu CC: Andrew Cooper --- tools/libxc/include/xenctrl.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h index a689caf..0804257 100644 --- a/tools/libxc/include/xenctrl.h +++ b/tools/libxc/include/xenctrl.h @@ -284,11 +284,15 @@ typedef struct xc_hypercall_buffer xc_hypercall_buffer_t; * Useful when a hypercall buffer is passed to a function and access * via the user pointer is required. * + * The shadow xc_hypercall_buffer_t may be unused, add + * __attribute__((unused)) to avoid compiler error. + * * See DECLARE_HYPERCALL_BUFFER_ARGUMENT() if the user pointer is not * required. */ #define DECLARE_HYPERCALL_BUFFER_SHADOW(_type, _name, _hbuf) \ _type *(_name) = (_hbuf)->hbuf; \ + __attribute__((unused)) \ xc_hypercall_buffer_t XC__HYPERCALL_BUFFER_NAME(_name) = { \ .hbuf = (void *)-1, \ .param_shadow = (_hbuf), \ -- 1.9.1