📄 fs_type.h
字号:
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* fs_type.h
*
* Project:
* --------
* Maui
*
* Description:
* ------------
* This file defines the type/structure for export
*
* Author:
* -------
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
* removed!
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#ifndef _FS_TYPE_H
#define _FS_TYPE_H
/*------------------------- SPECIAL DEFINE -----------------------*/
#ifndef MAX_TLS_INDEX
#define MAX_TLS_INDEX 2
#endif
#define FS_TRACE_INDEX 2
#define FS_MAX_PATH 520 //Max path length in SPEC
#define FS_GenVFN_SIZE 92 //buffer size for Virtual File (include NULL tail)
#define FS_BUFFER_SIZE 512
//Attributes in SPEC
#define FS_ATTR_READ_ONLY 0x01
#define FS_ATTR_HIDDEN 0x02
#define FS_ATTR_SYSTEM 0x04
#define FS_ATTR_VOLUME 0x08
#define FS_ATTR_DIR 0x10
#define FS_ATTR_ARCHIVE 0x20
#define FS_LONGNAME_ATTR 0x0F
//Customized Device List
#define FS_DEVICE_REMOVABLE 0x0008
#define FS_DEVICE_NOR_FLASH 0x0040
#define FS_DEVICE_NAND_FLASH 0x0080
#define FS_DEVICE_EXTERNAL 0x0800
/*-------------------- Parameter for APIs ---------------------*/
//FS_Open Parameter
#define FS_READ_WRITE 0x00000000L
#define FS_READ_ONLY 0x00000100L
#define FS_OPEN_SHARED 0x00000200L
#define FS_OPEN_NO_DIR 0x00000400L
#define FS_OPEN_DIR 0x00000800L
#define FS_CREATE 0x00010000L
#define FS_CREATE_ALWAYS 0x00020000L
#define FS_COMMITTED 0x01000000L
#define FS_CACHE_DATA 0x02000000L
#define FS_LAZY_DATA 0x04000000L
#define FS_NONBLOCK_MODE 0x10000000L
#define FS_PROTECTION_MODE 0x20000000L
//FS_GetDiskInfo Parameter
#define FS_DI_BASIC_INFO 0x00000001L
#define FS_DI_FREE_SPACE 0x00000002L
#define FS_DI_FAT_STATISTICS 0x00000004L
//FS_GetDrive Parameter
#define FS_NO_ALT_DRIVE 0x00000001
#define FS_ONLY_ALT_SERIAL 0x00000002
#define FS_DRIVE_I_SYSTEM 0x00000004
#define FS_DRIVE_V_NORMAL 0x00000008
#define FS_DRIVE_V_REMOVABLE 0x00000010
#define FS_DRIVE_V_EXTERNAL 0x00000020
//FS_GeneralFormat Parameter
#define FS_FORMAT_HIGH 0x00000001
#define FS_FORMAT_LOW 0x00000002
#define FS_FMT_SINGLE_FAT 0x00000100L
#define FS_FMT_FORCE_LOW_LEVEL 0x00000200L
#define FS_FMT_NO_LOW_LEVEL 0x00000400L
#define FS_FMT_GET_DATA_SECTOR 0x00000800L
#define FS_FMT_FAT_12 0x00001000L
#define FS_FMT_FAT_16 0x00002000L
#define FS_FMT_FAT_32 0x00004000L
#define FS_FMT_NO_FAT_32 0x00008000L
#define FS_FLASH_NO_HIGH_FMT 0x20000000L
#define FS_FLASH_NO_LOW_FMT 0x40000000L
//FS_Move, FS_Count, FS_GetFolderSize, FS_XDelete, FS_XFindReset (Sorting) Parameter and Flag Passing
#define FS_MOVE_COPY 0x00000001 // FS_Move only, Public
#define FS_MOVE_KILL 0x00000002 // FS_Move only, Public
#define FS_FILE_TYPE 0x00000004 // Recursive Type API Common, Public
#define FS_DIR_TYPE 0x00000008 // Recursive Type API Common, Public
#define FS_RECURSIVE_TYPE 0x00000010 // Recursive Type API Common, Public
#define FS_NO_SORT 0x00000020 // Sort Parameter, Public
#define FS_SORT_NAME 0x00000040 // Sort Parameter, Public
#define FS_SORT_SIZE 0x00000080 // Sort Parameter, Public
#define FS_SORT_ATTR 0x00000100 // Sort Parameter, Public
#define FS_SORT_TYPE 0x00000200 // Sort Parameter, Public
#define FS_SORT_TIME 0x00000400 // Sort Parameter, Public
#define FS_COUNT_SIZE 0x00000800 // QM internal for RecFolderAction (DEPARTED)
#define FS_REMOVE_CHECK 0x00001000 // QM internal for RecFolderAction (DEPARTED)
#define FS_FILTER_SYSTEM_ATTR 0x00002000 // FS_Count only, Public
#define FS_REC_COPYRIGHT_DEL 0x00004000 // FS_SweepCopyrightFile only, <Private, APP SHOULD NOT USE>
#define FS_REC_COPYRIGHT_LIST 0x00008000 // FS_GetCopyrightList only, <Private, APP SHOULD NOT USE>
#define FS_MOVE_OVERWRITE 0x00010000 // FS_Move only, Public
#define FS_XDEL_ABORT_WATCH 0x00020000 // FS_XDelete only, <Private, APP SHOULD NOT USE>
#define FS_FILTER_HIDDEN_ATTR 0x00040000 // FS_Count only, Public
//FSSetTrace Parameter
#define FS_TRACE_API 0x00000001
#define FS_TRACE_ERROR 0x00000002
#define FS_TRACE_DISABLE 0x00000004
#define FS_TRACE_ALL_TASK 0x00000008
//Quota Management
#define FS_QMAX_NO_LIMIT 0xf1f2f3f4 //~3.8GB
#define FS_COUNT_IN_BYTE 0x00000001
#define FS_COUNT_IN_CLUSTER 0x00000002
//FS_Abort Parameter
#define FS_ABORT_CHECK_DRIVE 0x12345678
#define FS_ABORT_XDELETE 0x87654321
#define FS_ABORT_MOVE 0xFEDCBA09
//FS_ConfigExtDevice Parameter
#define FS_SETUP_EXT_DEVICE 0x02468ACE
#define FS_RELEASE_EXT_DEVICE 0x13579BDF
/*-------------------- Type Define --------------------*/
#if defined(GEN_FOR_PC) /* Code Gen */
#define ONE_BYTE_ALIGN_ADS
#elif defined(__MTK_TARGET__) /* Target */
#define ONE_BYTE_ALIGN_ADS __packed
#else /* Simulator */
#define ONE_BYTE_ALIGN_ADS
#endif
#ifdef __MTK_TARGET__
typedef unsigned int DWORD;
#endif /* prevent "duplicate define" compiler warning on Simulator */
typedef unsigned short WORD;
typedef unsigned int UINT;
typedef unsigned char BYTE;
typedef void * HANDLE;
typedef int FS_HANDLE;
typedef void (* FS_FormatCallback)(const char * DeviceName, int Action, UINT Total, UINT Completed);
typedef int FS_ProgressCallback(int Action, UINT Total, UINT Completed, UINT Info);
typedef int MTCallback(WCHAR * target1, WCHAR * target2, UINT Action, FS_ProgressCallback Progress); // internal RecFolderAction
typedef ONE_BYTE_ALIGN_ADS struct
{
unsigned int Second2:5;
unsigned int Minute:6;
unsigned int Hour:5;
unsigned int Day:5;
unsigned int Month:4;
unsigned int Year1980:7;
} FS_DOSDateTime;
typedef ONE_BYTE_ALIGN_ADS struct
{
char FileName[8];
char Extension[3];
BYTE Attributes;
BYTE NTReserved;
BYTE CreateTimeTenthSecond;
FS_DOSDateTime CreateDateTime;
WORD LastAccessDate;
WORD FirstClusterHi;
FS_DOSDateTime DateTime;
WORD FirstCluster;
UINT FileSize;
}FS_DOSDirEntry;
typedef struct
{
UINT Cluster;
UINT Index;
}FS_FileLocationHint;
typedef struct
{
const FS_DOSDirEntry * DirEntry;
UINT FilePos;
UINT AllocatedSize;
UINT ClusterChains;
UINT VolumeSerialNumber;
const char * FullName;
}FS_FileInfo;
typedef struct
{
char Label[24];
char DriveLetter;
BYTE WriteProtect;
char Reserved[2];
UINT SerialNumber;
UINT FirstPhysicalSector;
UINT FATType;
UINT FATCount;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -