Date: Mon, 13 Nov 2006 18:12:13 -0500 From: Jung-uk Kim <jkim@FreeBSD.org> To: John Baldwin <jhb@FreeBSD.org> Cc: Perforce Change Reviews <perforce@FreeBSD.org> Subject: Re: PERFORCE change 109706 for review Message-ID: <200611131812.15858.jkim@FreeBSD.org> In-Reply-To: <200611131606.21477.jhb@freebsd.org> References: <200611102300.kAAN0Cn1045678@repoman.freebsd.org> <200611131606.21477.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 13 November 2006 04:06 pm, John Baldwin wrote: > On Friday 10 November 2006 18:00, Jung-uk Kim wrote: > > http://perforce.freebsd.org/chv.cgi?CH=109706 > > > > Change 109706 by jkim@jkim_hammer on 2006/11/10 22:59:53 > > > > Add (ugly) 32-bit msgsnd/msgrcv support for amd64. > > msgp points to msghdr and msghdr contains msg_type, which is > > long. When we copyin/copyout, we copy the correct msg_type and > > advance msgp by msg_type size. > > > > This fixes LTP test cases msgget01, msgrcv01, msgrcv02, > > msgrcv04, and msgsnd03. > > > > Note: There is only one test case blocked in msgwait state after > > this change, which seems to be arch-independent issue. > > > > Affected files ... > > > > .. > > //depot/projects/linuxolator/src/sys/compat/linux/linux_ipc.c#3 > > edit .. //depot/projects/linuxolator/src/sys/kern/sysv_msg.c#5 > > edit > > Why not add kern_msgfoo() functions and do the copyout/copyin in > other places instead? Unfortunately there are two different types of copyin/copyout's in each msgsnd/msgrcv, i.e., message type and actual message. Only the first one (i.e., message type) is affected. It is quite hard to separate them because of that reason. I thought about using one copyin/copyout instead of two. I thought about passing function pointer to a copy function. I even thought about making msgsnd32/msgrcv32 syscalls. But these are overkill for this, I think. As I noted in the commit log, I don't like this but I think this is the simplest fix without breaking existing APIs. JK
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200611131812.15858.jkim>