X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/8f6c56a50524aa785f7e596d52dddfb331e18961..b7266188b87f3620ec3f9f717e57194a7dd989fe:/bsd/sys/dirent.h?ds=sidebyside diff --git a/bsd/sys/dirent.h b/bsd/sys/dirent.h index fb6efcd74..a559b8b37 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 @@ -83,12 +83,12 @@ typedef __darwin_ino_t ino_t; /* inode number */ #define _INO_T #endif + #define __DARWIN_MAXNAMLEN 255 -#if __DARWIN_ALIGN_POWER -#pragma options align=power -#endif +#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 */ @@ -96,27 +96,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 */ -#if __DARWIN_ALIGN_POWER -#pragma options align=reset -#endif +#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 /*