📄 filesys.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 + -