Index: utility/tpm_init_temp_fix.c |
diff --git a/utility/tpm_init_temp_fix.c b/utility/tpm_init_temp_fix.c |
index 93000ad079277db47f7c48ea9a260e43741551d4..b641813321b4c5a7d949e1aaf0e6270a08745ce9 100644 |
--- a/utility/tpm_init_temp_fix.c |
+++ b/utility/tpm_init_temp_fix.c |
@@ -13,14 +13,15 @@ |
* This also enables the TPM if it is disabled, and activates it if it is |
* deactivated. |
* |
- * Exit status: 0 for normal, 1 for errors (see syslog), 2 for normal but needs |
- * reboot. |
+ * Exit status always 0. Prints "reboot" to request reboot, "fail" for errors, |
+ * "success" when everything worked. |
*/ |
-#include "tlcl.h" |
- |
+#include <stdio.h> |
#include <syslog.h> |
+#include "tlcl.h" |
+ |
int main(int argc, char* argv[]) { |
uint32_t result; |
uint8_t disable, deactivated; |
@@ -33,34 +34,41 @@ int main(int argc, char* argv[]) { |
result = TlclSelfTestFull(); |
if (result != 0) { |
syslog(pri, "TPM selftest failed with code 0x%x\n", result); |
- return 1; |
+ printf("fail\n"); |
+ return 0; |
} |
} |
/* Optional one-time enabling of TPM. */ |
result = TlclAssertPhysicalPresence(); |
if (result != 0) { |
syslog(pri, "TPM assertpp failed with code 0x%x\n", result); |
- return 1; |
+ printf("fail\n"); |
+ return 0; |
} |
result = TlclGetFlags(&disable, &deactivated, NULL); |
if (result != 0) { |
syslog(pri, "TPM getflags failed with code 0x%x\n", result); |
- return 1; |
+ printf("fail\n"); |
+ return 0; |
} |
if (disable) { |
result = TlclSetEnable(); |
if (result != 0) { |
syslog(pri, "TPM physical enable failed with code 0x%x\n", result); |
- return 1; |
+ printf("fail\n"); |
+ return 0; |
} |
} |
if (deactivated) { |
result = TlclSetDeactivated(0); |
if (result != 0) { |
syslog(pri, "TPM physical activate failed with code 0x%x\n", result); |
- return 1; |
+ printf("fail\n"); |
+ } else { |
+ printf("reboot\n"); |
} |
- return 2; /* needs reboot */ |
+ return 0; /* needs reboot */ |
} |
+ printf("success\n"); |
return 0; |
} |