iou
iou copied to clipboard
Rust interface to io_uring
This might be a beginner issue but I'm failing to use prep_recvmsg and prep_sendmsg because I can't seem to be able to craft a proper msghdr struct to pass, especially...
This method takes a slice from the sqe queue, but that is completely wrong: the sqe queue is a circular buffer, so if you try to get 2 elements at...
This patch fixes instances where the rust_2018 lint would complain. They are related to elided lifetimes. Because there are no other complains, I am taking the liberty of adding the...
This is u32 for prep_read_fixed. It is confusing to have differing types for both operations. Standardizing on u32 seems to match a trend towards uring deterministic size types for these...
## SQ, CQ and Registrar contain `NonNull` which point to the same value. https://github.com/ringbahn/iou/blob/045f8d44c235e35b3731625356a11e6ee05966f9/src/submission_queue.rs#L47-L50 https://github.com/ringbahn/iou/blob/045f8d44c235e35b3731625356a11e6ee05966f9/src/completion_queue.rs#L14-L17 https://github.com/ringbahn/iou/blob/045f8d44c235e35b3731625356a11e6ee05966f9/src/registrar/mod.rs#L47-L50 [`NonNull::as_ref`](https://doc.rust-lang.org/std/ptr/struct.NonNull.html#method.as_ref) and [`NonNull::as_mut`](https://doc.rust-lang.org/std/ptr/struct.NonNull.html#method.as_mut) require borrow check. But if we split (SQ, CQ) into a...
Any argument to an SQE prep method which is a reference (e.g. buffers, the mutable references in prep_accept) must outlive the completion of the IO event that is being prepared....
When reading the iou code, I found there are possible bugs and worked out fixes for them. But I have no io_uring capable systems to trigger and reproduce the bug:(
Here https://github.com/ringbahn/iou/blob/045f8d44c235e35b3731625356a11e6ee05966f9/src/submission_queue.rs#L160 plain(non atomic) load from `sq.khead` is used which is fine if `sqpoll` is not enabled, but may lead to troubles if it is enabled. Should't this load be...
Add `SQE::prep_sendmsg` usage example that implements `sendto` on top of `sendmsg` (as practice for implementing a ringbahn `SendTo` event). The `msghdr` initialization code (including the pointer casts) was adapted from...
This PR documents the `Personality` struct and how to use it. The example is somewhat involved, but I tried to make it as simple as possible (adapted from the liburing...