瀏覽代碼

This file violated policy and directly used kernel headers.
This fixes it by using our own copy of the stuct in question.

Eric Andersen 24 年之前
父節點
當前提交
9ef33266bf
共有 1 個文件被更改,包括 10 次插入5 次删除
  1. 10 5
      libc/sysdeps/linux/common/getdents.c

+ 10 - 5
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