sam3 port: add serial module.
[bertos.git] / bertos / io / kblock.h
index ea3d14ebcc7e39a13c21adc793fd38d1150594e8..9ac358ce37e34e01122a924c55018fea8de2b2ca 100644 (file)
@@ -92,9 +92,13 @@ typedef struct KBlockVTable
 } KBlockVTable;
 
 
-#define KB_BUFFERED    BV(0) ///< Internal flag: true if the KBlock has a buffer
-#define KB_CACHE_DIRTY BV(1) ///< Internal flag: true if the cache is dirty
-#define KB_PARTIAL_WRITE BV(2) ///< Internal flag: true if the device allows partial block write
+#define KB_BUFFERED        BV(0) ///< Internal flag: true if the KBlock has a buffer
+#define KB_CACHE_DIRTY     BV(1) ///< Internal flag: true if the cache is dirty
+#define KB_PARTIAL_WRITE   BV(2) ///< Internal flag: true if the device allows partial block write
+
+#define KB_WRITE_ONCE      BV(3) ///< Allow only the one write on select block.
+#define KB_OPEN_BUFF       BV(4) ///< Open flash memory using page caching, allowing the modification and partial write.
+#define KB_OPEN_UNBUFF     BV(5) ///< Open flash memory whitout memory caching.
 
 /**
  * KBlock private members.
@@ -364,5 +368,6 @@ int kblock_swLoad(struct KBlock *b, block_idx_t index);
 int kblock_swStore(struct KBlock *b, block_idx_t index);
 size_t kblock_swReadBuf(struct KBlock *b, void *buf, size_t offset, size_t size);
 size_t kblock_swWriteBuf(struct KBlock *b, const void *buf, size_t offset, size_t size);
+int kblock_swClose(struct KBlock *b);
 
 #endif /* IO_KBLOCK_H */