#! /bin/sh -e
# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Finds the largest NV space that can be defined on the TPM in this state
# (i.e. without removing existing spaces).
#
# The TPM must be unowned, and physical presence must be on.

low=1
high=1500
try=$high

# Binary search with no upper bound
while true; do
  ## echo trying $try [ $low $high ]
  if /usr/bin/tpmc definespace 0xf004 $(printf "%#x" $try) 0x1 \
                                                      > /dev/null 2>&1; then
    # definespace success: end, or $try must grow
    if [ $try -eq $low ]; then
      echo $low
      exit 0
    elif [ $try -lt $high ]; then
      low=$try
      try=$(( ( $high + $low ) / 2 ))
    else
      # special case: when try == high, expand the search
      low=$try
      try=$(( $try * 2 ))
      high=$try
    fi
  else
    # check for unexpected errors
    result=$?
    if [ $result -ne 17 ]; then
      echo running tpmc definespace 0xf004 0x1 0x1
      /usr/bin/tpmc definespace 0xf004 0x1 0x1
      echo please correct this condition and try again
      exit 1
    fi
    # definespace failure: end, or $try must shrink
    if [ $try -eq $low ]; then
      echo 0
      exit 0
    fi
    high=$try
    try=$(( ( $high + $low ) / 2 ))
  fi
done
