Android-cuttlefish cvd tool
Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
android::incfs::IncFsFileMap Class Referencefinal

#include <map_ptr.h>

Public Member Functions

 IncFsFileMap () noexcept
 
 IncFsFileMap (IncFsFileMap &&) noexcept
 
IncFsFileMapoperator= (IncFsFileMap &&) noexcept
 
 ~IncFsFileMap () noexcept
 
bool Create (int fd, off64_t offset, size_t length, const char *file_name)
 
bool Create (int fd, off64_t offset, size_t length, const char *file_name, bool verify)
 
bool CreateForceVerification (int fd, off64_t offset, size_t length, const char *file_name, bool verify)
 
template<typename T = void>
map_ptr< T > data () const
 
const void * unsafe_data () const
 
size_t length () const
 
off64_t offset () const
 
const char * file_name () const
 
bool Verify (const uint8_t *const &data_start, const uint8_t *const &data_end, const uint8_t **prev_verified_block) const
 

Private Types

using bucket_t = uint8_t
 

Private Member Functions

 DISALLOW_COPY_AND_ASSIGN (IncFsFileMap)
 

Private Attributes

int fd_ = -1
 
bool verification_enabled_ = false
 
size_t start_block_offset_ = 0
 
const uint8_t * start_block_ptr_ = nullptr
 
std::unique_ptr< android::FileMap > map_
 
std::vector< std::atomic< bucket_t > > loaded_blocks_
 

Static Private Attributes

static constexpr size_t kBucketBits = sizeof(bucket_t) * 8U
 

Friends

template<typename , bool >
struct map_ptr
 

Member Typedef Documentation

◆ bucket_t

using android::incfs::IncFsFileMap::bucket_t = uint8_t
private

Constructor & Destructor Documentation

◆ IncFsFileMap() [1/2]

android::incfs::IncFsFileMap::IncFsFileMap ( )
noexcept

◆ IncFsFileMap() [2/2]

android::incfs::IncFsFileMap::IncFsFileMap ( IncFsFileMap &&  )
noexcept

◆ ~IncFsFileMap()

android::incfs::IncFsFileMap::~IncFsFileMap ( )
noexcept

Member Function Documentation

◆ Create() [1/2]

bool android::incfs::IncFsFileMap::Create ( int  fd,
off64_t  offset,
size_t  length,
const char *  file_name 
)

◆ Create() [2/2]

bool android::incfs::IncFsFileMap::Create ( int  fd,
off64_t  offset,
size_t  length,
const char *  file_name,
bool  verify 
)

◆ CreateForceVerification()

bool android::incfs::IncFsFileMap::CreateForceVerification ( int  fd,
off64_t  offset,
size_t  length,
const char *  file_name,
bool  verify 
)

◆ data()

template<typename T = void>
map_ptr< T > android::incfs::IncFsFileMap::data ( ) const
inline

◆ DISALLOW_COPY_AND_ASSIGN()

android::incfs::IncFsFileMap::DISALLOW_COPY_AND_ASSIGN ( IncFsFileMap  )
private

◆ file_name()

const char * android::incfs::IncFsFileMap::file_name ( ) const

◆ length()

size_t android::incfs::IncFsFileMap::length ( ) const

◆ offset()

off64_t android::incfs::IncFsFileMap::offset ( ) const

◆ operator=()

IncFsFileMap & android::incfs::IncFsFileMap::operator= ( IncFsFileMap &&  )
noexcept

◆ unsafe_data()

const void * android::incfs::IncFsFileMap::unsafe_data ( ) const

◆ Verify()

bool android::incfs::IncFsFileMap::Verify ( const uint8_t *const &  data_start,
const uint8_t *const &  data_end,
const uint8_t **  prev_verified_block 
) const

Friends And Related Function Documentation

◆ map_ptr

template<typename , bool >
friend struct map_ptr
friend

Member Data Documentation

◆ fd_

int android::incfs::IncFsFileMap::fd_ = -1
private

◆ kBucketBits

constexpr size_t android::incfs::IncFsFileMap::kBucketBits = sizeof(bucket_t) * 8U
staticconstexprprivate

◆ loaded_blocks_

std::vector<std::atomic<bucket_t> > android::incfs::IncFsFileMap::loaded_blocks_
mutableprivate

◆ map_

std::unique_ptr<android::FileMap> android::incfs::IncFsFileMap::map_
private

◆ start_block_offset_

size_t android::incfs::IncFsFileMap::start_block_offset_ = 0
private

◆ start_block_ptr_

const uint8_t* android::incfs::IncFsFileMap::start_block_ptr_ = nullptr
private

◆ verification_enabled_

bool android::incfs::IncFsFileMap::verification_enabled_ = false
private

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