Renesas / USBHost_custom

Dependents:   GR-PEACH_HVC-P2_sample_client mbed-os-storage-access GR-PEACH_Digital_Signage GR-PEACH_Audio_Playback_Sample ... more

Fork of USBHost by mbed official

Committer:
dkato
Date:
Tue Feb 28 02:51:39 2017 +0000
Revision:
37:22e8f744bbad
Tentative change for FATFileSystem revision error.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dkato 37:22e8f744bbad 1 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 2 /* Low level disk I/O module skeleton for FatFs (C)ChaN, 2014 */
dkato 37:22e8f744bbad 3 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 4 /* If a working storage control module is available, it should be */
dkato 37:22e8f744bbad 5 /* attached to the FatFs via a glue function rather than modifying it. */
dkato 37:22e8f744bbad 6 /* This is an example of glue functions to attach various exsisting */
dkato 37:22e8f744bbad 7 /* storage control modules to the FatFs module with a defined API. */
dkato 37:22e8f744bbad 8 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 9
dkato 37:22e8f744bbad 10 #include "diskio.h"
dkato 37:22e8f744bbad 11 #include "mbed_debug.h"
dkato 37:22e8f744bbad 12 #include "FATFileSystem.h"
dkato 37:22e8f744bbad 13
dkato 37:22e8f744bbad 14 using namespace mbed;
dkato 37:22e8f744bbad 15
dkato 37:22e8f744bbad 16 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 17 /* Get Drive Status */
dkato 37:22e8f744bbad 18 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 19
dkato 37:22e8f744bbad 20 DSTATUS disk_status (
dkato 37:22e8f744bbad 21 BYTE pdrv /* Physical drive nmuber to identify the drive */
dkato 37:22e8f744bbad 22 )
dkato 37:22e8f744bbad 23 {
dkato 37:22e8f744bbad 24 debug_if(FFS_DBG, "disk_status on pdrv [%d]\n", pdrv);
dkato 37:22e8f744bbad 25 return (DSTATUS)FATFileSystem::_ffs[pdrv]->disk_status();
dkato 37:22e8f744bbad 26 }
dkato 37:22e8f744bbad 27
dkato 37:22e8f744bbad 28 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 29 /* Inidialize a Drive */
dkato 37:22e8f744bbad 30 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 31
dkato 37:22e8f744bbad 32 DSTATUS disk_initialize (
dkato 37:22e8f744bbad 33 BYTE pdrv /* Physical drive nmuber to identify the drive */
dkato 37:22e8f744bbad 34 )
dkato 37:22e8f744bbad 35 {
dkato 37:22e8f744bbad 36 debug_if(FFS_DBG, "disk_initialize on pdrv [%d]\n", pdrv);
dkato 37:22e8f744bbad 37 return (DSTATUS)FATFileSystem::_ffs[pdrv]->disk_initialize();
dkato 37:22e8f744bbad 38 }
dkato 37:22e8f744bbad 39
dkato 37:22e8f744bbad 40 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 41 /* Read Sector(s) */
dkato 37:22e8f744bbad 42 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 43
dkato 37:22e8f744bbad 44 DRESULT disk_read (
dkato 37:22e8f744bbad 45 BYTE pdrv, /* Physical drive nmuber to identify the drive */
dkato 37:22e8f744bbad 46 BYTE* buff, /* Data buffer to store read data */
dkato 37:22e8f744bbad 47 DWORD sector, /* Sector address in LBA */
dkato 37:22e8f744bbad 48 UINT count /* Number of sectors to read */
dkato 37:22e8f744bbad 49 )
dkato 37:22e8f744bbad 50 {
dkato 37:22e8f744bbad 51 debug_if(FFS_DBG, "disk_read(sector %d, count %d) on pdrv [%d]\n", sector, count, pdrv);
dkato 37:22e8f744bbad 52 if (FATFileSystem::_ffs[pdrv]->disk_read((uint8_t*)buff, sector, count))
dkato 37:22e8f744bbad 53 return RES_PARERR;
dkato 37:22e8f744bbad 54 else
dkato 37:22e8f744bbad 55 return RES_OK;
dkato 37:22e8f744bbad 56 }
dkato 37:22e8f744bbad 57
dkato 37:22e8f744bbad 58 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 59 /* Write Sector(s) */
dkato 37:22e8f744bbad 60 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 61
dkato 37:22e8f744bbad 62 #if _USE_WRITE
dkato 37:22e8f744bbad 63 DRESULT disk_write (
dkato 37:22e8f744bbad 64 BYTE pdrv, /* Physical drive nmuber to identify the drive */
dkato 37:22e8f744bbad 65 const BYTE* buff, /* Data to be written */
dkato 37:22e8f744bbad 66 DWORD sector, /* Sector address in LBA */
dkato 37:22e8f744bbad 67 UINT count /* Number of sectors to write */
dkato 37:22e8f744bbad 68 )
dkato 37:22e8f744bbad 69 {
dkato 37:22e8f744bbad 70 debug_if(FFS_DBG, "disk_write(sector %d, count %d) on pdrv [%d]\n", sector, count, pdrv);
dkato 37:22e8f744bbad 71 if (FATFileSystem::_ffs[pdrv]->disk_write((uint8_t*)buff, sector, count))
dkato 37:22e8f744bbad 72 return RES_PARERR;
dkato 37:22e8f744bbad 73 else
dkato 37:22e8f744bbad 74 return RES_OK;
dkato 37:22e8f744bbad 75 }
dkato 37:22e8f744bbad 76 #endif
dkato 37:22e8f744bbad 77
dkato 37:22e8f744bbad 78 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 79 /* Miscellaneous Functions */
dkato 37:22e8f744bbad 80 /*-----------------------------------------------------------------------*/
dkato 37:22e8f744bbad 81
dkato 37:22e8f744bbad 82 #if _USE_IOCTL
dkato 37:22e8f744bbad 83 DRESULT disk_ioctl (
dkato 37:22e8f744bbad 84 BYTE pdrv, /* Physical drive nmuber (0..) */
dkato 37:22e8f744bbad 85 BYTE cmd, /* Control code */
dkato 37:22e8f744bbad 86 void* buff /* Buffer to send/receive control data */
dkato 37:22e8f744bbad 87 )
dkato 37:22e8f744bbad 88 {
dkato 37:22e8f744bbad 89 debug_if(FFS_DBG, "disk_ioctl(%d)\n", cmd);
dkato 37:22e8f744bbad 90 switch(cmd) {
dkato 37:22e8f744bbad 91 case CTRL_SYNC:
dkato 37:22e8f744bbad 92 if(FATFileSystem::_ffs[pdrv] == NULL) {
dkato 37:22e8f744bbad 93 return RES_NOTRDY;
dkato 37:22e8f744bbad 94 } else if(FATFileSystem::_ffs[pdrv]->disk_sync()) {
dkato 37:22e8f744bbad 95 return RES_ERROR;
dkato 37:22e8f744bbad 96 }
dkato 37:22e8f744bbad 97 return RES_OK;
dkato 37:22e8f744bbad 98 case GET_SECTOR_COUNT:
dkato 37:22e8f744bbad 99 if(FATFileSystem::_ffs[pdrv] == NULL) {
dkato 37:22e8f744bbad 100 return RES_NOTRDY;
dkato 37:22e8f744bbad 101 } else {
dkato 37:22e8f744bbad 102 DWORD res = FATFileSystem::_ffs[pdrv]->disk_sectors();
dkato 37:22e8f744bbad 103 if(res > 0) {
dkato 37:22e8f744bbad 104 *((DWORD*)buff) = res; // minimum allowed
dkato 37:22e8f744bbad 105 return RES_OK;
dkato 37:22e8f744bbad 106 } else {
dkato 37:22e8f744bbad 107 return RES_ERROR;
dkato 37:22e8f744bbad 108 }
dkato 37:22e8f744bbad 109 }
dkato 37:22e8f744bbad 110 case GET_BLOCK_SIZE:
dkato 37:22e8f744bbad 111 *((DWORD*)buff) = 1; // default when not known
dkato 37:22e8f744bbad 112 return RES_OK;
dkato 37:22e8f744bbad 113
dkato 37:22e8f744bbad 114 }
dkato 37:22e8f744bbad 115 return RES_PARERR;
dkato 37:22e8f744bbad 116 }
dkato 37:22e8f744bbad 117 #endif