Commit Graph

4 Commits

Author SHA1 Message Date
Dmitry Chagin
77d3337c9f Implement proper Linux /dev/fd and /proc/self/fd behavior by adding
Linux specific things to the native fdescfs file system.

Unlike FreeBSD, the Linux fdescfs is a directory containing a symbolic
links to the actual files, which the process has open.
A readlink(2) call on this file returns a full path in case of regular file
or a string in a special format (type:[inode], anon_inode:<file-type>, etc..).
As well as in a FreeBSD, opening the file in the Linux fdescfs directory is
equivalent to duplicating the corresponding file descriptor.

Here we have mutually exclusive requirements:
- in case of readlink(2) call fdescfs lookup() method should return VLNK
vnode otherwise our kern_readlink() fail with EINVAL error;
- in the other calls fdescfs lookup() method should return non VLNK vnode.

For what new vnode v_flag VV_READLINK was added, which is set if fdescfs has beed
mounted with linrdlnk option an modified kern_readlinkat() to properly handle it.

For now For Linux ABI compatibility mount fdescfs volume with linrdlnk option:

    mount -t fdescfs -o linrdlnk null /compat/linux/dev/fd

Reviewed by:	kib@
MFC after:	1 week
Relnotes:	yes
2017-08-01 03:40:19 +00:00
Bernhard Schmidt
39eb4bc6b2 Obviously the option is known as COMPAT_LINUX32 on amd64.
PR:		docs/149182
Pointed out by:	Fernando <fernando.apesteguia at gmail.com>
MFC after:	3 days
2010-08-06 20:18:16 +00:00
Gavin Atkinson
c383d55b77 Update .Dt on these man pages: the kernel modules and corresponding man
pages are installed on more platforms than just i386.
2010-02-08 20:53:29 +00:00
Rui Paulo
e676955476 Move man pages out of man4.i386. Most of them are applicable to amd64
too, so, instead of descending to the i386 directory, we add some magic to
the parent Makefile.
These man pages refer to drivers that I'm aware that work on amd64. Most
likely there are more, but I'll deal with them later.

Approved by:	brueffer, philip, takawata
2008-08-21 00:40:55 +00:00