libc/newlib/libc/sys/rtems/sys/dirent.h

65 lines
1.2 KiB
C

#ifndef _SYS_DIRENT_H
# define _SYS_DIRENT_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* This file was written to be compatible with the BSD directory
* routines, so it looks like it. But it was written from scratch.
* Sean Eric Fagan, sef@Kithrup.COM
*
* Copied to RTEMS configuration without modification.
*/
typedef struct _dirdesc {
int dd_fd;
long dd_loc;
long dd_size;
char *dd_buf;
int dd_len;
long dd_seek;
} DIR;
# define __dirfd(dp) ((dp)->dd_fd)
DIR *opendir(const char *);
struct dirent *readdir(DIR *);
int readdir_r(DIR *__restrict, struct dirent *__restrict,
struct dirent **__restrict);
void rewinddir(DIR *);
int closedir(DIR *);
void seekdir(DIR *dir, long loc);
long telldir(DIR *dir);
#ifdef _COMPILING_NEWLIB
void _seekdir(DIR *dir, long offset);
#endif
#include <sys/types.h>
#include <limits.h>
struct dirent {
long d_ino;
off_t d_off;
unsigned short d_reclen;
/* we need better syntax for variable-sized arrays */
unsigned short d_namlen;
char d_name[NAME_MAX + 1];
};
int scandir ( const char *dirname,
struct dirent *** namelist,
int (*select)(const struct dirent *),
int (*dcomp)(const struct dirent **, const struct dirent **)
);
#ifdef __cplusplus
}
#endif
#endif