⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fat.h

📁 基于EP7312的MP3播放器源代码,包括MCU和PC端代码.
💻 H
字号:
//****************************************************************************//// FAT.H - Public definitions for the FAT12 and FAT16 code.//// Copyright (c) 2000,2001 Cirrus Logic, Inc.////****************************************************************************#ifndef _FAT_H#define _FAT_H//****************************************************************************//// The following values are the IOCTLs which are sent to the block drivers by// the FAT layer.////****************************************************************************enum{    IOCTL_BLOCK_INIT,    IOCTL_BLOCK_GETMEDIAID,    IOCTL_BLOCK_READ,    IOCTL_BLOCK_READ_BS,    IOCTL_BLOCK_WRITE,    IOCTL_BLOCK_CAPACITY,    IOCTL_BLOCK_FORMAT};//****************************************************************************//// The following are the flags passed to FATOpen.////****************************************************************************#define FAT_OPEN_READ                           0x00000001#define FAT_OPEN_WRITE                          0x00000002//****************************************************************************//// The following are the types passed to FATReadDir.////****************************************************************************#define FAT_TYPE_FILE                           0x00000001#define FAT_TYPE_SUBDIR                         0x00000002//****************************************************************************//// The following structure contains the persistent state of the FAT file// system parser/writer.////****************************************************************************#ifndef _FAT_I_Htypedef struct{    //    // A pointer to the driver for reading and writing blocks from the actual    // media.    //    unsigned long (*pfnBlockDriver)(void *pvBlockDriverState,                                    unsigned char *pucScratch,                                    unsigned long ulIoctl,                                    unsigned long ulParam1,                                    unsigned long ulParam2,                                    unsigned long ulParam3);    //    // A pointer to the persistent state of the block driver.    //    void *pvBlockDriverState;    //    // The internal, persistent state of the FAT code.    //    unsigned char ucInternal[16];} tFAT;#endif//****************************************************************************//// The following structure contains the persistent state of a file opened by// the FAT file system parser/writer.////****************************************************************************#ifndef _FAT_I_Htypedef struct{    //    // The internal, persistent state of an open file in the FAT file system.    //    unsigned char ucInternal[20];} tFATFile;#endif//****************************************************************************//// The following structure contains the persistent state of a directory opened// by the FAT file system parser/writer.////****************************************************************************#ifndef _FAT_I_Htypedef struct{    unsigned char ucInternal[4];} tFATDir;#endif//****************************************************************************//// Function prototypes.////****************************************************************************extern unsigned long FATInit(tFAT *pFAT, unsigned char *pucScratch);extern unsigned long FATGetMediaID(tFAT *pFAT, unsigned char *pucScratch,                                   unsigned char *pucMediaIDBuffer,                                   unsigned long *pulLength);extern unsigned long FATOpenFile(tFAT *pFAT, unsigned char *pucScratch,                                 tFATFile *pFile,                                 const unsigned short *pusFileName,                                 unsigned long ulFlags);extern unsigned long FATCreateFile(tFAT *pFAT, unsigned char *pucScratch,                                   unsigned char *pucWriteBuffer,                                   tFATFile *pFile,                                   const unsigned short *pusFileName,                                   unsigned long ulFileLength);extern unsigned long FATRead(tFAT *pFAT, tFATFile *pFile,                             unsigned char *pucBuffer, unsigned long ulLength,                             unsigned long bByteSwap);extern unsigned long FATWrite(tFAT *pFAT, unsigned char *pucScratch,                              unsigned char *pucWriteBuffer, tFATFile *pFile,                              unsigned char *pucBuffer,                              unsigned long ulLength);extern unsigned long FATSeek(tFAT *pFAT, unsigned char *pucScratch,                             unsigned char *pucWriteBuffer, tFATFile *pFile,                             unsigned long ulFilePos,                             unsigned long ulFileFlags);extern unsigned long FATTell(tFATFile *pFile);extern unsigned long FATLength(tFATFile *pFile);extern unsigned long FATGetDate(tFAT *pFAT, unsigned char *pucScratch,                                tFATFile *pFile);extern unsigned long FATCloseFile(tFAT *pFAT, unsigned char *pucScratch,                                  unsigned char *pucWriteBuffer,                                  tFATFile *pFile, unsigned long ulFlags);extern unsigned long FATDeleteFile(tFAT *pFAT, unsigned char *pucScratch,                                   unsigned char *pucWriteBuffer,                                   const unsigned short *pusFileName);extern unsigned long FATOpenDirectory(tFAT *pFAT, unsigned char *pucScratch,                                      tFATDir *pDir,                                      const unsigned short *pusDirName);extern unsigned long FATReadDirectory(tFAT *pFAT, unsigned char *pucScratch,                                      tFATDir *pDir, unsigned short *pusName,                                      unsigned long ulType);extern unsigned long FATCloseDirectory(tFATDir *pDir);extern unsigned long FATCreateDirectory(tFAT *pFAT, unsigned char *pucScratch,                                        unsigned char *pucWriteBuffer,                                        const unsigned short *pusDirName);extern unsigned long FATRemoveDirectory(tFAT *pFAT, unsigned char *pucScratch,                                        unsigned char *pucWriteBuffer,                                        const unsigned short *pusDirName);extern unsigned long FATTotalSpace(tFAT *pFAT);extern unsigned long FATFreeSpace(tFAT *pFAT, unsigned char *pucScratch);extern unsigned long FATFormat(tFAT *pFAT, unsigned char *pucScratch,                               unsigned char *pucWriteBuffer);#endif // _FAT_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -