Some fine-tuning in the virtual TPM scripts for hotpluging. The changes
authoremellor@leeni.uk.xensource.com <emellor@leeni.uk.xensource.com>
Sat, 24 Jun 2006 22:44:18 +0000 (23:44 +0100)
committeremellor@leeni.uk.xensource.com <emellor@leeni.uk.xensource.com>
Sat, 24 Jun 2006 22:44:18 +0000 (23:44 +0100)
enable a virtual TPM to save its state between reboots of the virtual
TPM implementation.

Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
Signed-off-by: Vincent Scarlata <vincent.r.scarlata@intel.com>
tools/examples/vtpm
tools/examples/vtpm-common.sh

index 14e79fcbbe92dc70a8dd4019c45a3f4382149882..cf8b50ff50ff5a94d416e365f3848ab6d9172f63 100644 (file)
@@ -9,15 +9,9 @@ case "$command" in
   add)
     vtpm_create_instance
   ;;
-  online)
-    vtpm_create_instance
-  ;;
   remove)
     vtpm_remove_instance
   ;;
-  offline)
-    vtpm_remove_instance
-  ;;
 esac
 
 if [ $vtpm_fatal_error -eq 0 ]; then
index f6e61c7971a775b6992e70a46fcbeea46c6370be..0a6c5430024f8e379e68031a949bf13dcd906454 100644 (file)
@@ -23,7 +23,7 @@ dir=$(dirname "$0")
 VTPMDB="/etc/xen/vtpm.db"
 
 #In the vtpm-impl file some commands should be defined:
-#      vtpm_create, vtpm_setup, vtpm_reset, etc. (see below)
+#      vtpm_create, vtpm_setup, vtpm_start, etc. (see below)
 #This should be indicated by setting VTPM_IMPL_DEFINED.
 if [ -r "$dir/vtpm-impl" ]; then
        . "$dir/vtpm-impl"
@@ -36,7 +36,7 @@ if [ -z "$VTPM_IMPL_DEFINED" ]; then
        function vtpm_setup() {
                true
        }
-       function vtpm_reset() {
+       function vtpm_start() {
                true
        }
        function vtpm_suspend() {
@@ -256,22 +256,22 @@ function vtpm_create_instance () {
                else
                        instance=$(vtpmdb_get_free_instancenum)
                fi
-               if [ "$reason" == "create" ]; then
-                       vtpm_create $instance
-               else
-                       vtpm_resume $instance $domname
-               fi
+
+               vtpm_create $instance
+
                if [ $vtpm_fatal_error -eq 0 ]; then
                        vtpmdb_add_instance $domname $instance
                fi
+       else
+               if [ "$reason" == "resume" ]; then
+                       vtpm_resume $instance
+               else
+                       vtpm_start $instance
+               fi
        fi
 
        release_lock vtpmdb
 
-       if [ $vtpm_fatal_error -eq 0 -a \
-            "$reason" == "create" ]; then
-               vtpm_reset $instance
-       fi
        xenstore_write $XENBUS_PATH/instance $instance
 }
 
@@ -283,19 +283,17 @@ function vtpm_remove_instance () {
        local instance reason domname
        domname=$(xenstore_read "$XENBUS_PATH"/domain)
 
-       if [ "$doname" != "" ]; then
+       if [ "$domname" != "" ]; then
                claim_lock vtpmdb
 
                instance=$(vtpmdb_find_instance $domname)
 
                if [ "$instance" != "0" ]; then
-                       if [ "$reason" == "suspend" ]; then
-                               vtpm_suspend $instance
-                       fi
+                       vtpm_suspend $instance
                fi
-       fi
 
-       release_lock vtpmdb
+               release_lock vtpmdb
+       fi
 }