aboutsummaryrefslogtreecommitdiffstats
path: root/tools/examples/vtpm-common.sh
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-07-10 17:36:41 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2006-07-10 17:36:41 +0100
commitb3685ce3b8b39bdd893893c8d3fa84e29fb2c2c2 (patch)
tree9e95c90717b4f0c677053fac5fbfa2884298b54e /tools/examples/vtpm-common.sh
parent3863ac76d1dd97c18e5540879b9d86a536caa8e9 (diff)
downloadxen-b3685ce3b8b39bdd893893c8d3fa84e29fb2c2c2.tar.gz
xen-b3685ce3b8b39bdd893893c8d3fa84e29fb2c2c2.tar.bz2
xen-b3685ce3b8b39bdd893893c8d3fa84e29fb2c2c2.zip
Move the content of the script file vtpm-addtodb into the
vtpm-common.sh script. The newly created function 'vtpm_add_and_activate' also assigns the instance number to the xenstore entry to activate the backend. Renaming of isLocalAddress function to vtpm_isLocalAddress. Signed-off-by: Stefan Berger <stefanb@us.ibm.com>
Diffstat (limited to 'tools/examples/vtpm-common.sh')
-rw-r--r--tools/examples/vtpm-common.sh48
1 files changed, 41 insertions, 7 deletions
diff --git a/tools/examples/vtpm-common.sh b/tools/examples/vtpm-common.sh
index e4210d1669..2e4c89dfdb 100644
--- a/tools/examples/vtpm-common.sh
+++ b/tools/examples/vtpm-common.sh
@@ -24,12 +24,9 @@ VTPMDB="/etc/xen/vtpm.db"
#In the vtpm-impl file some commands should be defined:
# 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"
-fi
-
-if [ -z "$VTPM_IMPL_DEFINED" ]; then
+else
function vtpm_create () {
true
}
@@ -245,6 +242,12 @@ function vtpm_create_instance () {
claim_lock vtpmdb
instance=$(vtpmdb_find_instance $domname)
+
+ if [ "$instance" == "0" -a "$reason" != "create" ]; then
+ release_lock vtpmdb
+ return
+ fi
+
if [ "$instance" == "0" ]; then
#Try to give the preferred instance to the domain
instance=$(xenstore_read "$XENBUS_PATH"/pref_instance)
@@ -317,7 +320,7 @@ function vtpm_delete_instance () {
# "-1" : the given machine name is invalid
# "0" : this is not an address of this machine
# "1" : this is an address local to this machine
-function isLocalAddress() {
+function vtpm_isLocalAddress() {
local addr res
addr=$(ping $1 -c 1 | \
gawk '{ print substr($3,2,length($3)-2); exit }')
@@ -347,7 +350,7 @@ function isLocalAddress() {
# 2nd: name of the domain to migrate
# 3rd: the migration step to perform
function vtpm_migration_step() {
- local res=$(isLocalAddress $1)
+ local res=$(vtpm_isLocalAddress $1)
if [ "$res" == "0" ]; then
vtpm_migrate $1 $2 $3
fi
@@ -361,8 +364,39 @@ function vtpm_migration_step() {
# 3rd: the last successful migration step that was done
function vtpm_recover() {
local res
- res=$(isLocalAddress $1)
+ res=$(vtpm_isLocalAddress $1)
if [ "$res" == "0" ]; then
vtpm_migrate_recover $1 $2 $3
fi
}
+
+
+#Determine the domain id given a domain's name.
+#1st parameter: name of the domain
+#return value: domain id or -1 if domain id could not be determined
+function vtpm_domid_from_name () {
+ local id name ids
+ ids=$(xenstore-list /local/domain)
+ for id in $ids; do
+ name=$(xenstore-read /local/domain/$id/name)
+ if [ "$name" == "$1" ]; then
+ echo "$id"
+ return
+ fi
+ done
+ echo "-1"
+}
+
+
+#Add a virtual TPM instance number and its associated domain name
+#to the VTPMDB file and activate usage of this virtual TPM instance
+#by writing the instance number into the xenstore
+#1st parm: name of virtual machine
+#2nd parm: instance of assoicate virtual TPM
+function vtpm_add_and_activate() {
+ local domid=$(vtpm_domid_from_name $1)
+ if [ "$domid" != "-1" ]; then
+ vtpmdb_add_instance $1 $2
+ xenstore-write backend/vtpm/$domid/0/instance $2
+ fi
+}