There are cases where we only need to use the hypercall buffer data, and do not use the xc_hypercall_buffer_t struct. DECLARE_HYPERCALL_BUFFER_SHADOW defines a user pointer that can allow us to access the hypercall buffer data but it also defines 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.
Example cases: In send_all_pages(), we only need to use the hypercall 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 retrieve the dirty bitmap. In send_some_pages(), we will also only need to use the dirty_bitmap. the retrieve dirty bitmap hypercall are done by the caller. Signed-off-by: Yang Hongyang <yan...@cn.fujitsu.com> CC: Ian Campbell <ian.campb...@citrix.com> CC: Ian Jackson <ian.jack...@eu.citrix.com> CC: Wei Liu <wei.l...@citrix.com> CC: Andrew Cooper <andrew.coop...@citrix.com> --- tools/libxc/include/xenctrl.h | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/libxc/include/xenctrl.h b/tools/libxc/include/xenctrl.h index a689caf..43fc31c 100644 --- a/tools/libxc/include/xenctrl.h +++ b/tools/libxc/include/xenctrl.h @@ -289,6 +289,7 @@ typedef struct xc_hypercall_buffer xc_hypercall_buffer_t; */ #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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel