• A
    linux-user: Implement sendmmsg syscall · f19e00d7
    Alexander Graf 提交于
    Glibc when built for newer kernels assumes that the sendmmsg syscall is
    available. Without it, dns resolution simply fails to work.
    
    Wrap the syscall with existing infrastructure so that we don't have a host
    dependency on sendmmsg.
    
    To avoid locking the same area of guest memory twice (which will break if
    DEBUG_REMAP is defined) we pull the lock/unlock part of do_sendrecvmsg()
    out into its own function so the actual implementation can be shared.
    Signed-off-by: NAlexander Graf <agraf@suse.de>
    [PMM: add recvmmsg support;
     handle errors (which also implies support for non-blocking operations);
     cap the vector length as the kernel implementation does;
     don't lock guest memory twice;
     support MSG_WAITFORONE flag]
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    Signed-off-by: NRiku Voipio <riku.voipio@linaro.org>
    Reviewed-by: NRichard Henderson <rth@twiddle.net>
    f19e00d7
syscall.c 287.9 KB