From: Wei Liu Date: Wed, 18 May 2016 15:19:45 +0000 (+0100) Subject: libxl: consolidate casting to xc psr type to a function X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~1103 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=a396c2549e079ab2f644aab8b2e7f47a8d0e3937;p=xen.git libxl: consolidate casting to xc psr type to a function In commit 31268fea (libxl: fix passing the type argument to xc_psr_*), casting to xc psr type was done at each call site. This patch consolidates casting into a function to avoid casting at each conversion point. Each call site remains more type safe. Signed-off-by: Wei Liu Acked-by: Ian Jackson Release-acked-by: Wei Liu --- diff --git a/tools/libxl/libxl_psr.c b/tools/libxl/libxl_psr.c index 40f2d5fe11..99733f61cc 100644 --- a/tools/libxl/libxl_psr.c +++ b/tools/libxl/libxl_psr.c @@ -293,12 +293,18 @@ out: return rc; } +static inline xc_psr_cat_type libxl__psr_cbm_type_to_libxc_psr_cat_type( + libxl_psr_cbm_type type) +{ + BUILD_BUG_ON(sizeof(libxl_psr_cbm_type) != sizeof(xc_psr_cat_type)); + return (xc_psr_cat_type)type; +} + int libxl_psr_cat_set_cbm(libxl_ctx *ctx, uint32_t domid, libxl_psr_cbm_type type, libxl_bitmap *target_map, uint64_t cbm) { GC_INIT(ctx); - BUILD_BUG_ON(sizeof(libxl_psr_cbm_type) != sizeof(xc_psr_cat_type)); int rc; int socketid, nr_sockets; @@ -309,9 +315,13 @@ int libxl_psr_cat_set_cbm(libxl_ctx *ctx, uint32_t domid, } libxl_for_each_set_bit(socketid, *target_map) { + xc_psr_cat_type xc_type; + if (socketid >= nr_sockets) break; - if (xc_psr_cat_set_domain_data(ctx->xch, domid, (xc_psr_cat_type)type, + + xc_type = libxl__psr_cbm_type_to_libxc_psr_cat_type(type); + if (xc_psr_cat_set_domain_data(ctx->xch, domid, xc_type, socketid, cbm)) { libxl__psr_cat_log_err_msg(gc, errno); rc = ERROR_FAIL; @@ -329,8 +339,9 @@ int libxl_psr_cat_get_cbm(libxl_ctx *ctx, uint32_t domid, { GC_INIT(ctx); int rc = 0; + xc_psr_cat_type xc_type = libxl__psr_cbm_type_to_libxc_psr_cat_type(type); - if (xc_psr_cat_get_domain_data(ctx->xch, domid, (xc_psr_cat_type)type, + if (xc_psr_cat_get_domain_data(ctx->xch, domid, xc_type, target, cbm_r)) { libxl__psr_cat_log_err_msg(gc, errno); rc = ERROR_FAIL;