Date: Mon, 10 Apr 2006 17:23:32 +0100 From: Tony Finch <dot@dotat.at> To: freebsd-standards@freebsd.org Subject: mmap() of a non-file Message-ID: <Pine.LNX.4.64.0604101721440.8685@hermes-1.csi.cam.ac.uk>
index | next in thread | raw e-mail
If you try to mmap() an fd that isn't a normal file, FreeBSD returns EINVAL whereas POSIX says it should return ENODEV - at least according to my reading of http://www.opengroup.org/onlinepubs/009695399/functions/mmap.html Index: sys/vm/vm_mmap.c =================================================================== RCS file: /work/FreeBSD/cvs/src/sys/vm/vm_mmap.c,v retrieving revision 1.203 diff -u -r1.203 vm_mmap.c --- sys/vm/vm_mmap.c 12 Oct 2005 06:56:00 -0000 1.203 +++ sys/vm/vm_mmap.c 10 Apr 2006 16:19:13 -0000 @@ -297,7 +297,7 @@ if ((error = fget(td, uap->fd, &fp)) != 0) goto done; if (fp->f_type != DTYPE_VNODE) { - error = EINVAL; + error = ENODEV; goto done; } /* Index: lib/libc/sys/mmap.2 =================================================================== RCS file: /work/FreeBSD/cvs/src/lib/libc/sys/mmap.2,v retrieving revision 1.52 diff -u -r1.52 mmap.2 --- lib/libc/sys/mmap.2 17 Nov 2005 13:00:00 -0000 1.52 +++ lib/libc/sys/mmap.2 10 Apr 2006 16:20:21 -0000 @@ -312,11 +312,6 @@ .Fa fd argument was not -1. .It Bq Er EINVAL -.Dv MAP_ANON -has not been specified and -.Fa fd -did not reference a regular or character special file. -.It Bq Er EINVAL The .Fa offset argument @@ -324,6 +319,11 @@ (See .Sx BUGS below.) +.It Bq Er ENODEV +.Dv MAP_ANON +has not been specified and +.Fa fd +did not reference a regular or character special file. .It Bq Er ENOMEM .Dv MAP_FIXED was specified and the Tony. -- f.a.n.finch <dot@dotat.at> http://dotat.at/ BERWICK ON TWEED TO WHITBY: WEST OR SOUTHWEST 5 OR 6, PERHAPS INCREASING 7 LATER IN NORTH. RAIN AT FIRST. MAINLY GOOD. SLIGHT OR MODERATE.help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.64.0604101721440.8685>
