io\_uring\_sqe\_set\_data(3) liburing Manual io\_uring\_sqe\_set\_data(3)

# [NAME](#NAME)

io\_uring\_sqe\_set\_data - set user data for submission queue event

# [SYNOPSIS](#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](#DESCRIPTION)

The [**io\_uring\_sqe\_set\_data**(3)](/man/os/liburing/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)](/man/os/liburing/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)](/man/os/liburing/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)](/man/os/liburing/io_uring_cqe_get_data.3) or [**io\_uring\_cqe\_get\_data64**(3)](/man/os/liburing/io_uring_cqe_get_data64.3) can be called to retrieve the data pointer or value associated with the submitted request.

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.

# [RETURN VALUE](#RETURN_VALUE)

None

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_get\_sqe**(3)](/man/os/liburing/io_uring_get_sqe.3), [**io\_uring\_cqe\_get\_data**(3)](/man/os/liburing/io_uring_cqe_get_data.3)

November 15, 2021 liburing-2.1

---

Document: io_uring_sqe_set_data64(3) from liburing 2.15-r4 (Chainguard OS)
Source: https://github.com/axboe/liburing.git
