From: Uma Sharma Subject: [OPW PATCH V2] tools/xl: Call init function for libxl defined datatypes Date: Fri, 17 Oct 2014 18:58:25 +0530 Message-ID: <54411982.a9ca440a.2060.40cf@mx.google.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline 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: George.Dunlap@eu.citrix.com, Ian.Jackson@citrix.com, Wei.Liu2@citrix.com, Ian.Campbell@citrix.com List-Id: xen-devel@lists.xenproject.org This patch calls init function for libxl_domain_sched_params before passing it as reference to sched_domain_get() function in tools/libxl/xl_cmdimpl.c IDL generated libxl types should be used only after calling the init function even if the variable is simply being passed by reference as an output parameter to a libxl function Signed-off-by: Uma Sharma Acked-by: Wei Liu -- Changed since v1: -Calling _init before using libxl_dominfo type and _dispose after using in function main_list Signed-off-by: Uma Sharma -- diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index c734f79..c16083b 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -4354,6 +4354,7 @@ int main_list(int argc, char **argv) info_free = info; } else if (optind == argc-1) { uint32_t domid = find_domain(argv[optind]); + libxl_dominfo_init(&info_buf); rc = libxl_domain_info(ctx, &info_buf, domid); if (rc == ERROR_INVAL) { fprintf(stderr, "Error: Domain \'%s\' does not exist.\n", @@ -4366,6 +4367,7 @@ int main_list(int argc, char **argv) } info = &info_buf; nb_domain = 1; + libxl_dominfo_dispose(&info_buf); } else { help("list"); return 2; @@ -5215,6 +5217,8 @@ static int sched_credit_domain_output(int domid) printf("%-33s %4s %6s %4s\n", "Name", "ID", "Weight", "Cap"); return 0; } + + libxl_domain_sched_params_init(&scinfo); rc = sched_domain_get(LIBXL_SCHEDULER_CREDIT, domid, &scinfo); if (rc) return rc; @@ -5261,6 +5265,8 @@ static int sched_credit2_domain_output( printf("%-33s %4s %6s\n", "Name", "ID", "Weight"); return 0; } + + libxl_domain_sched_params_init(&scinfo); rc = sched_domain_get(LIBXL_SCHEDULER_CREDIT2, domid, &scinfo); if (rc) return rc; @@ -5286,6 +5292,8 @@ static int sched_sedf_domain_output( "Slice", "Latency", "Extra", "Weight"); return 0; } + + libxl_domain_sched_params_init(&scinfo); rc = sched_domain_get(LIBXL_SCHEDULER_SEDF, domid, &scinfo); if (rc) return rc;