81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /*
 | ||
|  |  * Copyright (c) 2006-2022, RT-Thread Development Team | ||
|  |  * | ||
|  |  * SPDX-License-Identifier: Apache-2.0 | ||
|  |  * | ||
|  |  * Change Logs: | ||
|  |  * Date           Author       Notes | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef __DIRENT_H__
 | ||
|  | #define __DIRENT_H__
 | ||
|  | 
 | ||
|  | #include <rtdef.h>
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | /*
 | ||
|  | * dirent.h - format of directory entries | ||
|  |  * Ref: http://www.opengroup.org/onlinepubs/009695399/basedefs/dirent.h.html
 | ||
|  |  */ | ||
|  | 
 | ||
|  | /* File types */ | ||
|  | #define FT_REGULAR      0   /* regular file */
 | ||
|  | #define FT_SOCKET       1   /* socket file  */
 | ||
|  | #define FT_DIRECTORY    2   /* directory    */
 | ||
|  | #define FT_USER         3   /* user defined */
 | ||
|  | #define FT_DEVICE       4   /* device */
 | ||
|  | #define FT_SYMLINK      5   /* symbol link */
 | ||
|  | #define FT_NONLOCK      6   /* non lock */
 | ||
|  | 
 | ||
|  | #define DT_UNKNOWN      0x00
 | ||
|  | #define DT_FIFO         0x01
 | ||
|  | #define DT_CHR          0x02
 | ||
|  | #define DT_DIR          0x04
 | ||
|  | #define DT_BLK          0x06
 | ||
|  | #define DT_REG          0x08
 | ||
|  | #define DT_LNK          0x0a
 | ||
|  | #define DT_SOCK         0x0c
 | ||
|  | #define DT_SYMLINK      DT_LNK
 | ||
|  | 
 | ||
|  | #ifndef HAVE_DIR_STRUCTURE
 | ||
|  | #define HAVE_DIR_STRUCTURE
 | ||
|  | typedef struct | ||
|  | { | ||
|  |     int fd;                         /* directory file */ | ||
|  |     char buf[512]; | ||
|  |     int num; | ||
|  |     int cur; | ||
|  | }DIR; | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #ifndef HAVE_DIRENT_STRUCTURE
 | ||
|  | #define HAVE_DIRENT_STRUCTURE
 | ||
|  | 
 | ||
|  | #define DIRENT_NAME_MAX    256
 | ||
|  | 
 | ||
|  | struct dirent | ||
|  | { | ||
|  |     rt_uint8_t  d_type;             /* The type of the file */ | ||
|  |     rt_uint8_t  d_namlen;           /* The length of the not including the terminating null file name */ | ||
|  |     rt_uint16_t d_reclen;           /* length of this record */ | ||
|  |     char d_name[DIRENT_NAME_MAX];   /* The null-terminated file name */ | ||
|  | }; | ||
|  | #endif
 | ||
|  | 
 | ||
|  | int            closedir(DIR *); | ||
|  | DIR           *opendir(const char *); | ||
|  | struct dirent *readdir(DIR *); | ||
|  | int            readdir_r(DIR *, struct dirent *, struct dirent **); | ||
|  | void           rewinddir(DIR *); | ||
|  | void           seekdir(DIR *, long); | ||
|  | long           telldir(DIR *); | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif
 |