io_uring_sqe_set_data(3)

πŸ“¦
version 2.15 Β· 2 versions
  • 2.15 Β· alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, debian trixie, fedora 43, fedora 44, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 2.5 Β· debian bookworm, ubuntu noble
, in alpine 3.22, alpine 3.23, alpine 3.24, arch rolling, centos-stream 10, centos-stream 9, debian trixie, fedora 43, fedora 44, nixpkgs unstable, opensuse-leap 16.0, ubuntu questing, ubuntu resolute, ubuntu stonking

✨ io_uring_sqe_set_data β€” bestie, let's label your requests ✨

okay so this is a page from the liburing Manual (yes, the io_uring girlies stay winning) πŸ’–


🌸 NAME 🌸

io_uring_sqe_set_data β€” set user data for submission queue event


πŸŽ€ SYNOPSIS πŸŽ€

#include <liburing.h>

void io_uring_sqe_set_data(struct io_uring_sqe *sqe,
                           void *user_data);

void io_uring_sqe_set_data64(struct io_uring_sqe *sqe,
                             __u64 data);

πŸ¦‹ DESCRIPTION πŸ¦‹

so. picture this. you've got a submission queue entry, and it's just sitting there, anonymous, no identity, no lore. tragic. 😭

The io_uring_sqe_set_data(3) function stores a user_data pointer with the submission queue entry sqe.

The io_uring_sqe_set_data64(3) function stores a 64-bit data value with the submission queue entry sqe.

After the caller has requested a submission queue entry (SQE) with io_uring_get_sqe(3), they can associate a data pointer or value with the SQE. Once the completion arrives, the function io_uring_cqe_get_data(3) or io_uring_cqe_get_data64(3) can be called to retrieve the data pointer or value associated with the submitted request. it's giving "tag it so you can find it again" energy, and honestly? iconic. 🫢

⚠️ no cap, this is the part you have to read: note that if neither of these functions are called, or the user_data field in the sqe isn't set manually either, then the field may contain a value from a previous use of this sqe. If an application relies on always having a valid user_data value present, it must always assign one to each sqe. like, every single time. no skipping. the stale-data jumpscare is real πŸ’€

🌈 RETURN VALUE 🌈

None. that's it, that's the whole section, she returns nothing and she's thriving πŸ’…


πŸ‘‘ SEE ALSO πŸ‘‘


and that's the whole page bestie!! this one came from liburing-2.1, dated November 15, 2021, and it lives at io_uring_sqe_set_data(3) πŸŽ€βœ¨ go set your data and slay πŸ’œ

πŸ“¦ where this page comes from