Browse Source

move struct dirent to bits header, allow NAME_MAX to vary

this is not necessary for linux but is a simple, inexpensive change to
make that facilitates ports to systems where NAME_MAX needs to be
longer.
Rich Felker 5 years ago
parent
commit
614c9e7b1e
3 changed files with 15 additions and 12 deletions
  1. 11 0
      arch/generic/bits/dirent.h
  2. 2 12
      include/dirent.h
  3. 2 0
      include/limits.h

+ 11 - 0
arch/generic/bits/dirent.h

@@ -0,0 +1,11 @@
+#define _DIRENT_HAVE_D_RECLEN
+#define _DIRENT_HAVE_D_OFF
+#define _DIRENT_HAVE_D_TYPE
+
+struct dirent {
+	ino_t d_ino;
+	off_t d_off;
+	unsigned short d_reclen;
+	unsigned char d_type;
+	char d_name[256];
+};

+ 2 - 12
include/dirent.h

@@ -15,19 +15,9 @@ extern "C" {
 
 #include <bits/alltypes.h>
 
-typedef struct __dirstream DIR;
-
-#define _DIRENT_HAVE_D_RECLEN
-#define _DIRENT_HAVE_D_OFF
-#define _DIRENT_HAVE_D_TYPE
+#include <bits/dirent.h>
 
-struct dirent {
-	ino_t d_ino;
-	off_t d_off;
-	unsigned short d_reclen;
-	unsigned char d_type;
-	char d_name[256];
-};
+typedef struct __dirstream DIR;
 
 #define d_fileno d_ino
 

+ 2 - 0
include/limits.h

@@ -41,7 +41,9 @@
 
 #define PIPE_BUF 4096
 #define FILESIZEBITS 64
+#ifndef NAME_MAX
 #define NAME_MAX 255
+#endif
 #define PATH_MAX 4096
 #define NGROUPS_MAX 32
 #define ARG_MAX 131072