3 Commits

Author SHA1 Message Date
Ian Gulliver
f218f76b82 Fix liburing.h memset() missing declaration
liburing.h uses memset() but doesn't include string.h.
If nothing else includes it, this causes compile errors.
Add the include.

Signed-off-by: Ian Gulliver <git@flamingcow.io>
2019-05-18 13:53:40 -07:00
Jens Axboe
1a90a51ecd io_uring.h: sync with kernel
Add sync_range_file opcode and related fields, and the
io_uring_register(2) commands for eventfd registration.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-05-18 12:58:47 -06:00
Ian Gulliver
3200e997d0 Fix manpage mmap() syntax
The examples in the io_uring_setup.2 man patch erroneously ORs
the protection bits and mmap flags, fix it up.

Signed-off-by: Ian Gulliver <git@flamingcow.io>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-05-18 12:49:55 -06:00
3 changed files with 10 additions and 5 deletions

View File

@@ -172,7 +172,7 @@ submission queue can be mapped with a call like:
.in +4n
.EX
ptr = mmap(0, sq_off.array + sq_entries * sizeof(__u32),
PROT_READ|PROT_WRITE|MAP_SHARED|MAP_POPULATE,
PROT_READ|PROT_WRITE, MAP_SHARED|MAP_POPULATE,
ring_fd, IORING_OFF_SQ_RING);
.EE
.in
@@ -229,7 +229,7 @@ The array of submission queue entries is mapped with:
.in +4n
.EX
sqentries = mmap(0, sq_entries * sizeof(struct io_uring_sqe),
PROT_READ|PROT_WRITE|MAP_SHARED|MAP_POPULATE,
PROT_READ|PROT_WRITE, MAP_SHARED|MAP_POPULATE,
ring_fd, IORING_OFF_SQES);
.EE
.in
@@ -260,7 +260,7 @@ from the queue itself, and can be mapped with:
.in +4n
.EX
ptr = mmap(0, cq_off.cqes + cq_entries * sizeof(struct io_uring_cqe),
PROT_READ|PROT_WRITE|MAP_SHARED|MAP_POPULATE, ring_fd,
PROT_READ|PROT_WRITE, MAP_SHARED|MAP_POPULATE, ring_fd,
IORING_OFF_CQ_RING);
.EE
.in

View File

@@ -26,6 +26,7 @@ struct io_uring_sqe {
__kernel_rwf_t rw_flags;
__u32 fsync_flags;
__u16 poll_events;
__u32 sync_range_flags;
};
__u64 user_data; /* data to be passed back at completion time */
union {
@@ -38,8 +39,8 @@ struct io_uring_sqe {
* sqe->flags
*/
#define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */
#define IOSQE_IO_DRAIN (1U << 1)
#define IOSQE_IO_LINK (1U << 2)
#define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */
#define IOSQE_IO_LINK (1U << 2) /* next IO depends on this one */
/*
* io_uring_setup() flags
@@ -56,6 +57,7 @@ struct io_uring_sqe {
#define IORING_OP_WRITE_FIXED 5
#define IORING_OP_POLL_ADD 6
#define IORING_OP_POLL_REMOVE 7
#define IORING_OP_SYNC_FILE_RANGE 8
/*
* sqe->fsync_flags
@@ -135,5 +137,7 @@ struct io_uring_params {
#define IORING_UNREGISTER_BUFFERS 1
#define IORING_REGISTER_FILES 2
#define IORING_UNREGISTER_FILES 3
#define IORING_REGISTER_EVENTFD 4
#define IORING_UNREGISTER_EVENTFD 5
#endif

View File

@@ -7,6 +7,7 @@ extern "C" {
#include <sys/uio.h>
#include <signal.h>
#include <string.h>
#include <inttypes.h>
#include "compat.h"
#include "io_uring.h"