|
| 1 | +/*-----------------------------------------------------------------------/ |
| 2 | +/ Low level disk interface modlue include file (C)ChaN, 2014 / |
| 3 | +/-----------------------------------------------------------------------*/ |
| 4 | + |
| 5 | +#ifndef _DISKIO_DEFINED |
| 6 | +#define _DISKIO_DEFINED |
| 7 | + |
| 8 | +#ifdef __cplusplus |
| 9 | +extern "C" { |
| 10 | +#endif |
| 11 | + |
| 12 | +/* Status of Disk Functions */ |
| 13 | +typedef BYTE DSTATUS; |
| 14 | + |
| 15 | +/* Results of Disk Functions */ |
| 16 | +typedef enum { |
| 17 | + RES_OK = 0, /* 0: Successful */ |
| 18 | + RES_ERROR, /* 1: R/W Error */ |
| 19 | + RES_WRPRT, /* 2: Write Protected */ |
| 20 | + RES_NOTRDY, /* 3: Not Ready */ |
| 21 | + RES_PARERR /* 4: Invalid Parameter */ |
| 22 | +} DRESULT; |
| 23 | + |
| 24 | + |
| 25 | +/*---------------------------------------*/ |
| 26 | +/* Prototypes for disk control functions */ |
| 27 | + |
| 28 | + |
| 29 | +DSTATUS disk_initialize (BYTE pdrv); |
| 30 | +DSTATUS disk_status (BYTE pdrv); |
| 31 | +DRESULT disk_read (BYTE pdrv, BYTE* buff, DWORD sector, UINT count); |
| 32 | +DRESULT disk_write (BYTE pdrv, const BYTE* buff, DWORD sector, UINT count); |
| 33 | +DRESULT disk_ioctl (BYTE pdrv, BYTE cmd, void* buff); |
| 34 | + |
| 35 | + |
| 36 | +/* Disk Status Bits (DSTATUS) */ |
| 37 | + |
| 38 | +#define STA_NOINIT 0x01 /* Drive not initialized */ |
| 39 | +#define STA_NODISK 0x02 /* No medium in the drive */ |
| 40 | +#define STA_PROTECT 0x04 /* Write protected */ |
| 41 | + |
| 42 | + |
| 43 | +/* Command code for disk_ioctrl fucntion */ |
| 44 | + |
| 45 | +/* Generic command (Used by FatFs) */ |
| 46 | +#define CTRL_SYNC 0 /* Complete pending write process (needed at FF_FS_READONLY == 0) */ |
| 47 | +#define GET_SECTOR_COUNT 1 /* Get media size (needed at FF_USE_MKFS == 1) */ |
| 48 | +#define GET_SECTOR_SIZE 2 /* Get sector size (needed at FF_MAX_SS != FF_MIN_SS) */ |
| 49 | +#define GET_BLOCK_SIZE 3 /* Get erase block size (needed at FF_USE_MKFS == 1) */ |
| 50 | +#define CTRL_TRIM 4 /* Inform device that the data on the block of sectors is no longer used (needed at FF_USE_TRIM == 1) */ |
| 51 | + |
| 52 | +/* Generic command (Not used by FatFs) */ |
| 53 | +#define CTRL_POWER 5 /* Get/Set power status */ |
| 54 | +#define CTRL_LOCK 6 /* Lock/Unlock media removal */ |
| 55 | +#define CTRL_EJECT 7 /* Eject media */ |
| 56 | +#define CTRL_FORMAT 8 /* Create physical format on the media */ |
| 57 | + |
| 58 | +/* MMC/SDC specific ioctl command */ |
| 59 | +#define MMC_GET_TYPE 10 /* Get card type */ |
| 60 | +#define MMC_GET_CSD 11 /* Get CSD */ |
| 61 | +#define MMC_GET_CID 12 /* Get CID */ |
| 62 | +#define MMC_GET_OCR 13 /* Get OCR */ |
| 63 | +#define MMC_GET_SDSTAT 14 /* Get SD status */ |
| 64 | +#define ISDIO_READ 55 /* Read data form SD iSDIO register */ |
| 65 | +#define ISDIO_WRITE 56 /* Write data to SD iSDIO register */ |
| 66 | +#define ISDIO_MRITE 57 /* Masked write data to SD iSDIO register */ |
| 67 | + |
| 68 | +/* ATA/CF specific ioctl command */ |
| 69 | +#define ATA_GET_REV 20 /* Get F/W revision */ |
| 70 | +#define ATA_GET_MODEL 21 /* Get model name */ |
| 71 | +#define ATA_GET_SN 22 /* Get serial number */ |
| 72 | + |
| 73 | +#ifdef __cplusplus |
| 74 | +} |
| 75 | +#endif |
| 76 | + |
| 77 | +#endif |
0 commit comments