---
name: "io_uring_get_sqe128"
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_get_sqe128"
---

# io\_uring\_get\_sqe128(3)

get the next available 128-byte submission queue entry from the submission queue

## NAME

io\_uring\_get\_sqe128 - get the next available 128-byte submission queue entry from the submission queue

## SYNOPSIS

```
#include <liburing.h>
```

**struct io\_uring\_sqe \*io\_uring\_get\_sqe128(struct io\_uring \****ring***);**

## DESCRIPTION

The [**io\_uring\_get\_sqe128**(3)](/io_uring_get_sqe128/3.md) function gets the next available 128-byte submission queue entry from the submission queue belonging to the *ring* param.

On success [**io\_uring\_get\_sqe128**(3)](/io_uring_get_sqe128/3.md) returns a pointer to the submission queue entry. On failure **NULL** is returned.

If a submission queue entry is returned, it should be filled out via one of the prep functions such as [**io\_uring\_prep\_uring\_cmd128**(3)](/io_uring_prep_uring_cmd128/3.md) and submitted via [**io\_uring\_submit**(3)](/io_uring_submit/3.md).

Note that neither [**io\_uring\_get\_sqe128**(3)](/io_uring_get_sqe128/3.md) nor the prep functions set (or clear) the **user\_data** field of the SQE. If the caller expects [**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) to return valid data when reaping IO completions, either [**io\_uring\_sqe\_set\_data**(3)](/io_uring_sqe_set_data/3.md) or [**io\_uring\_sqe\_set\_data64**(3)](/io_uring_sqe_set_data64/3.md) **MUST** have been called before submitting the request.

## RETURN VALUE

[**io\_uring\_get\_sqe128**(3)](/io_uring_get_sqe128/3.md) returns a pointer to the next submission queue event on success and NULL on failure. If **NULL** is returned, the SQ ring either wasn't created with support for 128-byte SQE entries ( **IORING\_SETUP\_SQE128** or **IORING\_SETUP\_SQE\_MIXED** ) or is currently full and entries must be submitted for processing before new ones can get allocated.

## SEE ALSO

[**io\_uring\_get\_sqe**(3)](/io_uring_get_sqe/3.md), [**io\_uring\_submit**(3)](/io_uring_submit/3.md), [**io\_uring\_sqe\_set\_data**(3)](/io_uring_sqe_set_data/3.md)
