1*10465441SEvalZero /* 2*10465441SEvalZero * Copyright (c) 2006-2018, RT-Thread Development Team 3*10465441SEvalZero * 4*10465441SEvalZero * SPDX-License-Identifier: Apache-2.0 5*10465441SEvalZero * 6*10465441SEvalZero * Change Logs: 7*10465441SEvalZero * Date Author Notes 8*10465441SEvalZero */ 9*10465441SEvalZero #ifndef __RTT_DIRENT_H__ 10*10465441SEvalZero #define __RTT_DIRENT_H__ 11*10465441SEvalZero 12*10465441SEvalZero #include <rtthread.h> 13*10465441SEvalZero #include <rtlibc.h> 14*10465441SEvalZero 15*10465441SEvalZero /* 16*10465441SEvalZero * dirent.h - format of directory entries 17*10465441SEvalZero * Ref: http://www.opengroup.org/onlinepubs/009695399/basedefs/dirent.h.html 18*10465441SEvalZero */ 19*10465441SEvalZero 20*10465441SEvalZero /* File types */ 21*10465441SEvalZero #define FT_REGULAR 0 /* regular file */ 22*10465441SEvalZero #define FT_SOCKET 1 /* socket file */ 23*10465441SEvalZero #define FT_DIRECTORY 2 /* directory */ 24*10465441SEvalZero #define FT_USER 3 /* user defined */ 25*10465441SEvalZero 26*10465441SEvalZero #ifdef __cplusplus 27*10465441SEvalZero extern "C" { 28*10465441SEvalZero #endif 29*10465441SEvalZero 30*10465441SEvalZero #ifndef HAVE_DIR_STRUCTURE 31*10465441SEvalZero typedef struct 32*10465441SEvalZero { 33*10465441SEvalZero int fd; /* directory file */ 34*10465441SEvalZero char buf[512]; 35*10465441SEvalZero int num; 36*10465441SEvalZero int cur; 37*10465441SEvalZero } DIR; 38*10465441SEvalZero #endif 39*10465441SEvalZero 40*10465441SEvalZero #ifndef HAVE_DIRENT_STRUCTURE 41*10465441SEvalZero struct dirent 42*10465441SEvalZero { 43*10465441SEvalZero rt_uint8_t d_type; /* The type of the file */ 44*10465441SEvalZero rt_uint8_t d_namlen; /* The length of the not including the terminating null file name */ 45*10465441SEvalZero rt_uint16_t d_reclen; /* length of this record */ 46*10465441SEvalZero char d_name[256]; /* The null-terminated file name */ 47*10465441SEvalZero }; 48*10465441SEvalZero #endif 49*10465441SEvalZero 50*10465441SEvalZero int closedir(DIR *); 51*10465441SEvalZero DIR *opendir(const char *); 52*10465441SEvalZero struct dirent *readdir(DIR *); 53*10465441SEvalZero int readdir_r(DIR *, struct dirent *, struct dirent **); 54*10465441SEvalZero void rewinddir(DIR *); 55*10465441SEvalZero void seekdir(DIR *, long int); 56*10465441SEvalZero long telldir(DIR *); 57*10465441SEvalZero 58*10465441SEvalZero #ifdef __cplusplus 59*10465441SEvalZero } 60*10465441SEvalZero #endif 61*10465441SEvalZero 62*10465441SEvalZero #endif 63