<optional>
<ref name="filesystem"/>
</optional>
+ <optional>
+ <ref name="tpm"/>
+ </optional>
</element>
</define>
</element>
</define>
+ <define name="tpm">
+ <element name="tpm">
+ <ref name="supported"/>
+ <ref name="enum"/>
+ </element>
+ </define>
+
<define name="features">
<element name="features">
<optional>
}
+static void
+virDomainCapsDeviceTPMFormat(virBuffer *buf,
+ const virDomainCapsDeviceTPM *tpm)
+{
+ FORMAT_PROLOGUE(tpm);
+
+ ENUM_PROCESS(tpm, model, virDomainTPMModelTypeToString);
+ ENUM_PROCESS(tpm, backendModel, virDomainTPMBackendTypeToString);
+
+ FORMAT_EPILOGUE(tpm);
+}
+
+
static void
virDomainCapsDeviceFilesystemFormat(virBuffer *buf,
const virDomainCapsDeviceFilesystem *filesystem)
virDomainCapsDeviceHostdevFormat(&buf, &caps->hostdev);
virDomainCapsDeviceRNGFormat(&buf, &caps->rng);
virDomainCapsDeviceFilesystemFormat(&buf, &caps->filesystem);
+ virDomainCapsDeviceTPMFormat(&buf, &caps->tpm);
virBufferAdjustIndent(&buf, -2);
virBufferAddLit(&buf, "</devices>\n");
virDomainCapsEnum backendModel; /* virDomainRNGBackend */
};
+STATIC_ASSERT_ENUM(VIR_DOMAIN_TPM_MODEL_LAST);
+STATIC_ASSERT_ENUM(VIR_DOMAIN_TPM_TYPE_LAST);
+typedef struct _virDomainCapsDeviceTPM virDomainCapsDeviceTPM;
+struct _virDomainCapsDeviceTPM {
+ virTristateBool supported;
+ virDomainCapsEnum model; /* virDomainTPMModel */
+ virDomainCapsEnum backendModel; /* virDomainTPMBackendType */
+};
+
STATIC_ASSERT_ENUM(VIR_DOMAIN_FS_DRIVER_TYPE_LAST);
typedef struct _virDomainCapsDeviceFilesystem virDomainCapsDeviceFilesystem;
struct _virDomainCapsDeviceFilesystem {
virDomainCapsDeviceHostdev hostdev;
virDomainCapsDeviceRNG rng;
virDomainCapsDeviceFilesystem filesystem;
+ virDomainCapsDeviceTPM tpm;
/* add new domain devices here */
virDomainCapsFeatureGIC gic;