Date: Sat, 18 Nov 1995 09:48:45 +0100 (MET) From: grog@lemis.de (Greg Lehey) To: bde@zeta.org.au (Bruce Evans) Cc: hackers@freebsd.org (FreeBSD Hackers) Subject: Re: linux' mknod and named pipes. Message-ID: <199511180848.JAA16883@allegro.lemis.de> In-Reply-To: <199511162213.JAA05714@godzilla.zeta.org.au> from "Bruce Evans" at Nov 17, 95 09:13:33 am
next in thread | previous in thread | raw e-mail | index | archive | help
Bruce Evans writes:
>
> >> > It runs and is playable but the sound doesn't work
> >> > ktrace shows it fails trying to make a pipe in /tmp with
> >> > mknod(). FreeBSD's mknod is different enough to not
> >> > let this work. Any ideas?
> >>
> >> Sure, turn mknod(arg,arg1,0) into a bsd mkfifo call anything else for now
> ^^^POSIX
> >> just pass it thru to mknod 8)
>
> >Is there any good reason why we shouldn't modify mknod to make a fifo
> >when called with the appropriate parameters?
>
> The same reason we shouldn't modify thousands of other system calls to be
> compatible with thousands of other systems: it takes longer and gives
> worse results.
I think that bears discussion.
1. It takes longer:
--- vfs_syscalls.c 1995/11/14 09:19:16 1.40
+++ vfs_syscalls.c 1995/11/18 08:45:43
@@ -757,6 +757,13 @@
int error;
struct nameidata nd;
+ if (ISFIFO (uap->mode))
+ {
+ struct mkfifo_args args;
+ args.path = uap->path;
+ args.mode = uap->mode;
+ return mkfifo (p, args);
+ }
error = suser(p->p_ucred, &p->p_acflag);
if (error)
return (error);
OK, I haven't tested this, but it's got to be something like it.
In the normal case, there's a single 'if' involved.
2. It gives worse results. How? Why?
Greg
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199511180848.JAA16883>
