176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * sys/dirent.h 376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef DIRENT_H 676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define DIRENT_H 776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <stdint.h> 976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#include <sys/types.h> 1076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#ifndef NAME_MAX 1276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define NAME_MAX 255 1376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif 1476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 1576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanstruct dirent { 1676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman uint32_t d_ino; 1776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman uint32_t d_off; 1876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman uint16_t d_reclen; 1976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman uint16_t d_type; 2076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman char d_name[NAME_MAX + 1]; 2176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman}; 2276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 2376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanenum dirent_type { 2476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman DT_UNKNOWN = 0, 2576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman DT_FIFO = 1, 2676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman DT_CHR = 2, 2776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman DT_DIR = 4, 2876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman DT_BLK = 6, 2976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman DT_REG = 8, 3076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman DT_LNK = 10, 3176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman DT_SOCK = 12, 3276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman DT_WHT = 14, 3376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman}; 3476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 3576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman/* 3676d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * Convert between stat structure mode types and directory types. 3776d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman * The stat structure mode types are the same as in Linux. 3876d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman */ 3976d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define IFTODT(mode) (((mode) & 0170000) >> 12) 4076d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#define DTTOIF(dt) ((dt) << 12) 4176d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4276d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmanstruct _DIR_; 4376d05dc695b06c4e987bb8078f78032441e1430cGreg Hartmantypedef struct _DIR_ DIR; 4476d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman 4576d05dc695b06c4e987bb8078f78032441e1430cGreg Hartman#endif /* sys/dirent.h */ 46