| /* |
| * sys/dirent.h |
| */ |
| |
| #ifndef DIRENT_H |
| #define DIRENT_H |
| |
| #include <stdint.h> |
| #include <sys/types.h> |
| |
| #ifndef NAME_MAX |
| #define NAME_MAX 255 |
| #endif |
| |
| struct dirent { |
| uint32_t d_ino; |
| uint32_t d_off; |
| uint16_t d_reclen; |
| uint16_t d_type; |
| char d_name[NAME_MAX + 1]; |
| }; |
| |
| enum dirent_type { |
| DT_UNKNOWN = 0, |
| DT_FIFO = 1, |
| DT_CHR = 2, |
| DT_DIR = 4, |
| DT_BLK = 6, |
| DT_REG = 8, |
| DT_LNK = 10, |
| DT_SOCK = 12, |
| DT_WHT = 14, |
| }; |
| |
| /* |
| * Convert between stat structure mode types and directory types. |
| * The stat structure mode types are the same as in Linux. |
| */ |
| #define IFTODT(mode) (((mode) & 0170000) >> 12) |
| #define DTTOIF(dt) ((dt) << 12) |
| |
| struct _DIR_; |
| typedef struct _DIR_ DIR; |
| |
| #endif /* sys/dirent.h */ |