www.pudn.com > MP3+JPEG.rar > fsystem.h


#ifndef	__FS_H__ 
#define	__FS_H__ 
 
// lanzhu add 
#include "Typedef.h" 
 
 
//	write your header here 
#include "fs_gen.h" 
#include "misc.h" 
 
 
#ifdef WITHFAT32 
 
	// lanzhu modified 
	#ifndef	CLUSTER 
		#define CLUSTER UINT32			 
	#endif 
//typedef  UINT32 CLUSTER; 
#else 
 
	#ifndef	CLUSTER 
		#define CLUSTER UINT32			 
	#endif 
//typedef  UINT16 CLUSTER; 
#endif 
 
 
// modified by lanzhu 
//typedef  UINT16 dosdate; 
//typedef  UINT16 dostime; 
#ifndef dosdate 
#define dosdate	UINT16 
#endif 
#ifndef dostime 
#define dostime	UINT16 
#endif 
 
 
 
/* 
// marked ny lanzhu @ 12/30/2005 
#define BOOL	int 
#define ULONG   unsigned long 
#define UWORD   unsigned int 
#define UDWORD  unsigned long 
#define UBYTE   unsigned char 
#define BYTE    unsigned char 
#define XDATA   xdata 
 
#define LONG   signed long 
#define WORD   signed int 
#define DWORD  signed long 
 */ 
 
 
/********************************************************************/ 
/*error code, copy from error.h of freedos fs,by WangHuidi 2004-08-25*/ 
/********************************************************************/ 
/* Internal system error returns                                */ 
#define DE_INVLDFUNC    -1      /* Invalid function number      */ 
#define DE_FILENOTFND   -2      /* File not found               */ 
#define DE_PATHNOTFND   -3      /* Path not found               */ 
#define DE_TOOMANY      -4      /* Too many open files          */ 
#define DE_ACCESS       -5      /* Access denied                */ 
#define DE_INVLDHNDL    -6      /* Invalid handle               */ 
#define DE_INVLDACC     -12     /* Invalid access               */ 
#define DE_BLKINVLD     -20     /* invalid block                */ 
#define DE_HNDLDSKFULL  -28     /* handle disk full (?)         */ 
 
 
#define DE_FILEEXISTS   -80     /* File exists*/      
 
/********************************************************************/ 
/********************************************************************/ 
 
/* FAT file system attribute bits*/ 
#define D_NORMAL        0       /* normal                       */ 
#define D_RDONLY        0x01    /* read-only file               */ 
#define D_HIDDEN        0x02    /* hidden                       */ 
#define D_SYSTEM        0x04    /* system                       */ 
#define D_VOLID         0x08    /* volume id                    */ 
#define D_DIR           0x10    /* subdir                       */ 
#define D_ARCHIVE       0x20    /* archive bit                  */ 
    /* /// Added D_DEVICE bit.  - Ron Cemer */ 
 
//2006.5.31 
#define D_FILE			(0x40)	 
//#define D_LFN (D_RDONLY | D_HIDDEN | D_SYSTEM | D_VOLID) 
//#define D_ALL (D_RDONLY | D_HIDDEN | D_SYSTEM | D_DIR | D_ARCHIVE) 
#define D_ALL (D_FILE | D_RDONLY | D_HIDDEN | D_SYSTEM | D_DIR | D_ARCHIVE) 
 
/***************** open flags ******************/   //wanghuidi 
#define O_OPEN          0x0100 /* not     */ 
#define O_TRUNC         0x0200 /*    both */ 
#define O_CREAT         0x0400 
 
 
#define O_RDONLY        0x0000 
#define O_WRONLY        0x0001 
#define O_RDWR          0x0002 
 
 
/***************** seek mode ******************/   
#define SEEK_SET     0 /* offset from beginning of the file*/ 
#define SEEK_CUR     1 /* offset from current location     */ 
#define SEEK_END     2 /* offset from eof  */ 
 
 
#ifdef LFN_API 
//mapping common name to LFN api and short name api 
	 #define 	 fat_unlink 		 fs_lfndelete 	 
	 #define 	 fat_mkdir 		 fs_lfnmkdir 
	 #define 	 fat_open 		 fs_lfnopen 	 
	 #define 	 fat_rename 		 fs_lfnrename 	 
	 #define 	 fat_rmdir 		 fs_lfnrmdir 	 
	 #define 	 fat_chdir 		 fs_lfncd 
	 #define 		 fat_findfirst 	 fs_lfnfindfirst 
	 #define 		 fat_findnext 	 fs_lfnfindnext 
	 #define 		 fat_deleteall 	 fs_lfndeleteall   //20050224 
 
