Refactor code, "page_buf" moved into KFileFlashAvr struct
[bertos.git] / bertos / cpu / avr / drv / flash_avr.h
index 390f648d92c78541329dd9741686e78cb05c1b22..99abf9a1830583397d3b7e8b5b44e2468e058cc8 100644 (file)
 
 #include <cfg/compiler.h>
 #include <kern/kfile.h>
+#include <avr/io.h>
+
+
+/**
+ * Definition of type for avr flash module.
+ */
+typedef uint16_t avr_page_t;
 
 
 /**
  */
 typedef struct KFileFlashAvr
 {
-       KFile fd;                       ///< File descriptor.
+       /**
+       * File descriptor.
+       */
+       KFile fd;
+
+       /**
+       * Current buffered page.
+       */
+       avr_page_t curr_page;
+
+       /**
+       * Flag for checking if current page is modified.
+       */
+       bool page_dirty;
+
+       /**
+       * Temporary buffer cointaing data block to
+       * write on flash.
+       */
+       uint8_t page_buf[SPM_PAGESIZE];
+
+
 } KFileFlashAvr;
 
 
@@ -69,9 +97,7 @@ INLINE KFileFlashAvr * KFILEFLASHAVR(KFile *fd)
 }
 
 
-
-bool flash_avr_test(void);
-void flash_avr_init(struct KFile *fd);
+void flash_avr_init(struct KFileFlashAvr *fd);