diff options
Diffstat (limited to 'libibex/block.c')
-rw-r--r-- | libibex/block.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/libibex/block.c b/libibex/block.c index d971077dba..6f6cd60657 100644 --- a/libibex/block.c +++ b/libibex/block.c @@ -38,6 +38,7 @@ #define d(x) /*#define DEBUG*/ +int block_log; #ifdef IBEX_STATS static void @@ -202,6 +203,9 @@ ibex_block_dirty(struct _block *block) static void sync_block(struct _memcache *block_cache, struct _memblock *memblock) { + if (block_log) + printf("writing block %d\n", memblock->block); + lseek(block_cache->fd, memblock->block, SEEK_SET); if (write(block_cache->fd, &memblock->data, sizeof(memblock->data)) != -1) { memblock->flags &= ~BLOCK_DIRTY; @@ -324,6 +328,9 @@ ibex_block_read(struct _memcache *block_cache, blockid_t blockid) add_miss(block_cache, blockid); add_read(block_cache, blockid); #endif + if (block_log) + printf("miss block %d\n", blockid); + d(printf("loading blockid from disk %d\n", blockid)); memblock = g_malloc(sizeof(*memblock)); memblock->block = blockid; @@ -345,6 +352,8 @@ ibex_block_read(struct _memcache *block_cache, blockid_t blockid) struct _memblock *rootblock = g_hash_table_lookup(block_cache->index, (void *)0); struct _root *root = (struct _root *)&rootblock->data; + printf("Unsyncing root block\n"); + g_assert(rootblock != NULL); root->flags &= ~IBEX_ROOT_SYNCF; sync_block(block_cache, rootblock); |