Madeline Kistler / SDFileSystem2
Committer:
mkistler
Date:
Tue Nov 17 20:30:08 2020 +0000
Revision:
0:812e8b0b2832
Final draft.

Who changed what in which revision?

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