xref: /nrf52832-nimble/rt-thread/components/libc/compilers/dlib/dirent.h (revision 104654410c56c573564690304ae786df310c91fc)
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