Move kfile interface to the io/ directory.
[bertos.git] / bertos / drv / flash25.c
index 949ec4014e4ef9f6ee1438d0cf9531d35a6f2177..3f84903b6d1f37b44bef233c93d4e6a0f1187afc 100644 (file)
  * the GNU General Public License.
  *
  * Copyright 2007 Develer S.r.l. (http://www.develer.com/)
- *
  * -->
  *
- *  \brief Function library for serial Flash memory.
+ * \brief Function library for serial Flash memory.
  *
  * Module provide a kfile interface, that ensure an abstraction
  * from comunication channel and give a standard interface.
 #include <drv/timer.h>
 #include <drv/flash25.h>
 
-#include <kern/kfile.h>
+#include <io/kfile.h>
 
-#if CONFIG_KERNEL
-#include <kern/proc.h>
-#endif
+#include <cpu/power.h> /* cpu_relax() */
 
-#warning FIXME:This file was change, but is untest!
+#warning FIXME:This file was changed, but is untested!
 
 /**
  * Wait until flash memory is ready.
@@ -79,10 +76,8 @@ static void flash25_waitReady(Flash25 *fd)
 
                if (!(stat & RDY_BIT))
                        break;
-               #if CONFIG_KERNEL
-               else
-                       proc_switch();
-               #endif
+
+               cpu_relax();
        }
 }
 
@@ -178,8 +173,8 @@ static size_t flash25_read(struct KFile *_fd, void *buf, size_t size)
 
        Flash25 *fd = FLASH25_CAST(_fd);
 
-       ASSERT(fd->fd.seek_pos + (kfile_size_t)size <= fd->fd.size);
-       size = MIN((kfile_size_t)size, fd->fd.size - fd->fd.seek_pos);
+       ASSERT(fd->fd.seek_pos + (kfile_off_t)size <= fd->fd.size);
+       size = MIN((kfile_off_t)size, fd->fd.size - fd->fd.seek_pos);
 
        //kprintf("Reading at addr[%lu], size[%d]\n", fd->seek_pos, size);
        CS_ENABLE();
@@ -231,9 +226,9 @@ static size_t flash25_write(struct KFile *_fd, const void *_buf, size_t size)
 
        Flash25 *fd = FLASH25_CAST(_fd);
 
-       ASSERT(fd->fd.seek_pos + (kfile_size_t)size <= fd->fd.size);
+       ASSERT(fd->fd.seek_pos + (kfile_off_t)size <= fd->fd.size);
 
-       size = MIN((kfile_size_t)size, fd->fd.size - fd->fd.seek_pos);
+       size = MIN((kfile_off_t)size, fd->fd.size - fd->fd.seek_pos);
 
        while (size)
        {
@@ -330,8 +325,7 @@ void flash25_sectorErase(Flash25 *fd, Flash25Sector sector)
         */
        flash25_waitReady(fd);
 
-       DB(kprintf("Erased sector [%ld] in %d ms\n", sector, ticks_to_ms(timer_clock() - start_time)));
-
+       DB(kprintf("Erased sector [%ld] in %ld ms\n", (unsigned long)sector, (unsigned long)ticks_to_ms(timer_clock() - start_time)));
 }
 
 /**