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

📄 filesys.h

📁 本程序为ST公司开发的源代码
💻 H
字号:
/************************************************** * * filesys.h * * CVS ID:   $Id: filesys.h,v 1.30 2007/07/24 15:50:29 trubac Exp $ * Author:   Ondrey Trubac [OT] - STM * Date:     $Date: 2007/07/24 15:50:29 $ * Revision: $Revision: 1.30 $ * * Description: * *   File System and ID3 tag decoding * *************************************************** * * COPYRIGHT (C) ST Microelectronics  2005 *            All Rights Reserved * *************************************************** * * STM CVS Log: * * $Log: filesys.h,v $ * Revision 1.30  2007/07/24 15:50:29  trubac * Fix for slow FAT mounting, FatEntryCheck added * * Revision 1.29  2007/02/06 11:15:06  belardi * Added dynamic remapping of SDRAM for ESP vs. X_array * * Revision 1.28  2006/12/12 11:01:13  sedmik * vars definitions related to file update * * Revision 1.27  2006/12/01 15:39:25  sedmik * sectorbuffer size define * * Revision 1.26  2006/11/30 11:06:27  belardi * Changed host_update_file_index to uint16 to comply with XAR_SafeIndex() * * Revision 1.25  2006/11/27 19:45:15  belardi * Host Update protocol addition * - save index of update file in global variable for controller * * Revision 1.24  2006/10/26 13:35:15  longauer * File Entry reorganized; VAT20 re-addressing bug found * * Revision 1.23  2006/10/20 15:08:36  longauer * VAT works; + code reorganization * * Revision 1.22  2006/10/18 12:45:30  belardi * Added definition of filename shrink variables shared with playlist * * Revision 1.21  2006/10/18 09:41:14  chlapik * force_execution added to mount params * * Revision 1.20  2006/09/28 09:32:36  belardi * Removed (global) unused variables * * Revision 1.19  2006/09/27 15:39:16  longauer * VAT first time working * * Revision 1.18  2006/09/15 19:48:33  belardi * Merged the m8_cav2_cm80506_cs3563. * - renamed variables/struct fields * * ***************************************************/#ifndef DEFINE_FILESYS_H#define DEFINE_FILESYS_H#include "accordoptypes.h"#include "apdevsys.h"#include "ioread.h"#include "controller.h"#define SECTORBUFFER_SIZE 4096#define FLAG_DIR_ROOT   0#define FLAG_DIR_NEXT   1#define FLAG_DIR_PREVIOUS   2#define FLAG_DIR_SUBDIR     3#define FLAG_DIR_PARENT     4#define FLAG_DIR_BY_INDEX   7#define FLAG_DIR_SHORT_INDEX 8#define FLAG_FILE_FIRST     0#define FLAG_FILE_NEXT      1#define FLAG_FILE_PREVIOUS  2#define FLAG_FILE_LAST      3#define FLAG_FILE_BY_INDEX  7#define FS_MOUNT_STATE_DETECT     1#define FS_MOUNT_STATE_SCAN_DIR   2#define FS_MOUNT_STATE_SCAN_ITEMS   3#define FS_MOUNT_STATE_ERROR    4#define FS_INIT_STATE_WAIT_FOR_STOP 1typedef struct{  FS_DESCRIPTOR *fs_descriptor;  int32 DirRecordLba;  int32 DirRecordLength;  int32 DirRecordOffset;  int16 OffsetSectors;  int16 DirItems;  int16 volume;  uint8 byte0;  uint8 devid;  uint8 partition;  t_FStype fs_type;  //only for case of FAT  ENTRY_ADDRESS DirEntryAddress;  boolean IsRoot;  uint32 Cluster;  uint32 FileSize;  uint32 FatEntryCheck;  uint8 fs_check;  int16 scan_index;  int16 ExtentScanIndex;  //only for case of UDF  UDF_ShortAD	allocation_descriptor_table [UDF_MAX_NUMBER_OF_DESCRIPTORS];  uint16		allocation_descriptor_count;  UDF_ALLOC_DESC_FLAG	allocation_descriptor_flags;  uint16 		loopCounter;						  uint16 		incompleteFID;	/* starting position of incomplete FID */  uint16		indexfileID;}SCAN_STRUCT;GRESULT ISO_ScanFS(FDID fid);#define FS_STOP_MOUNT     1#define FS_STOP_TAG     2typedef struct{  int flags;}t_filesys_stop_params;typedef struct{  t_duid devid;  uint8 flags;  UInt force_execution    : 1;}t_filesys_mount_params;typedef struct{  t_SongInfos *xfile;  uint8 flags;}t_filesys_tag_params;typedef enum{  FILESYS_CMD_INIT,  FILESYS_CMD_INIT_FOR_NEW_DISC,  FILESYS_CMD_MOUNT_FS,  FILESYS_CMD_TAG_DECODE,  FILESYS_CMD_STOP,  FILESYS_CMD_DATA_READY} t_filesys_command;typedef struct{  t_filesys_command command;  uint8 force_execution;  union  {    t_filesys_mount_params mount_params;    t_filesys_tag_params tag_params;    t_filesys_stop_params stop_params;  } params;} t_filesys_cmd_event;#define  t_filesys_inevent uint32#define  t_filesys_outevent uint32/*---------------------------------------------------------------------------*//*!\brief File System Task inevent/outevent defs                             *//*---------------------------------------------------------------------------*/#define  FILESYS_COMMAND_EVENT      0xff#define  FILESYS_MOUNT_COMMAND_EVENT    0x01#define  FILESYS_STOP_COMMAND_EVENT   0x02#define  FILESYS_TAG_COMMAND_EVENT    0x04#define  FILESYS_INIT_COMMAND_EVENT   0x08#define  FILESYS_CACHE_DATA_EVENT   0x10#define  FILESYS_STATUS_EVENT         0x100#define  FILESYS_DATA_READY_EVENT     0x200// outevents#define FS_INIT_FINISHED    CONTROLLER_NEW_FILESYS_INIT_EVENT#define FS_STOP_FINISHED    CONTROLLER_NEW_FILESYS_STOP_EVENT#define FS_MOUNT_FINISHED   CONTROLLER_NEW_FILESYS_MOUNT_EVENT#define FS_TAG_DECODE_FINISHED  CONTROLLER_NEW_FILESYS_TAG_EVENT#define FS_MOUNT_RESUME     1//-------------------------------------// transition results#define FS_TRAN_RESULT_INIT   1#define FS_TRAN_RESULT_STOP   2#define FS_TRAN_RESULT_MOUNT  4#define FS_TRAN_RESULT_TAG    8//extern t_filesys_status_event filesys_status_event;extern t_filesys_cmd_event filesys_cmd_event;// extern t_filesys_cmd_event local_filesys_cmd_event; // [RB] unusedextern t_filesys_inevent filesys_inevent;extern t_filesys_outevent filesys_outevent;extern t_filesys_inevent local_filesys_inevent;extern t_filesys_mount_params fs_mount_params;extern t_filesys_tag_params fs_tag_params;extern t_fsm filesys_fsm_init;extern t_fsm filesys_fsm_stop;extern t_fsm filesys_fsm_mount;extern t_fsm filesys_fsm_tag;#if (1 == HAVE_FSHRINK)extern int16 FILE_SHRINK_MODE_STEP;extern int16 FILE_SHRINK_MODE_MAX;extern int16 FILE_SHRINK_MODE_MIN;extern int16 DIR_SHRINK_MODE_STEP;extern int16 DIR_SHRINK_MODE_MAX;extern int16 DIR_SHRINK_MODE_MIN;extern int16 file_shrink_mode,dir_shrink_mode;#endif#if ((1 == HAVE_HOST_UPDATE) || (1 == HAVE_HOST_UPDATE_NEW))extern uint16 host_update_file_index;#endifvoid FileSystemTask(void *unused);RETVAL filesys_cmd(t_filesys_cmd_event *cmd_event);void filesys_fsm(void);void filesys_init_for_new_disc(void);uint16 filesys_init_transition(void);uint16 filesys_mount_transition(void);RETVAL filesys_process_postevents(void);RETVAL filesys_process_preevents(void);uint16 filesys_stop_transition(void);uint32 filesys_shrink_name(int16 mode,uint8 *shrbuf, uint16 len);uint16 filesys_tag_decode_transition(void);void filesys_mount_stop(void);void filesys_tag_decode_stop(void);GRESULT IO_Read(uint32 flags);void InitFileSystemTask(void);void Init_X_array(void);GRESULT XAR_SeekFile(t_SongInfos *song_info, uint32 offset, uint32 use_cache);void XAR_InitSafeList(void);GRESULT filesys_next_shrink_mode(void);#endif

⌨️ 快捷键说明

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