Module Name: src Committed By: jruoho Date: Sun May 16 15:33:30 UTC 2010
Modified Files: src/distrib/sets/lists/comp: mi src/distrib/sets/lists/man: mi src/share/man/man3: Makefile src/share/man/man5: Makefile Added Files: src/share/man/man3: dirent.3 Removed Files: src/share/man/man5: dir.5 Log Message: As was done with the man-page for <sys/types.h>, move dir(5) to dirent(3). Add a table describing the stat <-> dirent types. Note IFTODT() and DTTOIF(). To generate a diff of this commit: cvs rdiff -u -r1.1446 -r1.1447 src/distrib/sets/lists/comp/mi cvs rdiff -u -r1.1208 -r1.1209 src/distrib/sets/lists/man/mi cvs rdiff -u -r1.50 -r1.51 src/share/man/man3/Makefile cvs rdiff -u -r0 -r1.1 src/share/man/man3/dirent.3 cvs rdiff -u -r1.63 -r1.64 src/share/man/man5/Makefile cvs rdiff -u -r1.24 -r0 src/share/man/man5/dir.5 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/comp/mi diff -u src/distrib/sets/lists/comp/mi:1.1446 src/distrib/sets/lists/comp/mi:1.1447 --- src/distrib/sets/lists/comp/mi:1.1446 Sat May 15 09:00:52 2010 +++ src/distrib/sets/lists/comp/mi Sun May 16 15:33:29 2010 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1446 2010/05/15 09:00:52 njoly Exp $ +# $NetBSD: mi,v 1.1447 2010/05/16 15:33:29 jruoho Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -4393,6 +4393,7 @@ ./usr/share/man/cat3/DSA_set_method.0 comp-c-catman crypto,.cat ./usr/share/man/cat3/DSA_sign.0 comp-c-catman crypto,.cat ./usr/share/man/cat3/DSA_size.0 comp-c-catman crypto,.cat +./usr/share/man/cat3/DTTOIF.0 comp-c-catman .cat ./usr/share/man/cat3/ERR_GET_LIB.0 comp-c-catman crypto,.cat ./usr/share/man/cat3/ERR_clear_error.0 comp-c-catman crypto,.cat ./usr/share/man/cat3/ERR_error_string.0 comp-c-catman crypto,.cat @@ -4467,6 +4468,7 @@ ./usr/share/man/cat3/GCQ_INIT.0 comp-sys-catman .cat ./usr/share/man/cat3/GCQ_INIT_HEAD.0 comp-sys-catman .cat ./usr/share/man/cat3/GCQ_ITEM.0 comp-sys-catman .cat +./usr/share/man/cat3/IFTODT.0 comp-c-catman .cat ./usr/share/man/cat3/LIST_EMPTY.0 comp-c-catman .cat ./usr/share/man/cat3/LIST_ENTRY.0 comp-c-catman .cat ./usr/share/man/cat3/LIST_FIRST.0 comp-c-catman .cat @@ -5526,7 +5528,9 @@ ./usr/share/man/cat3/dgettext.0 comp-c-catman .cat ./usr/share/man/cat3/dh.0 comp-obsolete obsolete ./usr/share/man/cat3/difftime.0 comp-c-catman .cat +./usr/share/man/cat3/dir.0 comp-c-catman .cat ./usr/share/man/cat3/directory.0 comp-c-catman .cat +./usr/share/man/cat3/dirent.0 comp-c-catman .cat ./usr/share/man/cat3/dirfd.0 comp-c-catman .cat ./usr/share/man/cat3/dirname.0 comp-c-catman .cat ./usr/share/man/cat3/disklabel_dkcksum.0 comp-c-catman .cat @@ -10285,6 +10289,7 @@ ./usr/share/man/html3/DSA_set_method.html comp-c-htmlman crypto,html ./usr/share/man/html3/DSA_sign.html comp-c-htmlman crypto,html ./usr/share/man/html3/DSA_size.html comp-c-htmlman crypto,html +./usr/share/man/html3/DTTOIF.html comp-c-htmlman html ./usr/share/man/html3/ERR_GET_LIB.html comp-c-htmlman crypto,html ./usr/share/man/html3/ERR_clear_error.html comp-c-htmlman crypto,html ./usr/share/man/html3/ERR_error_string.html comp-c-htmlman crypto,html @@ -10359,6 +10364,7 @@ ./usr/share/man/html3/GCQ_INIT.html comp-sys-htmlman html ./usr/share/man/html3/GCQ_INIT_HEAD.html comp-sys-htmlman html ./usr/share/man/html3/GCQ_ITEM.html comp-sys-htmlman html +./usr/share/man/html3/IFTODT.html comp-c-htmlman html ./usr/share/man/html3/LIST_EMPTY.html comp-c-htmlman html ./usr/share/man/html3/LIST_ENTRY.html comp-c-htmlman html ./usr/share/man/html3/LIST_FIRST.html comp-c-htmlman html @@ -11362,7 +11368,9 @@ ./usr/share/man/html3/devname.html comp-c-htmlman html ./usr/share/man/html3/dgettext.html comp-c-htmlman html ./usr/share/man/html3/difftime.html comp-c-htmlman html +./usr/share/man/html3/dir.html comp-c-htmlman html ./usr/share/man/html3/directory.html comp-c-htmlman html +./usr/share/man/html3/dirent.html comp-c-htmlman html ./usr/share/man/html3/dirfd.html comp-c-htmlman html ./usr/share/man/html3/dirname.html comp-c-htmlman html ./usr/share/man/html3/disklabel_dkcksum.html comp-c-htmlman html @@ -15973,6 +15981,7 @@ ./usr/share/man/man3/DSA_set_method.3 comp-c-man crypto,.man ./usr/share/man/man3/DSA_sign.3 comp-c-man crypto,.man ./usr/share/man/man3/DSA_size.3 comp-c-man crypto,.man +./usr/share/man/man3/DTTOIF.3 comp-c-man .man ./usr/share/man/man3/ERR_GET_LIB.3 comp-c-man crypto,.man ./usr/share/man/man3/ERR_clear_error.3 comp-c-man crypto,.man ./usr/share/man/man3/ERR_error_string.3 comp-c-man crypto,.man @@ -16047,6 +16056,7 @@ ./usr/share/man/man3/GCQ_INIT.3 comp-sys-man .man ./usr/share/man/man3/GCQ_INIT_HEAD.3 comp-sys-man .man ./usr/share/man/man3/GCQ_ITEM.3 comp-sys-man .man +./usr/share/man/man3/IFTODT.3 comp-c-man .man ./usr/share/man/man3/LIST_EMPTY.3 comp-c-man .man ./usr/share/man/man3/LIST_ENTRY.3 comp-c-man .man ./usr/share/man/man3/LIST_FIRST.3 comp-c-man .man @@ -17106,7 +17116,9 @@ ./usr/share/man/man3/dgettext.3 comp-c-man .man ./usr/share/man/man3/dh.3 comp-obsolete obsolete ./usr/share/man/man3/difftime.3 comp-c-man .man +./usr/share/man/man3/dir.3 comp-c-man .man ./usr/share/man/man3/directory.3 comp-c-man .man +./usr/share/man/man3/dirent.3 comp-c-man .man ./usr/share/man/man3/dirfd.3 comp-c-man .man ./usr/share/man/man3/dirname.3 comp-c-man .man ./usr/share/man/man3/disklabel_dkcksum.3 comp-c-man .man Index: src/distrib/sets/lists/man/mi diff -u src/distrib/sets/lists/man/mi:1.1208 src/distrib/sets/lists/man/mi:1.1209 --- src/distrib/sets/lists/man/mi:1.1208 Fri May 14 16:19:58 2010 +++ src/distrib/sets/lists/man/mi Sun May 16 15:33:29 2010 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.1208 2010/05/14 16:19:58 jruoho Exp $ +# $NetBSD: mi,v 1.1209 2010/05/16 15:33:29 jruoho Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -1758,8 +1758,8 @@ ./usr/share/man/cat5/dhcpcd.conf.0 man-dhcpcd-catman .cat ./usr/share/man/cat5/dhcpd.conf.0 man-dhcpd-catman .cat ./usr/share/man/cat5/dhcpd.leases.0 man-dhcpd-catman .cat -./usr/share/man/cat5/dir.0 man-c-catman .cat -./usr/share/man/cat5/dirent.0 man-c-catman .cat +./usr/share/man/cat5/dir.0 man-obsolete obsolete +./usr/share/man/cat5/dirent.0 man-obsolete obsolete ./usr/share/man/cat5/disklabel.0 man-sys-catman .cat ./usr/share/man/cat5/disktab.0 man-sys-catman .cat ./usr/share/man/cat5/editrc.0 man-sys-catman .cat @@ -4336,8 +4336,8 @@ ./usr/share/man/html5/dhcpcd.conf.html man-dhcpcd-htmlman html ./usr/share/man/html5/dhcpd.conf.html man-dhcpd-htmlman html ./usr/share/man/html5/dhcpd.leases.html man-dhcpd-htmlman html -./usr/share/man/html5/dir.html man-c-htmlman html -./usr/share/man/html5/dirent.html man-c-htmlman html +./usr/share/man/html5/dir.html man-obsolete obsolete +./usr/share/man/html5/dirent.html man-obsolete obsolete ./usr/share/man/html5/disklabel.html man-sys-htmlman html ./usr/share/man/html5/disktab.html man-sys-htmlman html ./usr/share/man/html5/editrc.html man-sys-htmlman html @@ -6854,8 +6854,8 @@ ./usr/share/man/man5/dhcpcd.conf.5 man-dhcpcd-man .man ./usr/share/man/man5/dhcpd.conf.5 man-dhcpd-man .man ./usr/share/man/man5/dhcpd.leases.5 man-dhcpd-man .man -./usr/share/man/man5/dir.5 man-c-man .man -./usr/share/man/man5/dirent.5 man-c-man .man +./usr/share/man/man5/dir.5 man-obsolete obsolete +./usr/share/man/man5/dirent.5 man-obsolete obsolete ./usr/share/man/man5/disklabel.5 man-sys-man .man ./usr/share/man/man5/disktab.5 man-sys-man .man ./usr/share/man/man5/editrc.5 man-sys-man .man Index: src/share/man/man3/Makefile diff -u src/share/man/man3/Makefile:1.50 src/share/man/man3/Makefile:1.51 --- src/share/man/man3/Makefile:1.50 Wed Apr 28 07:35:30 2010 +++ src/share/man/man3/Makefile Sun May 16 15:33:30 2010 @@ -1,8 +1,8 @@ -# $NetBSD: Makefile,v 1.50 2010/04/28 07:35:30 jruoho Exp $ +# $NetBSD: Makefile,v 1.51 2010/05/16 15:33:30 jruoho Exp $ # @(#)Makefile 8.2 (Berkeley) 12/13/93 MAN= _DIAGASSERT.3 __CONCAT.3 __UNCONST.3 CMSG_DATA.3 \ - __arraycount.3 assert.3 bits.3 bitstring.3 dlfcn.3 end.3 \ + __arraycount.3 assert.3 bits.3 bitstring.3 dirent.3 dlfcn.3 end.3 \ fast_divide32.3 ffs32.3 gcq.3 intro.3 inttypes.3 iso646.3 offsetof.3 \ queue.3 rb.3 stdarg.3 stdbool.3 stddef.3 stdint.3 stdlib.3 sysexits.3 \ tgmath.3 timeradd.3 tree.3 types.3 varargs.3 @@ -200,6 +200,9 @@ rb.3 rb_tree_iterate.3 MLINKS+=stdarg.3 va_arg.3 stdarg.3 va_copy.3 \ stdarg.3 va_end.3 stdarg.3 va_start.3 +MLINKS+=dirent.3 dir.3 \ + dirent.3 IFTODT.3 \ + dirent.3 DTTOIF.3 MLINKS+=dlfcn.3 dlopen.3 dlfcn.3 dlclose.3 dlfcn.3 dlsym.3 dlfcn.3 dlctl.3 \ dlfcn.3 dlerror.3 dlfcn.3 dladdr.3 MLINKS+=timeradd.3 timersub.3 \ Index: src/share/man/man5/Makefile diff -u src/share/man/man5/Makefile:1.63 src/share/man/man5/Makefile:1.64 --- src/share/man/man5/Makefile:1.63 Thu Apr 22 06:48:28 2010 +++ src/share/man/man5/Makefile Sun May 16 15:33:30 2010 @@ -1,10 +1,10 @@ -# $NetBSD: Makefile,v 1.63 2010/04/22 06:48:28 jruoho Exp $ +# $NetBSD: Makefile,v 1.64 2010/05/16 15:33:30 jruoho Exp $ # @(#)Makefile 8.1 (Berkeley) 6/5/93 # missing: dump.5 plot.5 MAN= a.out.5 acct.5 ar.5 boot.cfg.5 \ - core.5 daily.conf.5 dir.5 disktab.5 elf.5 \ + core.5 daily.conf.5 disktab.5 elf.5 \ ethers.5 forward.5 \ fs.5 fstab.5 genassym.cf.5 gpio.conf.5 group.5 hesiod.conf.5 \ hosts.5 hosts.equiv.5 ifaliases.5 ifconfig.if.5 intro.5 \ @@ -18,7 +18,7 @@ stab.5 statvfs.5 sysctl.conf.5 ttyaction.5 \ utmp.5 utmpx.5 veriexec.5 weekly.conf.5 wscons.conf.5 -MLINKS= dir.5 dirent.5 fs.5 inode.5 hosts.equiv.5 rhosts.5 +MLINKS= fs.5 inode.5 hosts.equiv.5 rhosts.5 MLINKS+=utmp.5 wtmp.5 utmp.5 lastlog.5 passwd.5 master.passwd.5 MLINKS+=utmpx.5 wtmpx.5 utmpx.5 lastlogx.5 Added files: Index: src/share/man/man3/dirent.3 diff -u /dev/null src/share/man/man3/dirent.3:1.1 --- /dev/null Sun May 16 15:33:30 2010 +++ src/share/man/man3/dirent.3 Sun May 16 15:33:30 2010 @@ -0,0 +1,215 @@ +.\" $NetBSD $ +.\" +.\" Copyright (c) 1983, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)dir.5 8.3 (Berkeley) 4/19/94 +.\" +.Dd May 16, 2010 +.Dt DIRENT 3 +.Os +.Sh NAME +.Nm dirent +.Nd directory format +.Sh SYNOPSIS +.In sys/types.h +.In sys/dirent.h +.Ft size +.Fn IFTODT "mode" +.Ft dirtype +.Fn DTTOIF "dirtype" +.Sh DESCRIPTION +Directories provide a convenient hierarchical method of grouping +files while obscuring the underlying details of the storage medium. +A directory file is differentiated from a plain file +by a flag in its +.Xr inode 5 +entry. +It consists of records (directory entries) each of which contains +information about a file and a pointer to the file itself. +Directory entries may contain other directories +as well as plain files; such nested directories are referred to as +subdirectories. +A hierarchy of directories and files is formed in this manner +and is called a file system (or referred to as a file system tree). +.\" An entry in this tree, +.\" nested or not nested, +.\" is a pathname. +.Pp +Each directory file contains two special directory entries; one is a pointer +to the directory itself +called dot +.Ql \&. +and the other a pointer to its parent directory called dot-dot +.Ql \&.. . +Dot and dot-dot +are valid pathnames, however, +the system root directory +.Ql / , +has no parent and dot-dot points to itself like dot. +.Pp +File system nodes are ordinary directory files on which has +been grafted a file system object, such as a physical disk or a +partitioned area of such a disk. +(See +.Xr mount 8 . ) +.Sh IMPLEMENTATION NOTES +The directory entry format is defined in the file +.In sys/dirent.h , +which is also included by +.In dirent.h . +The format is represented by the +.Em dirent +structure, which contains the following entries: +.Bd -literal -offset indent +ino_t d_fileno; +uint16_t d_reclen; +uint16_t d_namlen; +uint8_t d_type; +char d_name[MAXNAMLEN + 1]; +.Ed +.Pp +These are: +.Bl -enum -offset indent +.It +The +.Fa d_fileno +entry is a number which is unique for each +distinct file in the filesystem. +Files that are linked by hard links (see +.Xr link 2 ) +have the same +.Fa d_fileno . +If +.Fa d_fileno +is zero, the entry refers to a deleted file. +The type +.Va ino_t +is defined in +.In sys/types.h . +.It +The +.Fa d_reclen +entry is the length, in bytes, of the directory record. +.It +The +.Fa d_namlen +entry specifies the length of the file name excluding the NUL. +Thus the actual size of +.Fa d_name +may vary from 1 to +.Dv MAXNAMLEN +\&+ 1. +.It +The +.Fa d_type +is the type of the file. +.It +The +.Fa d_name +entry contains a NUL-terminated file name. +.El +.Pp +The following table lists the types available for +.Vt d_type +and the corresponding ones used in the +.Em struct stat +(see +.Xr stat 2 ) , +respectively: +.Pp +.Bl -column -offset indent -compact \ +"DT_UNKNOWN " "DT_UNKNOWN " "DT_UNKNOWN " +.It Sy Dirent Ta Sy Stat Ta Sy Description +.It Dv DT_UNKNOWN Ta - Ta unknown file type +.It Dv DT_FIFO Ta Dv S_IFIFO Ta named pipe +.It Dv DT_CHR Ta Dv S_IFCHR Ta character device +.It Dv DT_DIR Ta Dv S_IFDIR Ta directory +.It Dv DT_BLK Ta Dv S_IFBLK Ta block device +.It Dv DT_REG Ta Dv S_IFREG Ta regular file +.It Dv DT_LNK Ta Dv S_IFLNK Ta symbolic link +.It Dv DT_SOCK Ta Dv S_IFSOCK Ta UNIX domain socket +.It Dv DT_WHT Ta Dv S_IFWHT Ta dummy Dq whiteout inode +.El +.Pp +The +.Dv DT_WHT +type is internal to the implementation and +should not be seen in normal user applications. +The macros +.Fn IFTODT +and +.Fn DTTOIF +can be used to convert from +.Em struct stat +types to +.Em struct dirent +types, and vice versa. +.Sh COMPATIBILITY +The +.St -p1003.1-2001 +standard specifies only the fields +.Va d_ino +and +.Va d_name . +The remaining fields are available on many, but not all systems. +.Pp +Furthermore, the standard leaves the size of +.Va d_name +as unspecified, mentioning only that the number of +bytes preceding the terminating NUL shall not exceed +.Dv NAME_MAX . +Because of this, and because the +.Va d_namlen +field may not be present, a portable application should determine the size of +.Va d_name +by using +.Xr strlen 3 +instead of applying the +.Fn sizeof +operator. +.Pp +.Sh SEE ALSO +.Xr getdents 2 , +.Xr fs 5 , +.Xr inode 5 +.\" .Sh STANDARDS +.\" +.\" XXX: Conformance is unclear, cf. PR lib/43310. +.\" +.\" Given the noted limitations, the +.\".In dirent.h +.\" header conforms to +.\" .St -p1003.1-2001 . +.Sh HISTORY +A +dir structure appeared in +.At v7 . +The +.Em dirent +structure appeared in +.Nx 1.3 .