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