diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c index 87c046e571..95de77abe9 100644 --- a/src/conf/node_device_conf.c +++ b/src/conf/node_device_conf.c @@ -270,14 +270,6 @@ virNodeDeviceCapVPDFormatCustomSystemField(virPCIVPDResourceCustom *field, virBu virNodeDeviceCapVPDFormatCustomField(buf, "system_field", field); } -static inline void -virNodeDeviceCapVPDFormatRegularField(virBuffer *buf, const char *keyword, const char *value) -{ - if (keyword == NULL || value == NULL) - return; - - virBufferAsprintf(buf, "<%s>%s\n", keyword, value, keyword); -} static void virNodeDeviceCapVPDFormat(virBuffer *buf, virPCIVPDResource *res) @@ -290,31 +282,33 @@ virNodeDeviceCapVPDFormat(virBuffer *buf, virPCIVPDResource *res) virBufferEscapeString(buf, "%s\n", res->name); if (res->ro != NULL) { - virBufferEscapeString(buf, "\n", "readonly"); - + virBufferAddLit(buf, "\n"); virBufferAdjustIndent(buf, 2); - virNodeDeviceCapVPDFormatRegularField(buf, "change_level", res->ro->change_level); - virNodeDeviceCapVPDFormatRegularField(buf, "manufacture_id", res->ro->manufacture_id); - virNodeDeviceCapVPDFormatRegularField(buf, "part_number", res->ro->part_number); - virNodeDeviceCapVPDFormatRegularField(buf, "serial_number", res->ro->serial_number); + + virBufferEscapeString(buf, "%s\n", res->ro->change_level); + virBufferEscapeString(buf, "%s\n", res->ro->manufacture_id); + virBufferEscapeString(buf, "%s\n", res->ro->part_number); + virBufferEscapeString(buf, "%s\n", res->ro->serial_number); + g_ptr_array_foreach(res->ro->vendor_specific, (GFunc)virNodeDeviceCapVPDFormatCustomVendorField, buf); - virBufferAdjustIndent(buf, -2); + virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "\n"); } if (res->rw != NULL) { - virBufferEscapeString(buf, "\n", "readwrite"); - + virBufferAddLit(buf, "\n"); virBufferAdjustIndent(buf, 2); - virNodeDeviceCapVPDFormatRegularField(buf, "asset_tag", res->rw->asset_tag); + + virBufferEscapeString(buf, "%s\n", res->rw->asset_tag); + g_ptr_array_foreach(res->rw->vendor_specific, (GFunc)virNodeDeviceCapVPDFormatCustomVendorField, buf); g_ptr_array_foreach(res->rw->system_specific, (GFunc)virNodeDeviceCapVPDFormatCustomSystemField, buf); - virBufferAdjustIndent(buf, -2); + virBufferAdjustIndent(buf, -2); virBufferAddLit(buf, "\n"); }