Add open mode flags.
[bertos.git] / bertos / io / kblock.h
index 8d68c8e9eca3cd496d7f676ea2f72ca93daa143d..9ac358ce37e34e01122a924c55018fea8de2b2ca 100644 (file)
@@ -33,6 +33,8 @@
  * \author Francesco Sacchi <batt@develer.com>
  *
  * \brief KBlock interface
+ *
+ * $WIZ$ module_name = "kblock"
  */
 
 #ifndef IO_KBLOCK_H
@@ -90,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.
@@ -362,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 */