Michael Spencer / Smoothie

Dependencies:   mbed

Fork of Smoothie by Stéphane Cachat

Committer:
Michael J. Spencer
Date:
Fri Feb 28 18:52:52 2014 -0800
Revision:
2:1df0b61d3b5a
Update to latest Smoothie.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Michael J. Spencer 2:1df0b61d3b5a 1 /*-----------------------------------------------------------------------
Michael J. Spencer 2:1df0b61d3b5a 2 / Low level disk interface modlue include file
Michael J. Spencer 2:1df0b61d3b5a 3 /-----------------------------------------------------------------------*/
Michael J. Spencer 2:1df0b61d3b5a 4
Michael J. Spencer 2:1df0b61d3b5a 5 #ifndef _DISKIO
Michael J. Spencer 2:1df0b61d3b5a 6
Michael J. Spencer 2:1df0b61d3b5a 7 #define _READONLY 0 /* 1: Remove write functions */
Michael J. Spencer 2:1df0b61d3b5a 8 #define _USE_IOCTL 1 /* 1: Use disk_ioctl fucntion */
Michael J. Spencer 2:1df0b61d3b5a 9
Michael J. Spencer 2:1df0b61d3b5a 10 #include "integer.h"
Michael J. Spencer 2:1df0b61d3b5a 11
Michael J. Spencer 2:1df0b61d3b5a 12
Michael J. Spencer 2:1df0b61d3b5a 13 /* Status of Disk Functions */
Michael J. Spencer 2:1df0b61d3b5a 14 typedef BYTE DSTATUS;
Michael J. Spencer 2:1df0b61d3b5a 15
Michael J. Spencer 2:1df0b61d3b5a 16 /* Results of Disk Functions */
Michael J. Spencer 2:1df0b61d3b5a 17 typedef enum {
Michael J. Spencer 2:1df0b61d3b5a 18 RES_OK = 0, /* 0: Successful */
Michael J. Spencer 2:1df0b61d3b5a 19 RES_ERROR, /* 1: R/W Error */
Michael J. Spencer 2:1df0b61d3b5a 20 RES_WRPRT, /* 2: Write Protected */
Michael J. Spencer 2:1df0b61d3b5a 21 RES_NOTRDY, /* 3: Not Ready */
Michael J. Spencer 2:1df0b61d3b5a 22 RES_PARERR /* 4: Invalid Parameter */
Michael J. Spencer 2:1df0b61d3b5a 23 } DRESULT;
Michael J. Spencer 2:1df0b61d3b5a 24
Michael J. Spencer 2:1df0b61d3b5a 25
Michael J. Spencer 2:1df0b61d3b5a 26 /*---------------------------------------*/
Michael J. Spencer 2:1df0b61d3b5a 27 /* Prototypes for disk control functions */
Michael J. Spencer 2:1df0b61d3b5a 28
Michael J. Spencer 2:1df0b61d3b5a 29 int assign_drives (int, int);
Michael J. Spencer 2:1df0b61d3b5a 30 DSTATUS disk_initialize (BYTE);
Michael J. Spencer 2:1df0b61d3b5a 31 DSTATUS disk_status (BYTE);
Michael J. Spencer 2:1df0b61d3b5a 32 DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
Michael J. Spencer 2:1df0b61d3b5a 33 #if _READONLY == 0
Michael J. Spencer 2:1df0b61d3b5a 34 DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);
Michael J. Spencer 2:1df0b61d3b5a 35 #endif
Michael J. Spencer 2:1df0b61d3b5a 36 DRESULT disk_ioctl (BYTE, BYTE, void*);
Michael J. Spencer 2:1df0b61d3b5a 37 void disk_timerproc (void);
Michael J. Spencer 2:1df0b61d3b5a 38
Michael J. Spencer 2:1df0b61d3b5a 39
Michael J. Spencer 2:1df0b61d3b5a 40
Michael J. Spencer 2:1df0b61d3b5a 41
Michael J. Spencer 2:1df0b61d3b5a 42 /* Disk Status Bits (DSTATUS) */
Michael J. Spencer 2:1df0b61d3b5a 43
Michael J. Spencer 2:1df0b61d3b5a 44 #define STA_NOINIT 0x01 /* Drive not initialized */
Michael J. Spencer 2:1df0b61d3b5a 45 #define STA_NODISK 0x02 /* No medium in the drive */
Michael J. Spencer 2:1df0b61d3b5a 46 #define STA_PROTECT 0x04 /* Write protected */
Michael J. Spencer 2:1df0b61d3b5a 47
Michael J. Spencer 2:1df0b61d3b5a 48
Michael J. Spencer 2:1df0b61d3b5a 49 /* Command code for disk_ioctrl fucntion */
Michael J. Spencer 2:1df0b61d3b5a 50
Michael J. Spencer 2:1df0b61d3b5a 51 /* Generic command (defined for FatFs) */
Michael J. Spencer 2:1df0b61d3b5a 52 #define CTRL_SYNC 0 /* Flush disk cache (for write functions) */
Michael J. Spencer 2:1df0b61d3b5a 53 #define GET_SECTOR_COUNT 1 /* Get media size (for only f_mkfs()) */
Michael J. Spencer 2:1df0b61d3b5a 54 #define GET_SECTOR_SIZE 2 /* Get sector size (for multiple sector size (_MAX_SS >= 1024)) */
Michael J. Spencer 2:1df0b61d3b5a 55 #define GET_BLOCK_SIZE 3 /* Get erase block size (for only f_mkfs()) */
Michael J. Spencer 2:1df0b61d3b5a 56 #define CTRL_ERASE_SECTOR 4 /* Force erased a block of sectors (for only _USE_ERASE) */
Michael J. Spencer 2:1df0b61d3b5a 57
Michael J. Spencer 2:1df0b61d3b5a 58 /* Generic command */
Michael J. Spencer 2:1df0b61d3b5a 59 #define CTRL_POWER 5 /* Get/Set power status */
Michael J. Spencer 2:1df0b61d3b5a 60 #define CTRL_LOCK 6 /* Lock/Unlock media removal */
Michael J. Spencer 2:1df0b61d3b5a 61 #define CTRL_EJECT 7 /* Eject media */
Michael J. Spencer 2:1df0b61d3b5a 62
Michael J. Spencer 2:1df0b61d3b5a 63 /* MMC/SDC specific ioctl command */
Michael J. Spencer 2:1df0b61d3b5a 64 #define MMC_GET_TYPE 10 /* Get card type */
Michael J. Spencer 2:1df0b61d3b5a 65 #define MMC_GET_CSD 11 /* Get CSD */
Michael J. Spencer 2:1df0b61d3b5a 66 #define MMC_GET_CID 12 /* Get CID */
Michael J. Spencer 2:1df0b61d3b5a 67 #define MMC_GET_OCR 13 /* Get OCR */
Michael J. Spencer 2:1df0b61d3b5a 68 #define MMC_GET_SDSTAT 14 /* Get SD status */
Michael J. Spencer 2:1df0b61d3b5a 69
Michael J. Spencer 2:1df0b61d3b5a 70 /* ATA/CF specific ioctl command */
Michael J. Spencer 2:1df0b61d3b5a 71 #define ATA_GET_REV 20 /* Get F/W revision */
Michael J. Spencer 2:1df0b61d3b5a 72 #define ATA_GET_MODEL 21 /* Get model name */
Michael J. Spencer 2:1df0b61d3b5a 73 #define ATA_GET_SN 22 /* Get serial number */
Michael J. Spencer 2:1df0b61d3b5a 74
Michael J. Spencer 2:1df0b61d3b5a 75 /* NAND specific ioctl command */
Michael J. Spencer 2:1df0b61d3b5a 76 #define NAND_FORMAT 30 /* Create physical format */
Michael J. Spencer 2:1df0b61d3b5a 77
Michael J. Spencer 2:1df0b61d3b5a 78
Michael J. Spencer 2:1df0b61d3b5a 79 #define _DISKIO
Michael J. Spencer 2:1df0b61d3b5a 80 #endif