This adds basic support for sendmsg(2) and recvmsg(2) through io_uring. Similarly to how we handle file IO, we first attempt a non-blocking call, and if that fails with -EAGAIN/-ENONBLOCK, we punt to an async worker. Pretty straightforward, and a test case can be found in the liburing repository. -- Jens Axboe