X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/89b3af67bb32e691275bf6fa803d1834b2284115..2dced7af2b695f87fe26496a3e73c219b7880cbc:/bsd/sys/dirent.h diff --git a/bsd/sys/dirent.h b/bsd/sys/dirent.h index af090db5a..57df2ad9e 100644 --- a/bsd/sys/dirent.h +++ b/bsd/sys/dirent.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000-2005 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2008 Apple Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * @@ -62,14 +62,14 @@ */ /* - * The dirent structure defines the format of directory entries returned by - * the getdirentries(2) system call. + * The dirent structure defines the format of directory entries. * * A directory entry has a struct dirent at the front of it, containing its * inode number, the length of the entry, and the length of the name * contained in the entry. These are followed by the name padded to a 4 * byte boundary with null bytes. All names are guaranteed null terminated. - * The maximum length of a name in a directory is MAXNAMLEN. + * The maximum length of a name in a directory is MAXNAMLEN when 32-bit + * ino_t is in effect; (MAXPATHLEN - 1) when 64-bit ino_t is in effect. */ #ifndef _SYS_DIRENT_H @@ -78,15 +78,14 @@ #include #include -#ifndef _INO_T -typedef __darwin_ino_t ino_t; /* inode number */ -#define _INO_T -#endif +#include + #define __DARWIN_MAXNAMLEN 255 #pragma pack(4) +#if !__DARWIN_64_BIT_INO_T struct dirent { ino_t d_ino; /* file number of entry */ __uint16_t d_reclen; /* length of this record */ @@ -94,25 +93,32 @@ struct dirent { __uint8_t d_namlen; /* length of string in d_name */ char d_name[__DARWIN_MAXNAMLEN + 1]; /* name must be no longer than this */ }; +#endif /* !__DARWIN_64_BIT_INO_T */ #pragma pack() -#ifdef KERNEL -#include +#define __DARWIN_MAXPATHLEN 1024 + +#define __DARWIN_STRUCT_DIRENTRY { \ + __uint64_t d_ino; /* file number of entry */ \ + __uint64_t d_seekoff; /* seek offset (optional, used by servers) */ \ + __uint16_t d_reclen; /* length of this record */ \ + __uint16_t d_namlen; /* length of string in d_name */ \ + __uint8_t d_type; /* file type, see below */ \ + char d_name[__DARWIN_MAXPATHLEN]; /* entry name (up to MAXPATHLEN bytes) */ \ +} +#if __DARWIN_64_BIT_INO_T +struct dirent __DARWIN_STRUCT_DIRENTRY; +#endif /* __DARWIN_64_BIT_INO_T */ + +#ifdef KERNEL /* Extended directory entry */ -struct direntry{ - ino64_t d_ino; /* file number of entry */ - __uint64_t d_seekoff; /* seek offset (optional, used by servers) */ - __uint16_t d_reclen; /* length of this record */ - __uint16_t d_namlen; /* length of string in d_name */ - __uint8_t d_type; /* file type, see below */ - u_char d_name[MAXPATHLEN - 1]; /* entry name (up to MAXPATHLEN - 1 bytes) */ -}; +struct direntry __DARWIN_STRUCT_DIRENTRY; #endif -#ifndef _POSIX_C_SOURCE +#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE) #define d_fileno d_ino /* backward compatibility */ #define MAXNAMLEN __DARWIN_MAXNAMLEN /*