@@ -27,6 +27,7 @@ struct io_uring_sqe {
|
||||
union {
|
||||
__kernel_rwf_t rw_flags;
|
||||
__u32 fsync_flags;
|
||||
__u16 poll_events;
|
||||
};
|
||||
__u64 user_data; /* data to be passed back at completion time */
|
||||
union {
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/poll.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
@@ -36,14 +37,10 @@ int main(int argc, char *argv[])
|
||||
printf("child: get sqe failed\n");
|
||||
return 1;
|
||||
}
|
||||
memset(sqe, 0, sizeof(*sqe));
|
||||
sqe->opcode = IORING_OP_POLL;
|
||||
sqe->flags = 0;
|
||||
sqe->ioprio = 0;
|
||||
sqe->fd = pipe1[0];
|
||||
sqe->addr = POLLIN;
|
||||
sqe->off = 0;
|
||||
sqe->len = 0;
|
||||
sqe->buf_index = 0;
|
||||
sqe->poll_events = POLLIN;
|
||||
sqe->user_data = addr = (unsigned long) &sqe;
|
||||
|
||||
ret = io_uring_submit(&ring);
|
||||
@@ -57,14 +54,9 @@ int main(int argc, char *argv[])
|
||||
printf("child: get sqe failed\n");
|
||||
return 1;
|
||||
}
|
||||
memset(sqe, 0, sizeof(*sqe));
|
||||
sqe->opcode = IORING_OP_POLL_CANCEL;
|
||||
sqe->flags = 0;
|
||||
sqe->ioprio = 0;
|
||||
sqe->fd = 0;
|
||||
sqe->addr = addr;
|
||||
sqe->off = 0;
|
||||
sqe->len = 0;
|
||||
sqe->buf_index = 0;
|
||||
sqe->user_data = (unsigned long) &sqe;
|
||||
|
||||
ret = io_uring_submit(&ring);
|
||||
|
||||
17
test/poll.c
17
test/poll.c
@@ -7,6 +7,7 @@
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <sys/poll.h>
|
||||
#include <sys/wait.h>
|
||||
|
||||
@@ -47,14 +48,10 @@ int main(int argc, char *argv[])
|
||||
return 1;
|
||||
}
|
||||
|
||||
memset(sqe, 0, sizeof(*sqe));
|
||||
sqe->opcode = IORING_OP_POLL;
|
||||
sqe->flags = 0;
|
||||
sqe->ioprio = 0;
|
||||
sqe->fd = pipe1[0];
|
||||
sqe->addr = POLLIN;
|
||||
sqe->off = 0;
|
||||
sqe->len = 0;
|
||||
sqe->buf_index = 0;
|
||||
sqe->poll_events = POLLIN;
|
||||
sqe->user_data = (unsigned long) &sqe;
|
||||
|
||||
ret = io_uring_submit(&cring);
|
||||
@@ -98,14 +95,10 @@ int main(int argc, char *argv[])
|
||||
return 1;
|
||||
}
|
||||
|
||||
memset(sqe, 0, sizeof(*sqe));
|
||||
sqe->opcode = IORING_OP_POLL;
|
||||
sqe->flags = 0;
|
||||
sqe->ioprio = 0;
|
||||
sqe->fd = pipe2[0];
|
||||
sqe->addr = POLLIN;
|
||||
sqe->off = 0;
|
||||
sqe->len = 0;
|
||||
sqe->buf_index = 0;
|
||||
sqe->poll_events = POLLIN;
|
||||
sqe->user_data = (unsigned long) &sqe;
|
||||
|
||||
ret = io_uring_submit(&pring);
|
||||
|
||||
Reference in New Issue
Block a user