MCPcopy Create free account
hub / github.com/axboe/liburing / pipe_comms

Function pipe_comms

test/pipe.c:21–59  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19};
20
21static int pipe_comms(struct io_uring *ring, int *fds, struct params *p)
22{
23 struct io_uring_sqe *sqe;
24 struct io_uring_cqe *cqe;
25 char src[32], dst[32];
26 int i, ret;
27
28 memset(src, 0x5a, sizeof(src));
29 memset(dst, 0, sizeof(dst));
30
31 sqe = io_uring_get_sqe(ring);
32 io_uring_prep_write(sqe, fds[1], src, sizeof(src), 0);
33 if (p->fixed)
34 sqe->flags |= IOSQE_FIXED_FILE;
35 sqe->user_data = 1;
36 io_uring_submit(ring);
37
38 sqe = io_uring_get_sqe(ring);
39 io_uring_prep_read(sqe, fds[0], dst, sizeof(dst), 0);
40 if (p->fixed)
41 sqe->flags |= IOSQE_FIXED_FILE;
42 sqe->user_data = 2;
43 io_uring_submit(ring);
44
45 for (i = 0; i < 2; i++) {
46 ret = io_uring_wait_cqe(ring, &cqe);
47 if (ret) {
48 fprintf(stderr, "wait cqe %d\n", ret);
49 return 1;
50 }
51 if (cqe->res != 32) {
52 printf("ud=%d, res=%d\n", (int) cqe->user_data, cqe->res);
53 return 1;
54 }
55 io_uring_cqe_seen(ring, cqe);
56 }
57
58 return memcmp(dst, src, sizeof(src));
59}
60
61static int pipe_test(int init_flags, struct params *p)
62{

Callers 1

pipe_testFunction · 0.85

Calls 2

io_uring_submitFunction · 0.85
io_uring_get_sqeFunction · 0.50

Tested by

no test coverage detected