io\_uring\_free\_buf\_ring(3) liburing Manual io\_uring\_free\_buf\_ring(3)

# [NAME](#NAME)

io\_uring\_free\_buf\_ring - register and free a buffer ring for provided buffers

# [SYNOPSIS](#SYNOPSIS)

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

```
int io_uring_free_buf_ring(struct io_uring *ring,
                           struct io_uring_buf_ring *br,
                           unsigned int nentries,
                           int bgid);
```

# [DESCRIPTION](#DESCRIPTION)

The [**io\_uring\_free\_buf\_ring**(3)](/man/os/liburing/io_uring_free_buf_ring.3) function unregisters a previously registered shared buffer ring. The ring must have heen previously returned from [**io\_uring\_setup\_buf\_ring**(3)](/man/os/liburing/io_uring_setup_buf_ring.3)**.**

The *ring* argument must pointer to the ring for which the provided buffer ring is being registered, *br* must point to a buffer ring previously returned by [**io\_uring\_setup\_buf\_ring**(3)](/man/os/liburing/io_uring_setup_buf_ring.3)**,** *nentries* is the number of entries requested in the buffer ring, and *bgid* is the buffer group ID that *br* was setup with.

Under the covers, this function uses [**io\_uring\_unregister\_buf\_ring**(3)](/man/os/liburing/io_uring_unregister_buf_ring.3) to unregister the ring, and handles the freeing of the ring rather than letting the application open code it.

Available since 5.19.

# [RETURN VALUE](#RETURN_VALUE)

On success [**io\_uring\_free\_buf\_ring**(3)](/man/os/liburing/io_uring_free_buf_ring.3) returns zero. On failure it returns **-errno**.

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_setup\_buf\_ring**(3)](/man/os/liburing/io_uring_setup_buf_ring.3)

March 7, 2023 liburing-2.4

---

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