]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - fatfs/src/diskio.c
Import fatfs R0.12b
[z180-stamp.git] / fatfs / src / diskio.c
index 64194eb6ba7da03829f30dbb9976ebaa9352935f..25f5e53bc032bd3fcdacd3c53582e63e73ae8dcc 100644 (file)
@@ -1,51 +1,48 @@
 /*-----------------------------------------------------------------------*/\r
-/* Low level disk I/O module skeleton for FatFs     (C)ChaN, 2013        */\r
+/* Low level disk I/O module skeleton for FatFs     (C)ChaN, 2016        */\r
 /*-----------------------------------------------------------------------*/\r
 /* If a working storage control module is available, it should be        */\r
 /* attached to the FatFs via a glue function rather than modifying it.   */\r
 /* This is an example of glue functions to attach various exsisting      */\r
-/* storage control module to the FatFs module with a defined API.        */\r
+/* storage control modules to the FatFs module with a defined API.       */\r
 /*-----------------------------------------------------------------------*/\r
 \r
 #include "diskio.h"            /* FatFs lower layer API */\r
-#include "usbdisk.h"   /* Example: USB drive control */\r
-#include "atadrive.h"  /* Example: ATA drive control */\r
-#include "sdcard.h"            /* Example: MMC/SDC contorl */\r
 \r
-/* Definitions of physical drive number for each media */\r
-#define ATA            0\r
-#define MMC            1\r
-#define USB            2\r
+/* Definitions of physical drive number for each drive */\r
+#define DEV_RAM                0       /* Example: Map Ramdisk to physical drive 0 */\r
+#define DEV_MMC                1       /* Example: Map MMC/SD card to physical drive 1 */\r
+#define DEV_USB                2       /* Example: Map USB MSD to physical drive 2 */\r
 \r
 \r
 /*-----------------------------------------------------------------------*/\r
-/* Inidialize a Drive                                                    */\r
+/* Get Drive Status                                                      */\r
 /*-----------------------------------------------------------------------*/\r
 \r
