FATFileSystem

Dependents:   SDFileSystem SDFileSystem_tryagain WallbotWii SDFileSystem ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers diskio.h Source File

diskio.h

00001 //-----------------------------------------------------------------------
00002 //  Low level disk interface modlue include file
00003 //-----------------------------------------------------------------------
00004 
00005 #ifndef _DISKIO
00006 
00007 #define _READONLY    0   // 1: Remove write functions
00008 #define _USE_IOCTL   1   // 1: Use disk_ioctl fucntion
00009 
00010 #include "integer.h"
00011 
00012 
00013 // Status of Disk Functions
00014 typedef BYTE    DSTATUS;
00015 
00016 // Results of Disk Functions
00017 typedef enum {
00018     RES_OK = 0, // 0: Successful
00019     RES_ERROR,  // 1: R/W Error
00020     RES_WRPRT,  // 2: Write Protected
00021     RES_NOTRDY, // 3: Not Ready
00022     RES_PARERR  // 4: Invalid Parameter
00023 } DRESULT;
00024 
00025 
00026 // Prototypes for disk control functions
00027 
00028 int assign_drives (int, int);
00029 DSTATUS disk_initialize (BYTE);
00030 DSTATUS disk_status (BYTE);
00031 DRESULT disk_read (BYTE, BYTE*, DWORD, BYTE);
00032 #if    _READONLY == 0
00033 DRESULT disk_write (BYTE, const BYTE*, DWORD, BYTE);
00034 #endif
00035 DRESULT disk_ioctl (BYTE, BYTE, void*);
00036 
00037 
00038 
00039 // Disk Status Bits (DSTATUS)
00040 #define STA_NOINIT  0x01    // Drive not initialized
00041 #define STA_NODISK  0x02    // No medium in the drive
00042 #define STA_PROTECT 0x04    // Write protected
00043 
00044 
00045 // Command code for disk_ioctrl fucntion
00046 
00047 // Generic command (defined for FatFs)
00048 #define CTRL_SYNC           0    // Flush disk cache (for write functions)
00049 #define GET_SECTOR_COUNT    1    // Get media size (for only f_mkfs())
00050 #define GET_SECTOR_SIZE     2    // Get sector size (for multiple sector size (_MAX_SS >= 1024))
00051 #define GET_BLOCK_SIZE      3    // Get erase block size (for only f_mkfs())
00052 #define CTRL_ERASE_SECTOR   4    // Force erased a block of sectors (for only _USE_ERASE)
00053 
00054 // Generic command
00055 #define CTRL_POWER          5    // Get/Set power status
00056 #define CTRL_LOCK           6    // Lock/Unlock media removal
00057 #define CTRL_EJECT          7    // Eject media
00058 
00059 // MMC/SDC specific ioctl command
00060 #define MMC_GET_TYPE        10    // Get card type
00061 #define MMC_GET_CSD         11    // Get CSD
00062 #define MMC_GET_CID         12    // Get CID
00063 #define MMC_GET_OCR         13    // Get OCR
00064 #define MMC_GET_SDSTAT      14    // Get SD status
00065 
00066 // ATA/CF specific ioctl command
00067 #define ATA_GET_REV         20    // Get F/W revision
00068 #define ATA_GET_MODEL       21    // Get model name
00069 #define ATA_GET_SN          22    // Get serial number
00070 
00071 // NAND specific ioctl command
00072 #define NAND_FORMAT         30    // Create physical format
00073 
00074 
00075 #define _DISKIO
00076 #endif