---
name: "io_uring_sqe_set_data64"
section: "3"
platform: "linux"
package: "liburing"
version: "2.15-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/io_uring_sqe_set_data64"
---

# io\_uring\_sqe\_set\_data64(3)

set user data for submission queue event

## 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

The [**io\_uring\_sqe\_set\_data**(3)](/io_uring_sqe_set_data/3.md) function stores a *user\_data* pointer with the submission queue entry *sqe*.

The [**io\_uring\_sqe\_set\_data64**(3)](/io_uring_sqe_set_data64/3.md) 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)](/io_uring_get_sqe/3.md)**,** they can associate a data pointer or value with the SQE. Once the completion arrives, the function [**io\_uring\_cqe\_get\_data**(3)](/io_uring_cqe_get_data/3.md) or [**io\_uring\_cqe\_get\_data64**(3)](/io_uring_cqe_get_data64/3.md) 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

None

## SEE ALSO

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