-DSTATUS disk_initialize (\r
-       BYTE pdrv                               /* Physical drive nmuber (0..) */\r
+DSTATUS disk_status (\r
+       BYTE pdrv               /* Physical drive nmuber to identify the drive */\r
 )\r
 {\r
        DSTATUS stat;\r
        int result;\r
 \r
        switch (pdrv) {\r
-       case ATA :\r
-               result = ATA_disk_initialize();\r
+       case DEV_RAM :\r
+               result = RAM_disk_status();\r
 \r
                // translate the reslut code here\r
 \r
                return stat;\r
 \r
-       case MMC :\r
-               result = MMC_disk_initialize();\r
+       case DEV_MMC :\r
+               result = MMC_disk_status();\r
 \r
                // translate the reslut code here\r
 \r
                return stat;\r
 \r
-       case USB :\r
-               result = USB_disk_initialize();\r
+       case DEV_USB :\r
+               result = USB_disk_status();\r
 \r
                // translate the reslut code here\r
 \r
@@ -57,33 +54,33 @@ DSTATUS disk_initialize (
 \r
 \r
 /*-----------------------------------------------------------------------*/\r
-/* Get Disk Status                                                       */\r
+/* Inidialize a Drive                                                    */\r
 /*-----------------------------------------------------------------------*/\r
 \r
-DSTATUS disk_status (\r
-       BYTE pdrv               /* Physical drive nmuber (0..) */\r
+DSTATUS disk_initialize (\r
+       BYTE pdrv                               /* Physical drive nmuber to identify the drive */\r
 )\r
 {\r
        DSTATUS stat;\r
        int result;\r
 \r
        switch (pdrv) {\r
-       case ATA :\r
-               result = ATA_disk_status();\r
+       case DEV_RAM :\r
+               result = RAM_disk_initialize();\r
 \r
                // translate the reslut code here\r
 \r
                return stat;\r
 \r
-       case MMC :\r
-               result = MMC_disk_status();\r
+       case DEV_MMC :\r
+               result = MMC_disk_initialize();\r
 \r
                // translate the reslut code here\r
 \r
                return stat;\r
 \r
-       case USB :\r
-               result = USB_disk_status();\r
+       case DEV_USB :\r
+               result = USB_disk_initialize();\r
 \r
                // translate the reslut code here\r
 \r
@@ -99,26 +96,26 @@ DSTATUS disk_status (
 /*-----------------------------------------------------------------------*/\r
 \r
 DRESULT disk_read (\r
-       BYTE pdrv,              /* Physical drive nmuber (0..) */\r
+       BYTE pdrv,              /* Physical drive nmuber to identify the drive */\r
        BYTE *buff,             /* Data buffer to store read data */\r
-       DWORD sector,   /* Sector address (LBA) */\r
-       UINT count              /* Number of sectors to read (1..128) */\r
+       DWORD sector,   /* Start sector in LBA */\r
+       UINT count              /* Number of sectors to read */\r
 )\r
 {\r
        DRESULT res;\r
        int result;\r
 \r
        switch (pdrv) {\r
-       case ATA :\r
+       case DEV_RAM :\r
                // translate the arguments here\r
 \r
-               result = ATA_disk_read(buff, sector, count);\r
+               result = RAM_disk_read(buff, sector, count);\r
 \r
                // translate the reslut code here\r
 \r
                return res;\r
 \r
-       case MMC :\r
+       case DEV_MMC :\r
                // translate the arguments here\r
 \r
                result = MMC_disk_read(buff, sector, count);\r
@@ -127,7 +124,7 @@ DRESULT disk_read (
 \r
                return res;\r
 \r
-       case USB :\r
+       case DEV_USB :\r
                // translate the arguments here\r
 \r
                result = USB_disk_read(buff, sector, count);\r
@@ -136,6 +133,7 @@ DRESULT disk_read (
 \r
                return res;\r
        }\r
+\r
        return RES_PARERR;\r
 }\r
 \r
@@ -145,28 +143,27 @@ DRESULT disk_read (
 /* Write Sector(s)                                                       */\r
 /*-----------------------------------------------------------------------*/\r
 \r
-#if _USE_WRITE\r
 DRESULT disk_write (\r
-       BYTE pdrv,                      /* Physical drive nmuber (0..) */\r
+       BYTE pdrv,                      /* Physical drive nmuber to identify the drive */\r
        const BYTE *buff,       /* Data to be written */\r
-       DWORD sector,           /* Sector address (LBA) */\r
-       UINT count                      /* Number of sectors to write (1..128) */\r
+       DWORD sector,           /* Start sector in LBA */\r
+       UINT count                      /* Number of sectors to write */\r
 )\r
 {\r
        DRESULT res;\r
        int result;\r
 \r
        switch (pdrv) {\r
-       case ATA :\r
+       case DEV_RAM :\r
                // translate the arguments here\r
 \r
-               result = ATA_disk_write(buff, sector, count);\r
+               result = RAM_disk_write(buff, sector, count);\r
 \r
                // translate the reslut code here\r
 \r
                return res;\r
 \r
-       case MMC :\r
+       case DEV_MMC :\r
                // translate the arguments here\r
 \r
                result = MMC_disk_write(buff, sector, count);\r
@@ -175,7 +172,7 @@ DRESULT disk_write (
 \r
                return res;\r
 \r
-       case USB :\r
+       case DEV_USB :\r
                // translate the arguments here\r
 \r
                result = USB_disk_write(buff, sector, count);\r
@@ -184,16 +181,16 @@ DRESULT disk_write (
 \r
                return res;\r
        }\r
+\r
        return RES_PARERR;\r
 }\r
-#endif\r
+\r
 \r
 \r
 /*-----------------------------------------------------------------------*/\r
 /* Miscellaneous Functions                                               */\r
 /*-----------------------------------------------------------------------*/\r
 \r
-#if _USE_IOCTL\r
 DRESULT disk_ioctl (\r
        BYTE pdrv,              /* Physical drive nmuber (0..) */\r
        BYTE cmd,               /* Control code */\r
@@ -204,33 +201,25 @@ DRESULT disk_ioctl (
        int result;\r
 \r
        switch (pdrv) {\r
-       case ATA :\r
-               // pre-process here\r
+       case DEV_RAM :\r
 \r
-               result = ATA_disk_ioctl(cmd, buff);\r
-\r
-               // post-process here\r
+               // Process of the command for the RAM drive\r
 \r
                return res;\r
 \r
-       case MMC :\r
-               // pre-process here\r
-\r
-               result = MMC_disk_ioctl(cmd, buff);\r
+       case DEV_MMC :\r
 \r
-               // post-process here\r
+               // Process of the command for the MMC/SD card\r
 \r
                return res;\r
 \r
-       case USB :\r
-               // pre-process here\r
-\r
-               result = USB_disk_ioctl(cmd, buff);\r
+       case DEV_USB :\r
 \r
-               // post-process here\r
+               // Process of the command the USB drive\r
 \r
                return res;\r
        }\r
+\r
        return RES_PARERR;\r
 }\r
-#endif\r
+\r