io\_uring\_memory\_size\_params(3) liburing Manual io\_uring\_memory\_size\_params(3)

# [NAME](#NAME)

io\_uring\_memory\_size\_params - get memory size needed for a ring with params

# [SYNOPSIS](#SYNOPSIS)

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

```
ssize_t io_uring_memory_size_params(unsigned entries, struct io_uring_params *p);
```

# [DESCRIPTION](#DESCRIPTION)

The [**io\_uring\_memory\_size\_params**(3)](/man/os/liburing/io_uring_memory_size_params.3) function returns the total memory size needed for an io\_uring ring with *entries* entries and the parameters specified in *p*.

This is useful for applications that want to pre-allocate memory for a ring or want to know the memory footprint before creating a ring.

This function provides more control than [**io\_uring\_memory\_size**(3)](/man/os/liburing/io_uring_memory_size.3) by allowing the caller to specify full ring parameters including CQ size via *p-&gt;cq\_entries* when **IORING\_SETUP\_CQSIZE** is set in *p-&gt;flags*.

# [RETURN VALUE](#RETURN_VALUE)

Returns the required memory size in bytes on success, or a negative errno value on error.

[**-EINVAL**](#EINVAL)

Invalid entries value (0 or too large without IORING\_SETUP\_CLAMP).

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_memory\_size**(3)](/man/os/liburing/io_uring_memory_size.3), [**io\_uring\_mlock\_size\_params**(3)](/man/os/liburing/io_uring_mlock_size_params.3), [**io\_uring\_queue\_init\_params**(3)](/man/os/liburing/io_uring_queue_init_params.3)

January 18, 2025 liburing-2.11

---

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