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

📄 sys_vfs.h

📁 凌阳SPCE3200 系统开发板随机自带源程序。共安排了32个子目录
💻 H
字号:
#ifndef	__vfs_INTERFACE_h__
#define	__vfs_INTERFACE_h__

#define RWCOUNT int
/**************************************************************************/
/*                              M A C R O S                               */
/***************************************************************************/
/*-----------------  seek flags  ------------------*/
#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  */

/***************** open flags (the 2nd parameter)**********************/   //wanghuidi
#define O_RDONLY        0x0000
#define O_WRONLY        0x0001
#define O_RDWR          0x0002

#define O_TRUNC         0x0200 /*    both */
#define O_CREAT         0x0400
#define O_EXCL		    0x4000	/* not fcntl */

/*-----------------  open flags (the 3rd parameter) --------------------*/
#define	_S_IREAD	0x0400	/* Read by owner.  */
#define	_S_IWRITE	0x0200	/* Write by owner.  */

/*------------------  error codes  ------------------*/
/* these code should be defined in erron.h in ussally Clib */
#define	ENOENT   2 	  /* No such file or directory */
#define	EIO      5	  /* I/O error */
#define	EBADF 	 9	  /* Bad file number */
#define	ENOMEM 	 12   /* Not enough core */
#define	EACCES	 13   /* Permission denied */
#define	EBUSY    16	  /* Device or resource busy */
#define	EEXIST   17   /* File exists */
#define	EISDIR   21
#define	EINVAL 	 22   /* Invalid argument */
#define	EMFILE 	 24   /* Too many open files */
#define	ENOSPC 	 28   /* No space left on device */
#define ENOTEMPTY 93  /* directory is not empty; or directory is either current working directory or root directory.*/
#define	ERANGE       34	/* Math result not representable */
#define	EROFS        30	/* Read-only file system */
#define ENAMETOOLONG 78
#define ENOTDIR 20
/*-----------------------------------------------------*/
/* File attribute constants for _findfirst() */

#define _A_NORMAL       0x00    /* Normal file - No read/write restrictions */
#define _A_RDONLY       0x01    /* Read only file */
#define _A_HIDDEN       0x02    /* Hidden file */
#define _A_SYSTEM       0x04    /* System file */
#define _A_SUBDIR       0x10    /* Subdirectory */
#define _A_ARCH         0x20    /* Archive file */

/*-----------------------------------------------------*/

/* 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 */

//#define D_LFN (D_RDONLY | D_HIDDEN | D_SYSTEM | D_VOLID)
#define D_ALL (D_RDONLY | D_HIDDEN | D_SYSTEM | D_DIR | D_ARCHIVE)
/**************************************************************************/
/*                              DATA TYPES ABOUT FILE                     */
/***************************************************************************/

//----------------------------------
struct stat
{
    unsigned short st_mode;
//	_dev_t st_dev;
//	_dev_t st_rdev;
//    short st_nlink;
    long st_size;
//    long st_atime;
    unsigned long st_mtime;
//    time_t st_ctime;
};//----------------------------------
struct statbuf
{
    unsigned short st_mode;
//	_dev_t st_dev;
//	_dev_t st_rdev;
//    short st_nlink;
    long st_size;
//    long st_atime;
    unsigned long st_mtime;
//    time_t st_ctime;
};
//----------------------------------
struct _diskfree_t {
        unsigned long total_clusters;
        unsigned long avail_clusters;
        unsigned long sectors_per_cluster;
        unsigned long bytes_per_sector;
        };

struct f_info
{
	char f_name[255];
	unsigned char f_attrib;
	unsigned int  f_time;
	unsigned int  f_date;
	unsigned long f_size;
};

/****************************************************************************/
/***************************************************************************/
/*        F U N C T I O N    D E C L A R A T I O N S	     			   */
/***************************************************************************/
extern int open(char *path,int open_flag,...);
extern int close(int fd);
extern int read(int fd, void *buf,unsigned int size);
extern int write(int fd,void *buf, unsigned int size);
extern long lseek(int fd,long offset,int fromwhere);
extern int unlink(char *filename);
extern int rename(char *oldname, char *newname);
extern int rmdir(char *pathname);
extern int mkdir(char *pathname);
extern int chdir(char *path);
extern char *getcwd( char *buffer, int maxlen );

extern int fstat(int handle, struct stat *statbuf);
extern int stat(char*, struct stat*);


extern int _findfirst(char *name, struct f_info *f_info, unsigned int attr);
extern int _findnext(struct f_info *f_info);
extern int _getdiskfree(short, struct _diskfree_t *);

/****************************************************************************/
extern long vfsFreeSpace(short drive);
extern int _copy(char *path1,char *path2);

extern unsigned char fs_format(unsigned char Drv, unsigned char  FAT_Type);
extern int fs_init(void);
extern int fs_mount(int);
/****************************************************************************/
/****************************************************************************/
extern char *get_fs_version(void);

extern void _clsfserrcode ();
extern int _getfserrcode ();

/****************************************************************************/
#endif //# end __FS_INTERFACE_h__

⌨️ 快捷键说明

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