aboutsummaryrefslogtreecommitdiffstats
path: root/tools/vtpm_manager
diff options
context:
space:
mode:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-02-16 22:39:55 +0100
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>2006-02-16 22:39:55 +0100
commit8a61bdcadb98b5bc886899064cec3ed55126b6da (patch)
tree02f98a8e2244e5bd2d89f0953ec5c62b9e393d34 /tools/vtpm_manager
parent97af5bbb77c13c875074316bd449686f614a6eb9 (diff)
downloadxen-8a61bdcadb98b5bc886899064cec3ed55126b6da.tar.gz
xen-8a61bdcadb98b5bc886899064cec3ed55126b6da.tar.bz2
xen-8a61bdcadb98b5bc886899064cec3ed55126b6da.zip
VTPM Tools: Fix threading bug in vtpm_manager while using NPTL. Now
supports Linux Threads and NPTL threads. Also clean up vtpm Makefile. Signed-off-by: Vinnie Scarlata <vincent.r.scarlata@intel.com>
Diffstat (limited to 'tools/vtpm_manager')
-rw-r--r--tools/vtpm_manager/Makefile2
-rw-r--r--tools/vtpm_manager/manager/Makefile2
-rw-r--r--tools/vtpm_manager/manager/vtpmd.c18
-rw-r--r--tools/vtpm_manager/util/log.c2
4 files changed, 10 insertions, 14 deletions
diff --git a/tools/vtpm_manager/Makefile b/tools/vtpm_manager/Makefile
index 16825a2279..f57b82facb 100644
--- a/tools/vtpm_manager/Makefile
+++ b/tools/vtpm_manager/Makefile
@@ -9,7 +9,7 @@ OPENSSL_HEADER = /usr/include/openssl/crypto.h
all: build
build:
- if [ -e $(OPENSSL_HEADER) ]; then \
+ @if [ -e $(OPENSSL_HEADER) ]; then \
@set -e; for subdir in $(SUBDIRS); do \
$(MAKE) -C $$subdir $@; \
done; \
diff --git a/tools/vtpm_manager/manager/Makefile b/tools/vtpm_manager/manager/Makefile
index 6bf28e6066..e6f20f5a5e 100644
--- a/tools/vtpm_manager/manager/Makefile
+++ b/tools/vtpm_manager/manager/Makefile
@@ -24,4 +24,4 @@ $(BIN): $(OBJS)
# libraries
LIBS += ../tcs/libTCS.a ../util/libTCGUtils.a ../crypto/libtcpaCrypto.a
-LIBS += -lcrypto -lpthread -lrt -lm
+LIBS += -lcrypto -lpthread -lm
diff --git a/tools/vtpm_manager/manager/vtpmd.c b/tools/vtpm_manager/manager/vtpmd.c
index 8e07ac3587..a9fb9fedff 100644
--- a/tools/vtpm_manager/manager/vtpmd.c
+++ b/tools/vtpm_manager/manager/vtpmd.c
@@ -54,21 +54,15 @@ void signal_handler(int reason) {
#ifndef VTPM_MULTI_VM
if (pthread_equal(pthread_self(), vtpm_globals->master_pid)) {
- if (reason >= 0) { // Reason is a signal
- vtpmloginfo(VTPM_LOG_VTPM, "VTPM Manager shutting down for signal %d.\n", reason);
- } else {// Reason is a TPM_RESULT * -1
- vtpmloginfo(VTPM_LOG_VTPM,"VTPM Manager shuting down for: %s\n", tpm_get_error_name(-1 * reason) );
- }
-
- return;
+ vtpmloginfo(VTPM_LOG_VTPM, "VTPM Manager shutting down for signal %d.\n", reason);
} else {
+ // For old Linux Thread machines, signals are delivered to each thread. Deal with them.
vtpmloginfo(VTPM_LOG_VTPM, "Child shutting down\n");
pthread_exit(NULL);
}
-#else
+#endif
VTPM_Stop_Service();
exit(-1);
-#endif
}
struct sigaction ctl_c_handler;
@@ -127,8 +121,10 @@ int main(int argc, char **argv) {
//Join the other threads until exit time.
pthread_join(be_thread, NULL);
pthread_join(dmi_thread, NULL);
-
+#endif
+
+ vtpmlogerror(VTPM_LOG_VTPM, "VTPM Manager shut down unexpectedly.\n");
+
VTPM_Stop_Service();
return 0;
-#endif
}
diff --git a/tools/vtpm_manager/util/log.c b/tools/vtpm_manager/util/log.c
index 38382d7625..75fe91a12a 100644
--- a/tools/vtpm_manager/util/log.c
+++ b/tools/vtpm_manager/util/log.c
@@ -138,5 +138,5 @@ const char* tpm_get_error_name (TPM_RESULT code) {
if (code == error_msgs[i].code)
return error_msgs[i].code_name;
- return "Failed to find code name for given code";
+ return("Unknown Error Code");
}