syscall separation part 5
David P. Reese, Jr.
daver at gomerbud.com
Mon Sep 29 23:42:10 PDT 2003
On Mon, Sep 29, 2003 at 11:09:16PM -0700, Matthew Dillon wrote:
>
> :Create a MSG_KERN_IOV flag for use in kern_{send,recv}msg(). This should
> :allow us to modify the contents of an iov in the emulation code and pass
> :it to kern_{send,recv}msg() without the use of the stackgap.
> :
> :Also, catch some spots where I forgot to pass flags in a message.
> :
> :http://gomerbud.com/daver/patches/dragonfly/syscall-separation-5.diff
> :
> :I'd like to commit this tomorrow night if it gets good reviews.
> :
> :--
> : David P. Reese, Jr. daver at xxxxxxxxxxxx
> : http://www.gomerbud.com/daver/
>
> This looks reasonable to me. I'm wondering if it makes sense to
> encapsulate the IOV in a UIO instead, but that might involve more
> work then is reasonable at this stage.
>
> -Matt
That was my first idea when I split kern_{send,recv}msg(). I decided not
to because I felt it would push too much code into the syscall entry point
functions. I don't like the idea of abusing flags as was done with
MSG_COMPAT, so I think I'll spend the next couple of days rewriting these
functions to use uio's. The calling convention would look something like
this:
int kern_sendmsg(int s, struct sockaddr *sa, struct uio *auio,
struct cmsghdr *control, int flags);
int kern_recvmsg(int s, struct sockaddr *sa, struct uio *auio,
struct cmsghdr *control, int flags);
More code, soon...
--
David P. Reese, Jr. daver at xxxxxxxxxxxx
http://www.gomerbud.com/daver/
More information about the Submit
mailing list