
+ + tmp_list = (char **)realloc(blist, + (bl_size+1) *
Style-wise, the rest of the code uses (bl_size + 1).
diff -r c0bd6c9a2c00 -r e3ea69df8ae9 libxkutil/xml_parse_test.c --- a/libxkutil/xml_parse_test.c Mon May 11 16:47:15 2009 -0300 +++ b/libxkutil/xml_parse_test.c Wed May 13 14:55:21 2009 -0300 @@ -28,6 +28,7 @@ static void print_os(struct domain *dom, FILE *d) { + int i;
if (dom->type == DOMAIN_XENPV) { print_value(d, "Domain Type", "Xen PV"); @@ -39,13 +40,18 @@ print_value(d, "Domain Type", "Xen FV"); print_value(d, "Type", dom->os_info.fv.type); print_value(d, "Loader", dom->os_info.fv.loader); - print_value(d, "Boot", dom->os_info.fv.boot);
+ for (i = 0; i < dom->os_info.fv.bootlist_size; i++) {
This should be bootlist_ct.
+ print_value(d, "Boot", dom->os_info.fv.bootlist[i]); + } } else if ((dom->type == DOMAIN_KVM) || (dom->type == DOMAIN_QEMU)) { print_value(d, "Domain Type", "KVM/QEMU"); print_value(d, "Type", dom->os_info.fv.type); print_value(d, "Loader", dom->os_info.fv.loader); - print_value(d, "Boot", dom->os_info.fv.boot); + + for (i = 0; i < dom->os_info.fv.bootlist_size; i++) {
Same here.
+ } + + for (i = 0; i < bl_size; i++) { + CMPIString *cm_str; + + cm_str = CMNewString(_BROKER, + (const char *)dominfo->os_info.fv.bootlist[i], + &s); + if (s.rc != CMPI_RC_OK) { + CU_DEBUG("Error adding item to BootDevice " + "list"); + continue; + } + + s = CMSetArrayElementAt(array, + i, + cm_str,
This should be (CMPIValue *)&cm_str
+ CMPI_string); + if (s.rc != CMPI_RC_OK) + CU_DEBUG("Error setting BootDevice array " + "element"); + } + + s = CMSetProperty(inst, + "BootDevices", + (CMPIValue *)array,
This should be (CMPIValue *)&array
+ + } else { + + CU_DEBUG("Failed to get BootDevices property"); + + tmp_str_arr = (char **)realloc(domain->os_info.fv.bootlist, + sizeof(char *)); + if (tmp_str_arr == NULL) + return 0; + + tmp_str_arr[0] = strdup("hd"); + + domain->os_info.fv.bootlist = tmp_str_arr; + domain->os_info.fv.bootlist_ct = 1; + }
Since you've added this here, I would remove the code that adds a default boot device in xmlgen - that allows you to remove some duplicate code. Plus, this follows convention - most of the defaults are set in VSMS - not in xmlgen itself. -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com