io\_uring\_register\_zcrx\_ctrl(3) liburing Manual io\_uring\_register\_zcrx\_ctrl(3)

# [NAME](#NAME)

io\_uring\_register\_zcrx\_ctrl - perform control operations on a zero-copy receive context

# [SYNOPSIS](#SYNOPSIS)

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

```
int io_uring_register_zcrx_ctrl(struct io_uring *ring,
                                struct zcrx_ctrl *ctrl);
```

# [DESCRIPTION](#DESCRIPTION)

The [**io\_uring\_register\_zcrx\_ctrl**(3)](/man/os/liburing/io_uring_register_zcrx_ctrl.3) function performs control operations on a previously registered zero-copy receive context. See [**io\_uring\_register\_ifq**(3)](/man/os/liburing/io_uring_register_ifq.3) for details on registering a zero-copy receive context.

The *ctrl* argument must point to a *struct zcrx\_ctrl* structure that describes the control operation to perform:

```
struct zcrx_ctrl {


    __u32 zcrx_id;


    __u32 op;


    __u64 __resv[2];


    union {


        struct zcrx_ctrl_export     zc_export;


        struct zcrx_ctrl_flush_rq   zc_flush;


    };
};
```

The *zcrx\_id* field must be set to the ID of the zero-copy receive context returned from [**io\_uring\_register\_ifq**(3)](/man/os/liburing/io_uring_register_ifq.3). The *op* field specifies the control operation to perform and can be one of:

[**ZCRX\_CTRL\_FLUSH\_RQ**](#ZCRX_CTRL_FLUSH_RQ)

Flushes pending buffers from the refill queue. Uses the *zc\_flush* member of the union.

[**ZCRX\_CTRL\_EXPORT**](#ZCRX_CTRL_EXPORT)

Exports the zero-copy receive context for use by other rings. Uses the *zc\_export* member of the union. Upon successful export, the *zcrx\_fd* field in *zc\_export* will contain the file descriptor that can be used to share this context with other io\_uring instances.

The reserved *\_\_resv* fields must be cleared to zero.

# [RETURN VALUE](#RETURN_VALUE)

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

# [NOTES](#NOTES)

This function is available since Linux kernel 6.15.

# [SEE ALSO](#SEE_ALSO)

[**io\_uring\_register**(2)](/man/os/liburing/io_uring_register.2), [**io\_uring\_register\_ifq**(3)](/man/os/liburing/io_uring_register_ifq.3)

March 26, 2026 liburing-2.15

---

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