소스 검색

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

Eric Andersen 25 년 전
부모
커밋
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