static char *
virTPMBinaryGetPath(virTPMBinary binary)
{
- char *s = NULL;
-
- virMutexLock(&swtpm_tools_lock);
+ VIR_LOCK_GUARD lock = virLockGuardLock(&swtpm_tools_lock);
if (virTPMEmulatorInit(false) < 0)
- goto cleanup;
-
- s = g_strdup(swtpmBinaries[binary].path);
+ return NULL;
- cleanup:
- virMutexUnlock(&swtpm_tools_lock);
- return s;
+ return g_strdup(swtpmBinaries[binary].path);
}
char *
bool virTPMHasSwtpm(void)
{
- bool ret = false;
-
- virMutexLock(&swtpm_tools_lock);
+ VIR_LOCK_GUARD lock = virLockGuardLock(&swtpm_tools_lock);
if (virTPMEmulatorInit(true) < 0)
- goto cleanup;
+ return false;
- ret = swtpmBinaries[VIR_TPM_BINARY_SWTPM].path != NULL &&
+ return swtpmBinaries[VIR_TPM_BINARY_SWTPM].path != NULL &&
swtpmBinaries[VIR_TPM_BINARY_SWTPM_SETUP].path != NULL &&
swtpmBinaries[VIR_TPM_BINARY_SWTPM_IOCTL].path != NULL;
-
- cleanup:
- virMutexUnlock(&swtpm_tools_lock);
- return ret;
}
/* virTPMExecGetCaps
virTPMBinaryGetCaps(virTPMBinary binary,
unsigned int cap)
{
- bool ret = false;
-
- virMutexLock(&swtpm_tools_lock);
+ VIR_LOCK_GUARD lock = virLockGuardLock(&swtpm_tools_lock);
if (virTPMEmulatorInit(false) < 0)
- goto cleanup;
+ return false;
if (!swtpmBinaries[binary].caps &&
swtpmBinaries[binary].capsParse) {
swtpmBinaries[binary].path,
swtpmBinaries[binary].parm);
}
- if (swtpmBinaries[binary].caps)
- ret = virBitmapIsBitSet(swtpmBinaries[binary].caps, cap);
- cleanup:
- virMutexUnlock(&swtpm_tools_lock);
- return ret;
+ if (!swtpmBinaries[binary].caps)
+ return false;
+
+ return virBitmapIsBitSet(swtpmBinaries[binary].caps, cap);
}
bool