X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fio%2Fkblock.c;h=117c3e9b48ef3b9b51b43f134778580c87ea2df6;hb=d86a921be38f9dfe999bfd36bc3a8e76a2ad929f;hp=616e7bcd00232b254ced0cc6c732f54255f13820;hpb=04800615c9d06d85adc7c7b1487ad4e3007c6e67;p=bertos.git diff --git a/bertos/io/kblock.c b/bertos/io/kblock.c index 616e7bcd..117c3e9b 100644 --- a/bertos/io/kblock.c +++ b/bertos/io/kblock.c @@ -100,7 +100,6 @@ INLINE void kblock_setDirty(struct KBlock *b, bool dirty) } - size_t kblock_read(struct KBlock *b, block_idx_t idx, void *buf, size_t offset, size_t size) { ASSERT(b); @@ -150,6 +149,23 @@ static bool kblock_loadPage(struct KBlock *b, block_idx_t idx) } +int kblock_trim(struct KBlock *b, block_idx_t start, block_idx_t count) +{ + ASSERT(start + count <= b->blk_cnt); + + if (kblock_buffered(b)) + { + if (!kblock_loadPage(b, start)) + return EOF; + } + + b->priv.blk_start += start; + b->priv.curr_blk = 0; // adjust logical address + b->blk_cnt = count; + return 0; +} + + size_t kblock_write(struct KBlock *b, block_idx_t idx, const void *buf, size_t offset, size_t size) { ASSERT(b); @@ -258,3 +274,8 @@ size_t kblock_swWriteBuf(struct KBlock *b, const void *buf, size_t offset, size_ memcpy((uint8_t *)b->priv.buf + offset, buf, size); return size; } + +int kblock_swClose(UNUSED_ARG(struct KBlock, *b)) +{ + return 0; +}