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

📄 fs_type.h

📁 最新MTK手机软件源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
*  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 + -