summaryrefslogtreecommitdiff
path: root/lib/libc/dirent
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/dirent')
-rw-r--r--lib/libc/dirent/closedir.c18
-rw-r--r--lib/libc/dirent/dirfd.c5
-rw-r--r--lib/libc/dirent/fdopendir.c16
-rw-r--r--lib/libc/dirent/opendir.c8
-rw-r--r--lib/libc/dirent/readdir.c4
-rw-r--r--lib/libc/dirent/readdir_r.c20
6 files changed, 35 insertions, 36 deletions
diff --git a/lib/libc/dirent/closedir.c b/lib/libc/dirent/closedir.c
index 8a4ef3a7..873364c2 100644
--- a/lib/libc/dirent/closedir.c
+++ b/lib/libc/dirent/closedir.c
@@ -1,17 +1,19 @@
-#include <errno.h>
-#include <__dirent.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <stdlib.h>
+#include <__dirent.h> // for __DIR
+#include <dirent.h> // for DIR, closedir
+#include <errno.h> // for EBADF, errno
+#include <stdlib.h> // for free
+#include <unistd.h> // for close
int closedir(DIR *dirp)
{
- if (dirp->fildes >= 0) {
+ struct __DIR *rdirp = (struct __DIR *)dirp;
+
+ if (rdirp->fildes >= 0) {
errno = EBADF;
return -1;
}
- close(dirp->fildes);
- free(dirp);
+ close(rdirp->fildes);
+ free(rdirp);
return 0;
}
diff --git a/lib/libc/dirent/dirfd.c b/lib/libc/dirent/dirfd.c
index 857303de..0eb8201b 100644
--- a/lib/libc/dirent/dirfd.c
+++ b/lib/libc/dirent/dirfd.c
@@ -1,6 +1,5 @@
-#include <__dirent.h>
-#include <dirent.h>
-#include <stdint.h>
+#include <dirent.h> // for DIR, dirfd
+#include <stdint.h> // for intptr_t
int dirfd(DIR *dirp)
{
diff --git a/lib/libc/dirent/fdopendir.c b/lib/libc/dirent/fdopendir.c
index 469992c1..c0e3492b 100644
--- a/lib/libc/dirent/fdopendir.c
+++ b/lib/libc/dirent/fdopendir.c
@@ -1,20 +1,20 @@
-#include <errno.h>
-#include <__dirent.h>
-#include <dirent.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <stdlib.h>
+#include "stddef.h" // for NULL
+
+#include <__dirent.h> // for __DIR
+#include <dirent.h> // for DIR, fdopendir
+#include <errno.h> // for EBADF, errno
+#include <stdlib.h> // for calloc
DIR *fdopendir(int fildes)
{
- DIR *dir;
+ struct __DIR *dir;
if (fildes < 0) {
errno = EBADF;
return NULL;
}
- if ((dir = calloc(1, sizeof(DIR))) == NULL) {
+ if ((dir = calloc(1, sizeof(struct __DIR))) == NULL) {
return NULL;
}
diff --git a/lib/libc/dirent/opendir.c b/lib/libc/dirent/opendir.c
index 2e250024..6a5d3b5d 100644
--- a/lib/libc/dirent/opendir.c
+++ b/lib/libc/dirent/opendir.c
@@ -1,8 +1,6 @@
-#include <__dirent.h>
-
-#include <fcntl.h>
-#include <unistd.h>
-#include <dirent.h>
+#include <dirent.h> // for fdopendir, DIR, opendir
+#include <fcntl.h> // for open, O_RDONLY
+#include <stddef.h> // for NULL
DIR *opendir(const char *dirname)
{
diff --git a/lib/libc/dirent/readdir.c b/lib/libc/dirent/readdir.c
index e4ac8cbd..a24185cb 100644
--- a/lib/libc/dirent/readdir.c
+++ b/lib/libc/dirent/readdir.c
@@ -1,5 +1,5 @@
-#include <__dirent.h>
-#include <dirent.h>
+#include <dirent.h> // for readdir_r, DIR, dirent, readdir
+#include <stddef.h> // for NULL
struct dirent *readdir(DIR *dirp)
{
diff --git a/lib/libc/dirent/readdir_r.c b/lib/libc/dirent/readdir_r.c
index 98b12426..68f05fa3 100644
--- a/lib/libc/dirent/readdir_r.c
+++ b/lib/libc/dirent/readdir_r.c
@@ -1,15 +1,15 @@
/* Maintainer: <contact@bellrise.net> */
-#include <__dirent.h>
-#include <errno.h>
-#include <dirent.h>
-#include <syscall.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <string.h>
-#include <stddef.h>
-
-#include <stdio.h>
+#include "asm/unistd_64.h" // for __NR_getdents64
+#include "stdio.h" // for NULL
+#include "sys/types.h" // for off_t
+
+#include <__dirent.h> // for linux_dirent64
+#include <dirent.h> // for dirent, size_t, ssize_t, DIR, readdir_r
+#include <errno.h> // for EINVAL, errno
+#include <stddef.h> // for offsetof
+#include <string.h> // for memcpy, memset
+#include <syscall.h> // for __syscall_3, syscall
int readdir_r(DIR *restrict dirp, struct dirent *restrict entry,
struct dirent **restrict result)