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

📄 _dosfrmt.h

📁 M-System DOC(Disk on a Chip) Flash芯片映像读写工具, 可以进行二片Flash芯片的内容互相拷贝, 提高烧录程序的效率.
💻 H
字号:
/***********************************************************************************/
/*                        M-Systems Confidential                                   */
/*           Copyright (C) M-Systems Flash Disk Pioneers Ltd. 1995-2003            */
/*                         All Rights Reserved                                     */
/***********************************************************************************/
/*                            NOTICE OF M-SYSTEMS OEM                              */
/*                           SOFTWARE LICENSE AGREEMENT                            */
/*                                                                                 */
/*      THE USE OF THIS SOFTWARE IS GOVERNED BY A SEPARATE LICENSE                 */
/*      AGREEMENT BETWEEN THE OEM AND M-SYSTEMS. REFER TO THAT AGREEMENT           */
/*      FOR THE SPECIFIC TERMS AND CONDITIONS OF USE,                              */
/*      OR CONTACT M-SYSTEMS FOR LICENSE ASSISTANCE:                               */
/*      E-MAIL = info@m-sys.com                                                    */
/***********************************************************************************/

/*
 * $Log:   V:/PVCSDB/DiskOnChip/archives/general storage/TrueFFS/src/include/_dosfrmt.h-arc  $
 * 
 *    Rev 1.3   Jan 14 2004 22:29:26   oris
 * Added reserved field to FLPathSegment record.
 * 
 *    Rev 1.2   Oct 20 2003 09:01:04   oris
 * Added new definition defaults :
 *   PATH_CHARACTERS_MAX_NUM - maximum path segment
 *   FL_MAX_TREE_LEVELS              - maximum sub directory depth
 * 
 *    Rev 1.1   Sep 30 2003 17:55:30   oris
 * Added SureFS long file names definitions
 * Removed flDosFormat prototype
 * 
 *    Rev 1.0   Apr 09 2003 12:16:02   OriS
 * Initial revision.
 * 
 */

#ifndef _DOSFRMT_H
#define _DOSFRMT_H

#ifndef LFN_NAME_MAX_CHARACTERS
#define LFN_NAME_MAX_CHARACTERS			255
#endif /* LFN_NAME_MAX_CHARACTERS */

#ifndef PATH_SEGMENTS_MAX_NUM
#define PATH_SEGMENTS_MAX_NUM			10
#endif /* PATH_SEGMENTS_MAX_NUM */

#ifndef PATH_CHARACTERS_MAX_NUM
#define PATH_CHARACTERS_MAX_NUM			LFN_NAME_MAX_CHARACTERS
#endif  /* PATH_CHARACTERS_MAX_NUM */

#ifndef FL_MAX_TREE_LEVELS
#define FL_MAX_TREE_LEVELS	  ( PATH_CHARACTERS_MAX_NUM / 2 + 1 )
#endif  /* FL_MAX_TREE_LEVELS */

#define UNICODE_CHAR_PER_LFN_ENTRY		13

#define SHORT_NAME_MAX_LENGTH	        8
#define EXTENSION_MAX_LENGTH	        3
#define NAME_8_3_MAX_LENGTH	            12		/* "tttttttt.xxx" */

/* Directory entry attribute bits for internal use */
#define ATTR_SUREFS_GEN_ATTENTION_FLAG	0x40
#define ATTR_SUREFS_REN_ATTENTION_FLAG	0x80
#define ATTR_SUREFS_ATTENTION_FLAG_MASK	(ATTR_SUREFS_GEN_ATTENTION_FLAG |	\
										ATTR_SUREFS_REN_ATTENTION_FLAG)

#define ATTR_MASK	((unsigned char)(FL_ATTR_READ_ONLY | FL_ATTR_HIDDEN | FL_ATTR_SYSTEM | \
                                     FL_ATTR_VOL_LABEL | FL_ATTR_DIRECTORY | FL_ATTR_ARCHIVE))
#define LFN_ATTRIBUTES	((unsigned char)(FL_ATTR_READ_ONLY | FL_ATTR_HIDDEN | \
                                         FL_ATTR_SYSTEM | FL_ATTR_VOL_LABEL))

#define DIRECTORY_ENTRY_SIZE	         sizeof(DirectoryEntry)

#define DIRECTORY_ENTRIES_PER_SECTOR	 (FL_SECTOR_SIZE / DIRECTORY_ENTRY_SIZE)

#define SET_GLOBAL_ATTENTION_FLAG        0
#define RESET_GLOBAL_ATTENTION_FLAG	     0xffff
#define GLOBAL_ATT_FLAG_FAT_ENTRY        1

#define	NEVER_USED_DIR_ENTRY             0
#define	DELETED_DIR_ENTRY                ((FLSByte) 0xe5)

/* FAT definitions */

#define	FAT_FREE                         0
#define	FAT_BAD_CLUSTER	                 0xfff7
#define	FAT_LAST_CLUSTER                 0xffff  /* actually any of 0xfff8-0xffff */

/* Partition table definitions */

#define PARTITION_SIGNATURE	             0xaa55

#define CYLINDER_SECTOR(cylinder,sector) ((sector) + ((cylinder & 0xff) << 8) + ((cylinder & 0x300) >> 2))

#define FAT12_PARTIT                     0x01
#define FAT16_PARTIT                     0x04
#define EX_PARTIT                        0x05
#define DOS4_PARTIT                      0x06
#define MAX_PARTITION_DEPTH              8

typedef enum {
	LFN_LONG_NAME,					/* for long file name		*/
	LFN_SHORT_NAME,					/* for 8.3 short file name	*/
	LFN_UPPERCASE_FOR_SHORT,		/* length and characters set but not case match LFN	*/
	LFN_INVALID_SET					/* found invalid file name characters				*/
} LfnStatus;

/*-------------------------------------------------------------------------------------------
*				F L P a t h S e g m e n t
* The structure is used when analyzing path string.
* Parameters:	name - address of first character of the path segment (unicode null terminated
*						string. For example, for first segment of /first/second/third.ext it 
*						will point on "first".
*				length - number of characters of the path segment
*				buffSize - in case of retrieving file name this field contains size of supplied buffer
*										in characters.
*				get - if TRUE, this structure is used to retrieve found file name 
*						(getFirstFileName()). If FALSE, this structure contains file name to 
*						be opened/created/found	(findFileName()).
*------------------------------------------------------------------------------------------*/
typedef struct {
	FLWchar FAR1	*name;
	short           length;
	short           buffSize;
	FLBoolean       get;
	FLBoolean       reserved;
} FLPathSegment;

/*--------------------------------------------------------------------------
*				F L L f n S e a r c h
* The FLLfnSearch structer is used when searching directory by specified	
* file name.																
* Parameters:	
*		neverUsed - indicates that found at least one directory entry in sector
*					that was never used.
*		verifiedChars - Number of characters that successfully compared	with	
*						file name or found in free entries in previous sector	
*		checksum - LFN checksum found in previous sector							
*		lastNum - LFN order number of last LFN entry found in previous sector		
*		idx - directory entry index of found entry								
*		status - LFN_SHORT_NAME, LFN_LONG_NAME, LFN_UPPERCASE_FOR_SHORT,
*					LFN_INVALID_SET
*---------------------------------------------------------------------------*/
typedef struct {
	FLBoolean		neverUsed;
	unsigned long	verifiedChars;		
	unsigned char	checksum;
	unsigned long	lastNum;
	unsigned long	idx;
	LfnStatus		status;
} FLLfnSearch;

#endif /* _DOSFRMT_H */


⌨️ 快捷键说明

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