sd

Dependents:   SDFileSystem

Revision:
6:a5fcdbf92056
Parent:
5:b3b3370574cf
--- a/ChaN/diskio.cpp	Thu Aug 13 10:15:39 2015 +0100
+++ b/ChaN/diskio.cpp	Thu Nov 26 13:30:57 2015 +0000
@@ -1,38 +1,51 @@
 /*-----------------------------------------------------------------------*/
-/* Low level disk I/O module skeleton for FatFs     (C)ChaN, 2007        */
+/* Low level disk I/O module skeleton for FatFs     (C)ChaN, 2014        */
 /*-----------------------------------------------------------------------*/
-/* This is a stub disk I/O module that acts as front end of the existing */
-/* disk I/O modules and attach it to FatFs module with common interface. */
+/* If a working storage control module is available, it should be        */
+/* attached to the FatFs via a glue function rather than modifying it.   */
+/* This is an example of glue functions to attach various exsisting      */
+/* storage control modules to the FatFs module with a defined API.       */
 /*-----------------------------------------------------------------------*/
-#include "ffconf.h"
+
 #include "diskio.h"
-
 #include "mbed_debug.h"
 #include "FATFileSystem.h"
 
 using namespace mbed;
 
+/*-----------------------------------------------------------------------*/
+/* Get Drive Status                                                      */
+/*-----------------------------------------------------------------------*/
+
+DSTATUS disk_status (
+    BYTE pdrv        /* Physical drive nmuber to identify the drive */
+)
+{
+    debug_if(FFS_DBG, "disk_status on pdrv [%d]\n", pdrv);
+    return (DSTATUS)FATFileSystem::_ffs[pdrv]->disk_status();
+}
+
+/*-----------------------------------------------------------------------*/
+/* Inidialize a Drive                                                    */
+/*-----------------------------------------------------------------------*/
+
 DSTATUS disk_initialize (
-    BYTE pdrv        /* Physical drive number (0..) */
+    BYTE pdrv        /* Physical drive nmuber to identify the drive */
 )
 {
     debug_if(FFS_DBG, "disk_initialize on pdrv [%d]\n", pdrv);
     return (DSTATUS)FATFileSystem::_ffs[pdrv]->disk_initialize();
 }
 
-DSTATUS disk_status (
-    BYTE pdrv        /* Physical drive number (0..) */
-)
-{
-    debug_if(FFS_DBG, "disk_status on pdrv [%d]\n", pdrv);
-    return (DSTATUS)FATFileSystem::_ffs[pdrv]->disk_status();
-}
+/*-----------------------------------------------------------------------*/
+/* Read Sector(s)                                                        */
+/*-----------------------------------------------------------------------*/
 
 DRESULT disk_read (
-    BYTE pdrv,       /* Physical drive number (0..) */
+    BYTE pdrv,       /* Physical drive nmuber to identify the drive */
     BYTE* buff,      /* Data buffer to store read data */
-    DWORD sector,    /* Sector address (LBA) */
-    UINT count       /* Number of sectors to read (1..) */
+    DWORD sector,    /* Sector address in LBA */
+    UINT count       /* Number of sectors to read */
 )
 {
     debug_if(FFS_DBG, "disk_read(sector %d, count %d) on pdrv [%d]\n", sector, count, pdrv);
@@ -42,12 +55,16 @@
         return RES_OK;
 }
 
-#if _READONLY == 0
+/*-----------------------------------------------------------------------*/
+/* Write Sector(s)                                                       */
+/*-----------------------------------------------------------------------*/
+
+#if _USE_WRITE
 DRESULT disk_write (
-    BYTE pdrv,           /* Physical drive number (0..) */
+    BYTE pdrv,           /* Physical drive nmuber to identify the drive */
     const BYTE* buff,    /* Data to be written */
-    DWORD sector,        /* Sector address (LBA) */
-    UINT count           /* Number of sectors to write (1..) */
+    DWORD sector,        /* Sector address in LBA */
+    UINT count           /* Number of sectors to write */
 )
 {
     debug_if(FFS_DBG, "disk_write(sector %d, count %d) on pdrv [%d]\n", sector, count, pdrv);
@@ -56,10 +73,15 @@
     else
         return RES_OK;
 }
-#endif /* _READONLY */
+#endif
 
+/*-----------------------------------------------------------------------*/
+/* Miscellaneous Functions                                               */
+/*-----------------------------------------------------------------------*/
+
+#if _USE_IOCTL
 DRESULT disk_ioctl (
-    BYTE pdrv,        /* Physical drive number (0..) */
+    BYTE pdrv,        /* Physical drive nmuber (0..) */
     BYTE cmd,         /* Control code */
     void* buff        /* Buffer to send/receive control data */
 )
@@ -92,3 +114,4 @@
     }
     return RES_PARERR;
 }
+#endif