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