初始提交
This commit is contained in:
		
							
								
								
									
										74
									
								
								Project/Src/rt-thread/components/dfs/include/dfs_file.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								Project/Src/rt-thread/components/dfs/include/dfs_file.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| /* | ||||
|  * Copyright (c) 2006-2018, RT-Thread Development Team | ||||
|  * | ||||
|  * SPDX-License-Identifier: Apache-2.0 | ||||
|  * | ||||
|  * Change Logs: | ||||
|  * Date           Author       Notes | ||||
|  * 2005-01-26     Bernard      The first version. | ||||
|  */ | ||||
|  | ||||
| #ifndef __DFS_FILE_H__ | ||||
| #define __DFS_FILE_H__ | ||||
|  | ||||
| #include <dfs.h> | ||||
| #include <dfs_fs.h> | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
|  | ||||
| struct rt_pollreq; | ||||
|  | ||||
| struct dfs_file_ops | ||||
| { | ||||
|     int (*open)     (struct dfs_fd *fd); | ||||
|     int (*close)    (struct dfs_fd *fd); | ||||
|     int (*ioctl)    (struct dfs_fd *fd, int cmd, void *args); | ||||
|     int (*read)     (struct dfs_fd *fd, void *buf, size_t count); | ||||
|     int (*write)    (struct dfs_fd *fd, const void *buf, size_t count); | ||||
|     int (*flush)    (struct dfs_fd *fd); | ||||
|     int (*lseek)    (struct dfs_fd *fd, off_t offset); | ||||
|     int (*getdents) (struct dfs_fd *fd, struct dirent *dirp, uint32_t count); | ||||
|  | ||||
|     int (*poll)     (struct dfs_fd *fd, struct rt_pollreq *req); | ||||
| }; | ||||
|  | ||||
| /* file descriptor */ | ||||
| #define DFS_FD_MAGIC     0xfdfd | ||||
| struct dfs_fd | ||||
| { | ||||
|     uint16_t magic;              /* file descriptor magic number */ | ||||
|     uint16_t type;               /* Type (regular or socket) */ | ||||
|  | ||||
|     char *path;                  /* Name (below mount point) */ | ||||
|     int ref_count;               /* Descriptor reference count */ | ||||
|  | ||||
|     struct dfs_filesystem *fs; | ||||
|     const struct dfs_file_ops *fops; | ||||
|  | ||||
|     uint32_t flags;              /* Descriptor flags */ | ||||
|     size_t   size;               /* Size in bytes */ | ||||
|     off_t    pos;                /* Current file position */ | ||||
|  | ||||
|     void *data;                  /* Specific file system data */ | ||||
| }; | ||||
|  | ||||
| int dfs_file_open(struct dfs_fd *fd, const char *path, int flags); | ||||
| int dfs_file_close(struct dfs_fd *fd); | ||||
| int dfs_file_ioctl(struct dfs_fd *fd, int cmd, void *args); | ||||
| int dfs_file_read(struct dfs_fd *fd, void *buf, size_t len); | ||||
| int dfs_file_getdents(struct dfs_fd *fd, struct dirent *dirp, size_t nbytes); | ||||
| int dfs_file_unlink(const char *path); | ||||
| int dfs_file_write(struct dfs_fd *fd, const void *buf, size_t len); | ||||
| int dfs_file_flush(struct dfs_fd *fd); | ||||
| int dfs_file_lseek(struct dfs_fd *fd, off_t offset); | ||||
|  | ||||
| int dfs_file_stat(const char *path, struct stat *buf); | ||||
| int dfs_file_rename(const char *oldpath, const char *newpath); | ||||
|  | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  | ||||
| #endif | ||||
		Reference in New Issue
	
	Block a user