cached_block
cached_block* block = transaction->first_block;
cached_block::CanBeWritten() const
BlockWriter::Add(cached_block* block, cache_transaction* transaction)
cached_block** newBlocks;
newBlocks = (cached_block**)malloc(newCapacity * sizeof(void*));
newBlocks = (cached_block**)realloc(fBlocks,
typedef DoublyLinkedList<cached_block,
while (cached_block* block = blockIterator.Next()) {
DoublyLinkedListMemberGetLink<cached_block,
&cached_block::link> > block_list;
BlockWriter::WriteBlock(block_cache* cache, cached_block* block)
BlockWriter::_Data(cached_block* block) const
BlockWriter::_WriteBlocks(cached_block** blocks, uint32 count)
cached_block* block = blocks[i];
BlockWriter::_BlockDone(cached_block* block,
BlockWriter::_UnmarkWriting(cached_block* block)
cached_block* blockA = *(cached_block**)_blockA;
cached_block* blockB = *(cached_block**)_blockB;
fBlocks = new cached_block*[numBlocks];
cached_block* block = fCache->hash.Lookup(blockNumIter);
cached_block* block = fCache->NewBlock(fBlockNumber + i);
block_cache::FreeBlock(cached_block* block)
cached_block*
cached_block* block = NULL;
typedef cached_block ValueType;
block = (cached_block*)object_cache_alloc(sBlockCache, 0);
block_cache::FreeBlockParentData(cached_block* block)
cached_block* block = iterator.Next();) {
block_cache::RemoveBlock(cached_block* block)
block_cache::DiscardBlock(cached_block* block)
cached_block*
cached_block* block = iterator.Next();) {
mark_block_busy_reading(block_cache* cache, cached_block* block)
mark_block_unbusy_reading(block_cache* cache, cached_block* block)
wait_for_busy_reading_block(block_cache* cache, cached_block* block)
wait_for_busy_writing_block(block_cache* cache, cached_block* block)
put_cached_block(block_cache* cache, cached_block* block, WriteLocker* writeLocker = NULL)
cached_block* block = cache->hash.Lookup(blockNumber);
bool readBlock, cached_block** _block)
cached_block* block = cache->hash.Lookup(blockNumber);
cached_block* block;
dump_block(cached_block* block)
dump_block_long(cached_block* block)
dump_block_long((struct cached_block*)(addr_t)parse_expression(argv[1]));
cached_block* block = cache->hash.Lookup(blockNumber);
void FreeBlock(cached_block* block);
cached_block* block = iterator.Next();
cached_block* NewBlock(off_t blockNumber);
void FreeBlockParentData(cached_block* block);
void RemoveBlock(cached_block* block);
void DiscardBlock(cached_block* block);
cached_block* block = transaction->first_block;
cached_block* _GetUnusedBlock();
cached_block* first_block;
cached_block* block = iterator.Next();
bool Add(cached_block* block,
sBlockCache = create_object_cache("cached blocks", sizeof(cached_block),
cached_block* block);
void* _Data(cached_block* block) const;
status_t _WriteBlocks(cached_block** blocks, uint32 count);
void _BlockDone(cached_block* block,
void _UnmarkWriting(cached_block* block);
cached_block* next;
for (cached_block* block = transaction->first_block; block != NULL;
cached_block* fBuffer[kBufferSize];
cached_block* block = transaction->first_block;
cached_block* next;
cached_block** fBlocks;
cached_block* last = NULL;
cached_block* next;
for (cached_block* block = transaction->first_block; block != NULL;
cached_block* block = transaction->first_block;
cached_block* last = NULL;
cached_block* next;
cached_block* block = transaction->first_block;
cached_block* next;
cached_block* block = (cached_block*)*_cookie;
cached_block** fBlocks;
cached_block* block = cache->hash.Lookup(blockNumber);
cached_block* block = cache->hash.Clear(true);
cached_block* next = block->next;
cached_block* block = iterator.Next();
cached_block* block = cache->hash.Lookup(blockNumber);
cached_block* block = cache->hash.Lookup(blockNumber);
cached_block* block = cache->hash.Lookup(blockNumber);
cached_block* block;
cached_block* block = cache->hash.Lookup(blockNumber);
cached_block* block = cache->hash.Lookup(blockNumber);
Action(block_cache* cache, cached_block* block)
Get(block_cache* cache, cached_block* block)
Put(block_cache* cache, cached_block* block)
Read(block_cache* cache, cached_block* block)
Write(block_cache* cache, cached_block* block)
Flush(block_cache* cache, cached_block* block, bool getUnused = false)
BlockData(block_cache* cache, cached_block* block, const char* message)
struct cached_block;
typedef DoublyLinkedListLink<cached_block> block_link;
cached_block* next; // next in hash
cached_block* transaction_next;
cached_block* block = transaction->first_block;
static void mark_block_busy_reading(block_cache* cache, cached_block* block);
static void mark_block_unbusy_reading(block_cache* cache, cached_block* block);
cached_block* block = (cached_block*)hash_lookup(gCache->hash, &number);
cached_block* block = transaction->first_block;
cached_block* next;
cached_block* block = transaction->first_block;
cached_block* next;
cached_block* block = transaction->first_block;
cached_block* last = NULL;
cached_block* next;
cached_block* block = transaction->first_block;
cached_block* next;
void RemoveBlock(cached_block* block);
void DiscardBlock(cached_block* block);
void FreeBlock(cached_block* block);
cached_block* NewBlock(fssh_off_t blockNumber);
cached_block* block = transaction->first_block;
cached_block* last = NULL;
cached_block* next;
cached_block* block = (cached_block*)*_cookie;
cached_block* block = (cached_block*)hash_lookup(cache->hash, &blockNumber);
cached_block* block;
while ((block = (cached_block*)hash_remove_first(cache->hash,
cached_block* block;
while ((block = (cached_block*)hash_next(cache->hash, &iterator)) != NULL) {
cached_block* first_block;
cached_block* block = (cached_block*)hash_lookup(cache->hash,
cached_block* block = (cached_block*)hash_lookup(cache->hash,
static fssh_status_t write_cached_block(block_cache* cache, cached_block* block,
cached_block* block;
cached_block* block = (cached_block*)hash_lookup(cache->hash,
cached_block::Compare(void* _cacheEntry, const void* _block)
cached_block* cacheEntry = (cached_block*)_cacheEntry;
cached_block::Hash(void* _cacheEntry, const void* _block, uint32_t range)
cached_block* cacheEntry = (cached_block*)_cacheEntry;
hash = hash_init(128, offsetof(cached_block, next), &cached_block::Compare,
&cached_block::Hash);
block_cache::FreeBlock(cached_block* block)
cached_block*
cached_block* block = new(nothrow) cached_block;
struct cached_block;
typedef DoublyLinkedListLink<cached_block> block_link;
cached_block *block = iterator.Next();) {
block_cache::RemoveBlock(cached_block* block)
cached_block* next; // next in hash
block_cache::DiscardBlock(cached_block* block)
cached_block* transaction_next;
put_cached_block(block_cache* cache, cached_block* block)
cached_block* block = (cached_block*)hash_lookup(cache->hash, &blockNumber);
bool readBlock, cached_block** _block)
cached_block* block = (cached_block*)hash_lookup(cache->hash,
cached_block* block;
typedef DoublyLinkedList<cached_block,
DoublyLinkedListMemberGetLink<cached_block,
write_cached_block(block_cache* cache, cached_block* block,
&cached_block::link> > block_list;