diff options
author | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-02-16 22:39:55 +0100 |
---|---|---|
committer | kaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk> | 2006-02-16 22:39:55 +0100 |
commit | 8a61bdcadb98b5bc886899064cec3ed55126b6da (patch) | |
tree | 02f98a8e2244e5bd2d89f0953ec5c62b9e393d34 /tools/vtpm_manager | |
parent | 97af5bbb77c13c875074316bd449686f614a6eb9 (diff) | |
download | xen-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/Makefile | 2 | ||||
-rw-r--r-- | tools/vtpm_manager/manager/Makefile | 2 | ||||
-rw-r--r-- | tools/vtpm_manager/manager/vtpmd.c | 18 | ||||
-rw-r--r-- | tools/vtpm_manager/util/log.c | 2 |
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"); } |