Android-cuttlefish cvd tool
Classes | Public Member Functions | Private Attributes | List of all members
cuttlefish::TpmResourceManager Class Reference

#include <tpm_resource_manager.h>

Classes

class  ObjectSlot
 

Public Member Functions

 TpmResourceManager (ESYS_CONTEXT *esys)
 
 ~TpmResourceManager ()
 
EsysLock Esys ()
 
std::shared_ptr< ObjectSlotReserveSlot ()
 

Private Attributes

std::mutex mu_
 
ESYS_CONTEXT * esys_
 
const std::uint32_t maximum_object_slots_
 
std::atomic< std::uint32_t > used_slots_
 

Detailed Description

Object slot manager for TPM memory. The TPM can only hold a fixed number of objects at once. Some TPM operations are defined to consume slots either temporarily or until the resource is explicitly unloaded.

This implementation is intended for future extension, to track what objects are resident if we run out of space, or implement optimizations like LRU caching to avoid re-loading often-used resources.

Constructor & Destructor Documentation

◆ TpmResourceManager()

cuttlefish::TpmResourceManager::TpmResourceManager ( ESYS_CONTEXT *  esys)

◆ ~TpmResourceManager()

cuttlefish::TpmResourceManager::~TpmResourceManager ( )

Member Function Documentation

◆ Esys()

EsysLock cuttlefish::TpmResourceManager::Esys ( )

◆ ReserveSlot()

TpmObjectSlot cuttlefish::TpmResourceManager::ReserveSlot ( )

Member Data Documentation

◆ esys_

ESYS_CONTEXT* cuttlefish::TpmResourceManager::esys_
private

◆ maximum_object_slots_

const std::uint32_t cuttlefish::TpmResourceManager::maximum_object_slots_
private

◆ mu_

std::mutex cuttlefish::TpmResourceManager::mu_
private

◆ used_slots_

std::atomic<std::uint32_t> cuttlefish::TpmResourceManager::used_slots_
private

The documentation for this class was generated from the following files: