-void kblockfile_init(KBlockFile *f, FILE *fp, void *buf, size_t block_size, block_idx_t block_count)
+ .readBuf = kblock_swReadBuf,
+ .writeBuf = kblock_swWriteBuf,
+ .load = kblock_swLoad,
+ .store = kblock_swStore,
+
+ .error = kblockfile_error,
+ .clearerr = kblockfile_claererr,
+ .close = kblockfile_close,
+};
+
+static const KBlockVTable kblockfile_unbuffered_vt =
+{
+ .readDirect = kblockfile_readDirect,
+ .writeDirect =kblockfile_writeDirect,
+
+ .error = kblockfile_error,
+ .clearerr = kblockfile_claererr,
+ .close = kblockfile_close,
+};
+
+
+
+void kblockfile_init(KBlockFile *f, FILE *fp, bool hwbuf, void *buf, size_t block_size, block_idx_t block_count)