Date: Tue, 10 Apr 2012 20:27:40 -0400 From: Jung-uk Kim <jkim@FreeBSD.org> To: freebsd-emulation@FreeBSD.org Subject: Re: [PATCH] pipe2 for Linuxulator Message-ID: <201204102027.42344.jkim@FreeBSD.org> In-Reply-To: <201204101939.33201.jkim@FreeBSD.org> References: <201204101856.46591.jkim@FreeBSD.org> <201204101939.33201.jkim@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 10 April 2012 07:39 pm, Jung-uk Kim wrote: > On Tuesday 10 April 2012 06:56 pm, Jung-uk Kim wrote: > > Th attached patch implements pipe2 syscall for Linuxulator, which > > is quite trivial. Although it was added in Linux 2.6.27 (thanks, > > netchild!), it is often used by popular Linux applications, e.g., > > Adobe Flash plugin. Please note linux_pipe() was moved from MD > > files to sys/compat/linux/linux_file.c because both amd64 and > > i386 versions looked the same and I failed to see any reason. I > > also changed file descriptor argument from l_ulong * to l_int *, > > which seemed more appropriate. Any objections? > > Oops, I missed a patch for sys/kern/kern_descript.c: > > Index: sys/kern/kern_descrip.c > =================================================================== > --- sys/kern/kern_descrip.c (revision 234112) > +++ sys/kern/kern_descrip.c (working copy) > @@ -1681,6 +1681,8 @@ finstall(struct thread *td, struct file *fp, > int * > } > fhold(fp); > fdp->fd_ofiles[*fd] = fp; > + if ((flags & O_NONBLOCK) != 0) > + fp->f_flag |= FNONBLOCK; > if ((flags & O_CLOEXEC) != 0) > fdp->fd_ofileflags[*fd] |= UF_EXCLOSE; > FILEDESC_XUNLOCK(fdp); > > > * PS: This patch is also available from here: > > > > http://people.freebsd.org/~jkim/linux_pipe2.diff > > This patch is updated with it. Oops, oops... I found that non-blocking does not really work because finit() resets the flag later. The patch was re-done to set the non-blocking flag correctly. I'm really sorry about the mess. Jung-uk Kim
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201204102027.42344.jkim>