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

📄 flbase.h

📁 该程序是一个tffs文件系统的源码
💻 H
字号:
/* * $Log:   P:/user/amir/lite/vcs/flbase.h_v  $         Rev 1.15   06 Oct 1997 19:39:44   danig   Changed LEushort\long & Unaligned\4 to arrays         Rev 1.14   10 Sep 1997 16:11:40   danig   Got rid of generic names         Rev 1.13   31 Aug 1997 14:27:32   danig   flTooManyComponents         Rev 1.12   28 Aug 1997 16:46:00   danig   Moved SectorNo definition from fltl.h         Rev 1.11   21 Aug 1997 14:06:42   unknown   Unaligned4         Rev 1.10   31 Jul 1997 14:28:22   danig   UNALIGNED -> Unaligned         Rev 1.9   28 Jul 1997 15:15:58   danig   Standard typedefs         Rev 1.8   24 Jul 1997 18:05:40   amirban   New include file org         Rev 1.7   07 Jul 1997 15:23:26   amirban   Ver 2.0         Rev 1.5   18 May 1997 17:34:30   amirban   Defined dataError         Rev 1.4   03 Oct 1996 11:56:16   amirban   New Big-Endian         Rev 1.3   18 Aug 1996 13:47:34   amirban   Comments         Rev 1.2   12 Aug 1996 15:46:58   amirban   Defined incomplete and timedOut codes         Rev 1.1   16 Jun 1996 14:03:00   amirban   Added iFLite compatibility mode         Rev 1.0   20 Mar 1996 13:33:20   amirban   Initial revision. *//************************************************************************//*                                                                      *//*		FAT-FTL Lite Software Development Kit			*//*		Copyright (C) M-Systems Ltd. 1995-1996			*//*									*//************************************************************************/#ifndef FLBASE_H#define FLBASE_H#ifdef __cplusplusextern "C" {#endif#include "flsystem.h"#include "flcustom.h"/* standard type definitions */typedef int 		FLBoolean;/* Boolean constants */#ifndef FALSE#define FALSE	0#endif#ifndef TRUE#define	TRUE	1#endif#ifndef TFFS_ON#define	TFFS_ON		1#endif#ifndef TFFS_OFF#define	TFFS_OFF	0#endif#define SECTOR_SIZE		(1 << SECTOR_SIZE_BITS)/* define SectorNo range according to media maximum size */#if (MAX_VOLUME_MBYTES * 0x100000l) / SECTOR_SIZE > 0x10000ltypedef unsigned long SectorNo;#define	UNASSIGNED_SECTOR 0xffffffffl#elsetypedef unsigned short SectorNo;#define UNASSIGNED_SECTOR 0xffff#endif#if FAR_LEVEL > 0  #define FAR0	far#else  #define FAR0#endif#if FAR_LEVEL > 1  #define FAR1	far#else  #define FAR1#endif#if FAR_LEVEL > 2  #define FAR2	far#else  #define FAR2#endif#define vol (*pVol)#ifndef TFFS_BIG_ENDIANtypedef unsigned short LEushort;typedef unsigned long LEulong;#define LE2(arg)	arg#define	toLE2(to,arg)	(to) = (arg)#define LE4(arg)	arg#define	toLE4(to,arg)	(to) = (arg)#define COPY2(to,arg)	(to) = (arg)#define COPY4(to,arg)	(to) = (arg)typedef unsigned char Unaligned[2];typedef Unaligned Unaligned4[2];#define UNAL2(arg)	fromUNAL(arg)#define toUNAL2(to,arg)	toUNAL(to,arg)#define UNAL4(arg)	fromUNALLONG(arg)#define toUNAL4(to,arg)	toUNALLONG(to,arg)extern void toUNAL(unsigned char FAR0 *unal, unsigned n);extern unsigned short fromUNAL(unsigned char const FAR0 *unal);extern void toUNALLONG(Unaligned FAR0 *unal, unsigned long n);extern unsigned long fromUNALLONG(Unaligned const FAR0 *unal);#elsetypedef unsigned char LEushort[2];typedef unsigned char LEulong[4];#define LE2(arg)	fromLEushort(arg)#define	toLE2(to,arg)	toLEushort(to,arg)#define LE4(arg)	fromLEulong(arg)#define	toLE4(to,arg)	toLEulong(to,arg)#define COPY2(to,arg)	copyShort(to,arg)#define COPY4(to,arg)	copyLong(to,arg)#define	Unaligned	LEushort#define	Unaligned4	LEulongextern void toLEushort(unsigned char FAR0 *le, unsigned n);extern unsigned short fromLEushort(unsigned char const FAR0 *le);extern void toLEulong(unsigned char FAR0 *le, unsigned long n);extern unsigned long fromLEulong(unsigned char const FAR0 *le);extern void copyShort(unsigned char FAR0 *to,		      unsigned char const FAR0 *from);extern void copyLong(unsigned char FAR0 *to,		     unsigned char const FAR0 *from);#define	UNAL2		LE2#define	toUNAL2		toLE2#define	UNAL4		LE4#define	toUNAL4		toLE4#endif /* TFFS_BIG_ENDIAN */#ifndef IFLITE_ERROR_CODEStypedef enum {flOK 		= 0,	/* Status code for operation.					   A zero value indicates success,					   other codes are the extended					   DOS codes. */	     flBadFunction	= 1,	     flFileNotFound	= 2,	     flPathNotFound	= 3,	     flTooManyOpenFiles = 4,	     flNoWriteAccess	= 5,	     flBadFileHandle	= 6,	     flDriveNotAvailable = 9,	     flNonFATformat	= 10,	     flFormatNotSupported = 11,	     flNoMoreFiles	= 18,	     flWriteProtect 	= 19,	     flBadDriveHandle	= 20,	     flDriveNotReady 	= 21,	     flUnknownCmd 	= 22,	     flBadFormat	= 23,	     flBadLength	= 24,	     flDataError	= 25,	     flUnknownMedia 	= 26,	     flSectorNotFound 	= 27,	     flOutOfPaper 	= 28,	     flWriteFault 	= 29,	     flReadFault	= 30,	     flGeneralFailure 	= 31,	     flDiskChange 	= 34,	     flVppFailure	= 50,	     flBadParameter	= 51,	     flNoSpaceInVolume	= 52,	     flInvalidFATchain	= 53,	     flRootDirectoryFull = 54,	     flNotMounted	= 55,	     flPathIsRootDirectory = 56,	     flNotADirectory	= 57,	     flDirectoryNotEmpty = 58,	     flFileIsADirectory	= 59,	     flAdapterNotFound	= 60,	     flFormattingError	= 62,	     flNotEnoughMemory	= 63,	     flVolumeTooSmall	= 64,	     flBufferingError	= 65,	     flFileAlreadyExists = 80,	     flIncomplete	= 100,	     flTimedOut		= 101,	     flTooManyComponents = 102#else#include "type.h"typedef enum {flOK 		= ERR_NONE,					/* Status code for operation.					   A zero value indicates success,					   other codes are the extended					   DOS codes. */	     flBadFunction	= ERR_SW_HW,	     flFileNotFound	= ERR_NOTEXISTS,	     flPathNotFound	= ERR_NOTEXISTS,	     flTooManyOpenFiles	= ERR_MAX_FILES,	     flNoWriteAccess	= ERR_WRITE,	     flBadFileHandle	= ERR_NOTOPEN,	     flDriveNotAvailable = ERR_SW_HW,	     flNonFATformat	= ERR_PARTITION,	     flFormatNotSupported = ERR_PARTITION,	     flNoMoreFiles	= ERR_NOTEXISTS,	     flWriteProtect 	= ERR_WRITE,	     flBadDriveHandle	= ERR_SW_HW,	     flDriveNotReady 	= ERR_PARTITION,	     flUnknownCmd 	= ERR_PARAM,	     flBadFormat	= ERR_PARTITION,	     flBadLength	= ERR_SW_HW,	     flDataError	= ERR_READ,	     flUnknownMedia 	= ERR_PARTITION,	     flSectorNotFound 	= ERR_READ,	     flOutOfPaper 	= ERR_SW_HW,	     flWriteFault 	= ERR_WRITE,	     flReadFault	= ERR_READ,	     flGeneralFailure 	= ERR_SW_HW,	     flDiskChange 	= ERR_PARTITION,	     flVppFailure	= ERR_WRITE,	     flBadParameter	= ERR_PARAM,	     flNoSpaceInVolume	= ERR_SPACE,	     flInvalidFATchain	= ERR_PARTITION,	     flRootDirectoryFull = ERR_DIRECTORY,	     flNotMounted	= ERR_PARTITION,	     flPathIsRootDirectory = ERR_DIRECTORY,	     flNotADirectory	= ERR_DIRECTORY,	     flDirectoryNotEmpty = ERR_NOT_EMPTY,	     flFileIsADirectory	= ERR_DIRECTORY,	     flAdapterNotFound	= ERR_DETECT,	     flFormattingError	= ERR_FORMAT,	     flNotEnoughMemory	= ERR_SW_HW,	     flVolumeTooSmall	= ERR_FORMAT,	     flBufferingError	= ERR_SW_HW,	     flFileAlreadyExists = ERR_EXISTS,	     flIncomplete	= ERR_DETECT,	     flTimedOut		= ERR_SW_HW,	     flTooManyComponents = ERR_PARAM#endif	     } FLStatus;/* call a procedure returning status and fail if it fails. This works only in   routines that return Status */#define checkStatus(exp)      {	FLStatus status = (exp); \				if (status != flOK)	 \				  return status; }#include "flsysfun.h"#ifdef __cplusplus}#endif#endif

⌨️ 快捷键说明

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