io\_uring\_register\_probe(3) liburing Manual io\_uring\_register\_probe(3)

# [NAME](#NAME)

io\_uring\_register\_probe - register probe with io\_uring

# [SYNOPSIS](#SYNOPSIS)

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

```
int io_uring_register_probe(struct io_uring *ring,
                            struct io_uring_probe *p,
                            unsigned nr);
```

# [DESCRIPTION](#DESCRIPTION)

The [**io\_uring\_register\_probe**(3)](/man/os/liburing/io_uring_register_probe.3) function queries the kernel for supported io\_uring opcodes and fills in the probe structure *p*. The *ring* argument specifies the io\_uring instance to query, and *nr* specifies the maximum number of opcodes to query.

The probe structure contains information about which opcodes are supported by the kernel. Applications can use [**io\_uring\_opcode\_supported**(3)](/man/os/liburing/io_uring_opcode_supported.3) to check if a specific opcode is supported after calling this function.

Most applications should use [**io\_uring\_get\_probe**(3)](/man/os/liburing/io_uring_get_probe.3) or [**io\_uring\_get\_probe\_ring**(3)](/man/os/liburing/io_uring_get_probe_ring.3) instead, which allocate and fill in the probe structure automatically.

# [RETURN VALUE](#RETURN_VALUE)

Returns 0 on success. On error, a negative errno value is returned.

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_get\_probe**(3)](/man/os/liburing/io_uring_get_probe.3), [**io\_uring\_get\_probe\_ring**(3)](/man/os/liburing/io_uring_get_probe_ring.3), [**io\_uring\_opcode\_supported**(3)](/man/os/liburing/io_uring_opcode_supported.3), [**io\_uring\_free\_probe**(3)](/man/os/liburing/io_uring_free_probe.3), [**io\_uring\_register**(2)](/man/os/liburing/io_uring_register.2)

January 18, 2025 liburing-2.4

---

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