extern INT16 fs_lfndelete(INT8 * dirpath); 
extern INT16 fs_lfnmkdir(INT8 * dirpath); 
extern INT32 fs_lfnopen(INT8 *path , UINT16 flags , UINT16 attrib); 
extern INT16 fs_lfnrename(INT8 * path1 , INT8 * path2); 
extern INT16 fs_lfnrmdir(INT8 * dirpath); 
extern INT16 fs_lfncd(INT8 * PathName); 
extern INT16 fs_lfnfindfirst(INT8 *name , struct f_info *f_info ,  UINT16 attr); 
extern INT16 fs_lfnfindnext(struct f_info *f_info); 
extern INT16 fs_lfndeleteall (INT8 *); 	 // added by Yongliang 2004-11-25 
#else 
 
	 #define 	 fat_unlink 		 fs_delete 	 
	 #define 	 fat_mkdir 		 fs_mkdir 
	 #define 	 fat_open 		 fs_fopen 	 
	 #define 	 fat_rename 		 fs_rename 	 
	 #define 	 fat_rmdir 		 fs_rmdir 	 
	 #define 		 fat_chdir 		 fs_cd            //added by WangHuidi 
	 #define 		 fat_findfirst 	 fs_findfirst 
	 #define 		 fat_findnext 	 fs_findnext 
	 #define 		 fat_deleteall 	 fs_deleteall 	 //added by Yongliang 2004-11-25 
 
extern INT16 fs_delete(INT8 * path); 
extern INT16 fs_mkdir(INT8 * dir); 
extern INT32 fs_fopen(INT8 *path , UINT16 flags , UINT16 attrib); 
extern INT16 fs_rename(INT8 * path1 , INT8 * path2); 
extern INT16 fs_rmdir(INT8 * path); 
extern INT16 fs_cd(INT8 * PathName); 
extern INT16 fs_findfirst(INT8 *name , struct f_info *f_info ,  UINT16 attr); 
extern INT16 fs_findnext(struct f_info *f_info); 
extern INT16 fs_deleteall (INT8 *); 	 // added by Yongliang 2004-11-25 
 
#endif 
 
#define fat_close		fs_fclose 
#define	fat_seek		fs_fseek 
#define fat_write		fs_fwrite 
#define fat_read		fs_fread 
#define	fat_getfsize	fs_getfsize 
#define	fat_getftime	fs_getftime 
#define fat_setfattr	fs_setfattr 
#define	fat_getfattr	fs_getfattr 
#define	fat_setfsize	fs_setfsize 
#define	fat_setftime	fs_setftime 
#define	fat_getcurdir	fs_getcurdir 
#define	fat_getcwd		fs_getcwd 
#define fat_free		fs_free 
#define	fat_init		fs_init 
 
extern  UINT8 fs_getcurdir( UINT8 drive , INT8 *buf); 
extern INT8 *fs_getcwd(INT8 *buf , INT16 buflen); 
extern INT16 fs_fclose(INT16 fd); 
#ifdef _555_FS_ 
extern INT32 fs_fread(INT16 fd ,  UINT32 bp ,  UINT16 n);   
extern INT32 fs_fwrite(INT16 fd , UINT32 bp ,  UINT16 n); 
#else 
extern INT32 fs_fread(INT16 fd , LPDATA bp ,  UINT16 n);   
extern INT32 fs_fwrite(INT16 fd , LPDATA bp ,  UINT16 n); 
#endif 
extern CLUSTER fs_free( UINT8 disk); 
extern INT32 fs_fseek(INT16 fd , INT32 foffset , INT16 origin); 
extern  INT32 fs_getfsize(INT16 fd); 
extern INT16 fs_setfattr(INT16 fd ,  UINT16 attrp); 
extern INT16 fs_getfattr(INT16 fd); 
extern BOOL fs_setfsize(INT16 fd , INT32 size); 
 
#ifdef _555_FS_ 
INT16 fs_setftime(INT16 fd ,  UINT16 ,  UINT16 ,  UINT16); // 2004-11-23 Yongliang change argument list 
INT16 fs_getftime (INT16 fd ,  UINT16 * ,  UINT16 * ,  UINT16 * ,  UINT16 * ,  UINT16 *); // 2004-11-23 Yongliang change function 
#else 
extern INT16 fs_setftime(INT16 fd , dosdate dp , dostime tp); 
extern INT16 fs_getftime(INT16 fd , dosdate * dp , dostime * tp); 
#endif 
extern dostime fs_gettime(void); 
extern dosdate fs_getdate(void); 
extern BOOL dir_exists(INT8 * path); 
extern INT16 fs_changedisk( UINT8 disk);   //wanghuidi ,20050217 
 
extern void fs_init(void); 
 
extern INT16 fs_mount(UBYTE dsk); 
extern INT16 fs_unmount(UBYTE dsk); 
 
#ifdef _555_FS_ 
//20050224 add 
extern INT16 fs_mount ( UINT8 ,  UINT8 ,  UINT8); 
extern INT16 fs_umount ( UINT8); 
extern INT16 fs_getinfo (INT8 * , INT8 * , INT8 * ,  UINT32 * ,  UINT32 * , UINT16 dsk); 
#endif 
 
 
 
/********************************************************/ 
#endif