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