Michael Spencer / Mbed 2 deprecated LaOS

Dependencies:   mbed

Committer:
Michael J. Spencer
Date:
Wed Mar 05 06:14:02 2014 -0800
Revision:
1:f5ac63519541
Initial commit.

Who changed what in which revision?

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