The TPM code currently accepts pointer to a domain definition.
This is okay for now, but in near future the security driver APIs
it calls will require domain object. Therefore, change the TPM
code to accept the domain object pointer.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: John Ferlan <jferlan@redhat.com>
int
qemuExtDevicesStart(virQEMUDriverPtr driver,
- virDomainDefPtr def,
+ virDomainObjPtr vm,
qemuDomainLogContextPtr logCtxt)
{
int ret = 0;
- if (qemuExtDevicesInitPaths(driver, def) < 0)
+ if (qemuExtDevicesInitPaths(driver, vm->def) < 0)
return -1;
- if (def->tpm)
- ret = qemuExtTPMStart(driver, def, logCtxt);
+ if (vm->def->tpm)
+ ret = qemuExtTPMStart(driver, vm, logCtxt);
return ret;
}
void
qemuExtDevicesStop(virQEMUDriverPtr driver,
- virDomainDefPtr def)
+ virDomainObjPtr vm)
{
- if (qemuExtDevicesInitPaths(driver, def) < 0)
+ if (qemuExtDevicesInitPaths(driver, vm->def) < 0)
return;
- if (def->tpm)
- qemuExtTPMStop(driver, def);
+ if (vm->def->tpm)
+ qemuExtTPMStop(driver, vm);
}
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuExtDevicesStart(virQEMUDriverPtr driver,
- virDomainDefPtr def,
+ virDomainObjPtr vm,
qemuDomainLogContextPtr logCtxt)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
ATTRIBUTE_RETURN_CHECK;
void qemuExtDevicesStop(virQEMUDriverPtr driver,
- virDomainDefPtr def)
+ virDomainObjPtr vm)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
bool qemuExtDevicesHasDevice(virDomainDefPtr def);
if (qemuProcessGenID(vm, flags) < 0)
goto cleanup;
- if (qemuExtDevicesStart(driver, vm->def, logCtxt) < 0)
+ if (qemuExtDevicesStart(driver, vm, logCtxt) < 0)
goto cleanup;
VIR_DEBUG("Building emulator command line");
cleanup:
if (ret < 0)
- qemuExtDevicesStop(driver, vm->def);
+ qemuExtDevicesStop(driver, vm);
qemuDomainSecretDestroy(vm);
virCommandFree(cmd);
virObjectUnref(logCtxt);
qemuDomainCleanupRun(driver, vm);
- qemuExtDevicesStop(driver, vm->def);
+ qemuExtDevicesStop(driver, vm);
/* Stop autodestroy in case guest is restarted */
qemuProcessAutoDestroyRemove(driver, vm);
* qemuSecurityStartTPMEmulator:
*
* @driver: the QEMU driver
- * @def: the domain definition
+ * @vm: the domain object
* @cmd: the command to run
* @uid: the uid to run the emulator
* @gid: the gid to run the emulator
*/
int
qemuSecurityStartTPMEmulator(virQEMUDriverPtr driver,
- virDomainDefPtr def,
+ virDomainObjPtr vm,
virCommandPtr cmd,
uid_t uid,
gid_t gid,
transactionStarted = true;
if (virSecurityManagerSetTPMLabels(driver->securityManager,
- def) < 0) {
+ vm->def) < 0) {
virSecurityManagerTransactionAbort(driver->securityManager);
return -1;
}
transactionStarted = false;
if (virSecurityManagerSetChildProcessLabel(driver->securityManager,
- def, cmd) < 0)
+ vm->def, cmd) < 0)
goto cleanup;
if (virSecurityManagerPreFork(driver->securityManager) < 0)
virSecurityManagerTransactionStart(driver->securityManager) >= 0)
transactionStarted = true;
- virSecurityManagerRestoreTPMLabels(driver->securityManager, def);
+ virSecurityManagerRestoreTPMLabels(driver->securityManager, vm->def);
if (transactionStarted &&
virSecurityManagerTransactionCommit(driver->securityManager, -1) < 0)
void
qemuSecurityCleanupTPMEmulator(virQEMUDriverPtr driver,
- virDomainDefPtr def)
+ virDomainObjPtr vm)
{
bool transactionStarted = false;
if (virSecurityManagerTransactionStart(driver->securityManager) >= 0)
transactionStarted = true;
- virSecurityManagerRestoreTPMLabels(driver->securityManager, def);
+ virSecurityManagerRestoreTPMLabels(driver->securityManager, vm->def);
if (transactionStarted &&
virSecurityManagerTransactionCommit(driver->securityManager, -1) < 0)
virDomainChrDefPtr chr);
int qemuSecurityStartTPMEmulator(virQEMUDriverPtr driver,
- virDomainDefPtr def,
+ virDomainObjPtr vm,
virCommandPtr cmd,
uid_t uid,
gid_t gid,
int *cmdret);
void qemuSecurityCleanupTPMEmulator(virQEMUDriverPtr driver,
- virDomainDefPtr def);
+ virDomainObjPtr vm);
int qemuSecurityDomainSetPathLabel(virQEMUDriverPtr driver,
virDomainObjPtr vm,
*/
static int
qemuExtTPMStartEmulator(virQEMUDriverPtr driver,
- virDomainDefPtr def,
+ virDomainObjPtr vm,
qemuDomainLogContextPtr logCtxt)
{
int ret = -1;
int exitstatus = 0;
char *errbuf = NULL;
virQEMUDriverConfigPtr cfg;
- virDomainTPMDefPtr tpm = def->tpm;
- char *shortName = virDomainDefGetShortName(def);
+ virDomainTPMDefPtr tpm = vm->def->tpm;
+ char *shortName = virDomainDefGetShortName(vm->def);
int cmdret = 0, timeout, rc;
pid_t pid;
/* stop any left-over TPM emulator for this VM */
qemuTPMEmulatorStop(cfg->swtpmStateDir, shortName);
- if (!(cmd = qemuTPMEmulatorBuildCommand(tpm, def->name, def->uuid,
+ if (!(cmd = qemuTPMEmulatorBuildCommand(tpm, vm->def->name, vm->def->uuid,
driver->privileged,
cfg->swtpm_user,
cfg->swtpm_group,
virCommandSetErrorBuffer(cmd, &errbuf);
- if (qemuSecurityStartTPMEmulator(driver, def, cmd,
+ if (qemuSecurityStartTPMEmulator(driver, vm, cmd,
cfg->swtpm_user, cfg->swtpm_group,
&exitstatus, &cmdret) < 0)
goto cleanup;
int
qemuExtTPMStart(virQEMUDriverPtr driver,
- virDomainDefPtr def,
+ virDomainObjPtr vm,
qemuDomainLogContextPtr logCtxt)
{
int ret = 0;
- virDomainTPMDefPtr tpm = def->tpm;
+ virDomainTPMDefPtr tpm = vm->def->tpm;
switch (tpm->type) {
case VIR_DOMAIN_TPM_TYPE_EMULATOR:
- ret = qemuExtTPMStartEmulator(driver, def, logCtxt);
+ ret = qemuExtTPMStartEmulator(driver, vm, logCtxt);
break;
case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
case VIR_DOMAIN_TPM_TYPE_LAST:
void
qemuExtTPMStop(virQEMUDriverPtr driver,
- virDomainDefPtr def)
+ virDomainObjPtr vm)
{
virQEMUDriverConfigPtr cfg = virQEMUDriverGetConfig(driver);
char *shortName = NULL;
- switch (def->tpm->type) {
+ switch (vm->def->tpm->type) {
case VIR_DOMAIN_TPM_TYPE_EMULATOR:
- shortName = virDomainDefGetShortName(def);
+ shortName = virDomainDefGetShortName(vm->def);
if (!shortName)
goto cleanup;
qemuTPMEmulatorStop(cfg->swtpmStateDir, shortName);
- qemuSecurityCleanupTPMEmulator(driver, def);
+ qemuSecurityCleanupTPMEmulator(driver, vm);
break;
case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH:
case VIR_DOMAIN_TPM_TYPE_LAST:
ATTRIBUTE_NONNULL(1);
int qemuExtTPMStart(virQEMUDriverPtr driver,
- virDomainDefPtr def,
+ virDomainObjPtr vm,
qemuDomainLogContextPtr logCtxt)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3)
ATTRIBUTE_RETURN_CHECK;
void qemuExtTPMStop(virQEMUDriverPtr driver,
- virDomainDefPtr def)
+ virDomainObjPtr vm)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuExtTPMSetupCgroup(virQEMUDriverPtr driver,