summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2000-12-21 20:49:50 +0000
committerEric Andersen <andersen@codepoet.org>2000-12-21 20:49:50 +0000
commit9ef33266bfb84d65c760ccfbce8384e76ad3e14d (patch)
tree92848f81c39d7de7536d7f2f38ff45dcff18bd90
parent0ea968c3e603da9da9c8ae8f81382d105127ab2d (diff)
This file violated policy and directly used kernel headers.
This fixes it by using our own copy of the stuct in question.
-rw-r--r--libc/sysdeps/linux/common/getdents.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/libc/sysdeps/linux/common/getdents.c b/libc/sysdeps/linux/common/getdents.c
index 940532da2..20d79868c 100644
--- a/libc/sysdeps/linux/common/getdents.c
+++ b/libc/sysdeps/linux/common/getdents.c
@@ -27,7 +27,7 @@
#include <sysdep.h>
-#include <linux/posix_types.h>
+#include <bits/posix_types.h>
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
@@ -37,11 +37,16 @@ extern int _getdents __P ((int fd, char *buf, size_t nbytes));
/* For Linux we need a special version of this file since the
definition of `struct dirent' is not the same for the kernel and
the libc. There is one additional field which might be introduced
- in the kernel structure in the future.
+ in the kernel structure in the future. Here is a copy of the kernel
+ struct dirent...
*/
-#define dirent kernel_dirent
-#include <linux/dirent.h>
-#undef dirent
+struct kernel_dirent {
+ long d_ino;
+ __kernel_off_t d_off;
+ unsigned short d_reclen;
+ char d_name[256]; /* We must not include limits.h! */
+};
+
#ifdef GETDENTS64