polyphony 0.85 → 0.86

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (230) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/Gemfile.lock +1 -1
  4. data/ext/polyphony/io_extensions.c +2 -3
  5. data/lib/polyphony/version.rb +1 -1
  6. data/polyphony.gemspec +1 -1
  7. data/test/test_backend.rb +1 -1
  8. data/test/test_signal.rb +3 -3
  9. data/vendor/liburing/.github/pull_request_template.md +86 -0
  10. data/vendor/liburing/.github/workflows/build.yml +85 -0
  11. data/vendor/liburing/.github/workflows/shellcheck.yml +20 -0
  12. data/vendor/liburing/.gitignore +149 -0
  13. data/vendor/liburing/COPYING +502 -0
  14. data/vendor/liburing/COPYING.GPL +339 -0
  15. data/vendor/liburing/LICENSE +7 -0
  16. data/vendor/liburing/Makefile +82 -0
  17. data/vendor/liburing/Makefile.common +5 -0
  18. data/vendor/liburing/Makefile.quiet +11 -0
  19. data/vendor/liburing/README +46 -0
  20. data/vendor/liburing/configure +486 -0
  21. data/vendor/liburing/debian/README.Debian +7 -0
  22. data/vendor/liburing/debian/changelog +27 -0
  23. data/vendor/liburing/debian/compat +1 -0
  24. data/vendor/liburing/debian/control +48 -0
  25. data/vendor/liburing/debian/copyright +49 -0
  26. data/vendor/liburing/debian/liburing-dev.install +4 -0
  27. data/vendor/liburing/debian/liburing-dev.manpages +6 -0
  28. data/vendor/liburing/debian/liburing1-udeb.install +1 -0
  29. data/vendor/liburing/debian/liburing1.install +1 -0
  30. data/vendor/liburing/debian/liburing1.symbols +32 -0
  31. data/vendor/liburing/debian/patches/series +1 -0
  32. data/vendor/liburing/debian/rules +81 -0
  33. data/vendor/liburing/debian/source/format +1 -0
  34. data/vendor/liburing/debian/source/local-options +2 -0
  35. data/vendor/liburing/debian/source/options +1 -0
  36. data/vendor/liburing/debian/watch +3 -0
  37. data/vendor/liburing/examples/Makefile +38 -0
  38. data/vendor/liburing/examples/io_uring-cp.c +282 -0
  39. data/vendor/liburing/examples/io_uring-test.c +112 -0
  40. data/vendor/liburing/examples/link-cp.c +193 -0
  41. data/vendor/liburing/examples/ucontext-cp.c +273 -0
  42. data/vendor/liburing/liburing.pc.in +12 -0
  43. data/vendor/liburing/liburing.spec +66 -0
  44. data/vendor/liburing/make-debs.sh +53 -0
  45. data/vendor/liburing/man/io_uring.7 +754 -0
  46. data/vendor/liburing/man/io_uring_cq_advance.3 +35 -0
  47. data/vendor/liburing/man/io_uring_cq_ready.3 +25 -0
  48. data/vendor/liburing/man/io_uring_cqe_get_data.3 +34 -0
  49. data/vendor/liburing/man/io_uring_cqe_seen.3 +32 -0
  50. data/vendor/liburing/man/io_uring_enter.2 +1483 -0
  51. data/vendor/liburing/man/io_uring_free_probe.3 +24 -0
  52. data/vendor/liburing/man/io_uring_get_probe.3 +29 -0
  53. data/vendor/liburing/man/io_uring_get_sqe.3 +38 -0
  54. data/vendor/liburing/man/io_uring_opcode_supported.3 +29 -0
  55. data/vendor/liburing/man/io_uring_prep_msg_ring.3 +58 -0
  56. data/vendor/liburing/man/io_uring_prep_read.3 +50 -0
  57. data/vendor/liburing/man/io_uring_prep_read_fixed.3 +54 -0
  58. data/vendor/liburing/man/io_uring_prep_readv.3 +51 -0
  59. data/vendor/liburing/man/io_uring_prep_readv2.3 +79 -0
  60. data/vendor/liburing/man/io_uring_prep_write.3 +50 -0
  61. data/vendor/liburing/man/io_uring_prep_write_fixed.3 +54 -0
  62. data/vendor/liburing/man/io_uring_prep_writev.3 +51 -0
  63. data/vendor/liburing/man/io_uring_prep_writev2.3 +78 -0
  64. data/vendor/liburing/man/io_uring_queue_exit.3 +27 -0
  65. data/vendor/liburing/man/io_uring_queue_init.3 +44 -0
  66. data/vendor/liburing/man/io_uring_register.2 +688 -0
  67. data/vendor/liburing/man/io_uring_register_buffers.3 +41 -0
  68. data/vendor/liburing/man/io_uring_register_files.3 +35 -0
  69. data/vendor/liburing/man/io_uring_setup.2 +534 -0
  70. data/vendor/liburing/man/io_uring_sq_ready.3 +25 -0
  71. data/vendor/liburing/man/io_uring_sq_space_left.3 +25 -0
  72. data/vendor/liburing/man/io_uring_sqe_set_data.3 +30 -0
  73. data/vendor/liburing/man/io_uring_sqe_set_flags.3 +60 -0
  74. data/vendor/liburing/man/io_uring_sqring_wait.3 +30 -0
  75. data/vendor/liburing/man/io_uring_submit.3 +29 -0
  76. data/vendor/liburing/man/io_uring_submit_and_wait.3 +34 -0
  77. data/vendor/liburing/man/io_uring_submit_and_wait_timeout.3 +49 -0
  78. data/vendor/liburing/man/io_uring_unregister_buffers.3 +26 -0
  79. data/vendor/liburing/man/io_uring_unregister_files.3 +26 -0
  80. data/vendor/liburing/man/io_uring_wait_cqe.3 +33 -0
  81. data/vendor/liburing/man/io_uring_wait_cqe_nr.3 +36 -0
  82. data/vendor/liburing/man/io_uring_wait_cqe_timeout.3 +39 -0
  83. data/vendor/liburing/man/io_uring_wait_cqes.3 +46 -0
  84. data/vendor/liburing/src/Makefile +89 -0
  85. data/vendor/liburing/src/arch/aarch64/syscall.h +95 -0
  86. data/vendor/liburing/src/arch/generic/lib.h +21 -0
  87. data/vendor/liburing/src/arch/generic/syscall.h +87 -0
  88. data/vendor/liburing/src/arch/syscall-defs.h +67 -0
  89. data/vendor/liburing/src/arch/x86/lib.h +32 -0
  90. data/vendor/liburing/src/arch/x86/syscall.h +160 -0
  91. data/vendor/liburing/src/include/liburing/barrier.h +81 -0
  92. data/vendor/liburing/src/include/liburing/io_uring.h +442 -0
  93. data/vendor/liburing/src/include/liburing.h +921 -0
  94. data/vendor/liburing/src/int_flags.h +8 -0
  95. data/vendor/liburing/src/lib.h +57 -0
  96. data/vendor/liburing/src/liburing.map +53 -0
  97. data/vendor/liburing/src/nolibc.c +48 -0
  98. data/vendor/liburing/src/queue.c +403 -0
  99. data/vendor/liburing/src/register.c +293 -0
  100. data/vendor/liburing/src/setup.c +332 -0
  101. data/vendor/liburing/src/syscall.c +47 -0
  102. data/vendor/liburing/src/syscall.h +103 -0
  103. data/vendor/liburing/test/232c93d07b74-test.c +306 -0
  104. data/vendor/liburing/test/35fa71a030ca-test.c +329 -0
  105. data/vendor/liburing/test/500f9fbadef8-test.c +89 -0
  106. data/vendor/liburing/test/7ad0e4b2f83c-test.c +93 -0
  107. data/vendor/liburing/test/8a9973408177-test.c +106 -0
  108. data/vendor/liburing/test/917257daa0fe-test.c +53 -0
  109. data/vendor/liburing/test/Makefile +244 -0
  110. data/vendor/liburing/test/a0908ae19763-test.c +58 -0
  111. data/vendor/liburing/test/a4c0b3decb33-test.c +180 -0
  112. data/vendor/liburing/test/accept-link.c +254 -0
  113. data/vendor/liburing/test/accept-reuse.c +164 -0
  114. data/vendor/liburing/test/accept-test.c +79 -0
  115. data/vendor/liburing/test/accept.c +477 -0
  116. data/vendor/liburing/test/across-fork.c +283 -0
  117. data/vendor/liburing/test/b19062a56726-test.c +53 -0
  118. data/vendor/liburing/test/b5837bd5311d-test.c +77 -0
  119. data/vendor/liburing/test/ce593a6c480a-test.c +136 -0
  120. data/vendor/liburing/test/close-opath.c +122 -0
  121. data/vendor/liburing/test/config +10 -0
  122. data/vendor/liburing/test/connect.c +398 -0
  123. data/vendor/liburing/test/cq-full.c +96 -0
  124. data/vendor/liburing/test/cq-overflow.c +294 -0
  125. data/vendor/liburing/test/cq-peek-batch.c +102 -0
  126. data/vendor/liburing/test/cq-ready.c +94 -0
  127. data/vendor/liburing/test/cq-size.c +64 -0
  128. data/vendor/liburing/test/d4ae271dfaae-test.c +96 -0
  129. data/vendor/liburing/test/d77a67ed5f27-test.c +65 -0
  130. data/vendor/liburing/test/defer.c +307 -0
  131. data/vendor/liburing/test/double-poll-crash.c +185 -0
  132. data/vendor/liburing/test/drop-submit.c +92 -0
  133. data/vendor/liburing/test/eeed8b54e0df-test.c +114 -0
  134. data/vendor/liburing/test/empty-eownerdead.c +45 -0
  135. data/vendor/liburing/test/eventfd-disable.c +151 -0
  136. data/vendor/liburing/test/eventfd-reg.c +76 -0
  137. data/vendor/liburing/test/eventfd-ring.c +97 -0
  138. data/vendor/liburing/test/eventfd.c +112 -0
  139. data/vendor/liburing/test/exec-target.c +6 -0
  140. data/vendor/liburing/test/exit-no-cleanup.c +117 -0
  141. data/vendor/liburing/test/fadvise.c +202 -0
  142. data/vendor/liburing/test/fallocate.c +249 -0
  143. data/vendor/liburing/test/fc2a85cb02ef-test.c +131 -0
  144. data/vendor/liburing/test/file-register.c +858 -0
  145. data/vendor/liburing/test/file-update.c +173 -0
  146. data/vendor/liburing/test/file-verify.c +629 -0
  147. data/vendor/liburing/test/files-exit-hang-poll.c +128 -0
  148. data/vendor/liburing/test/files-exit-hang-timeout.c +134 -0
  149. data/vendor/liburing/test/fixed-link.c +90 -0
  150. data/vendor/liburing/test/fpos.c +252 -0
  151. data/vendor/liburing/test/fsync.c +224 -0
  152. data/vendor/liburing/test/hardlink.c +136 -0
  153. data/vendor/liburing/test/helpers.c +135 -0
  154. data/vendor/liburing/test/helpers.h +67 -0
  155. data/vendor/liburing/test/io-cancel.c +550 -0
  156. data/vendor/liburing/test/io_uring_enter.c +296 -0
  157. data/vendor/liburing/test/io_uring_register.c +676 -0
  158. data/vendor/liburing/test/io_uring_setup.c +192 -0
  159. data/vendor/liburing/test/iopoll.c +372 -0
  160. data/vendor/liburing/test/lfs-openat-write.c +119 -0
  161. data/vendor/liburing/test/lfs-openat.c +275 -0
  162. data/vendor/liburing/test/link-timeout.c +1107 -0
  163. data/vendor/liburing/test/link.c +496 -0
  164. data/vendor/liburing/test/link_drain.c +229 -0
  165. data/vendor/liburing/test/madvise.c +195 -0
  166. data/vendor/liburing/test/mkdir.c +108 -0
  167. data/vendor/liburing/test/msg-ring.c +234 -0
  168. data/vendor/liburing/test/multicqes_drain.c +387 -0
  169. data/vendor/liburing/test/nop-all-sizes.c +99 -0
  170. data/vendor/liburing/test/nop.c +115 -0
  171. data/vendor/liburing/test/open-close.c +261 -0
  172. data/vendor/liburing/test/openat2.c +308 -0
  173. data/vendor/liburing/test/personality.c +204 -0
  174. data/vendor/liburing/test/pipe-eof.c +83 -0
  175. data/vendor/liburing/test/pipe-reuse.c +105 -0
  176. data/vendor/liburing/test/poll-cancel-ton.c +135 -0
  177. data/vendor/liburing/test/poll-cancel.c +228 -0
  178. data/vendor/liburing/test/poll-link.c +230 -0
  179. data/vendor/liburing/test/poll-many.c +208 -0
  180. data/vendor/liburing/test/poll-mshot-update.c +273 -0
  181. data/vendor/liburing/test/poll-ring.c +48 -0
  182. data/vendor/liburing/test/poll-v-poll.c +353 -0
  183. data/vendor/liburing/test/poll.c +109 -0
  184. data/vendor/liburing/test/pollfree.c +426 -0
  185. data/vendor/liburing/test/probe.c +135 -0
  186. data/vendor/liburing/test/read-write.c +876 -0
  187. data/vendor/liburing/test/register-restrictions.c +633 -0
  188. data/vendor/liburing/test/rename.c +135 -0
  189. data/vendor/liburing/test/ring-leak.c +173 -0
  190. data/vendor/liburing/test/ring-leak2.c +249 -0
  191. data/vendor/liburing/test/rsrc_tags.c +449 -0
  192. data/vendor/liburing/test/runtests-loop.sh +16 -0
  193. data/vendor/liburing/test/runtests.sh +170 -0
  194. data/vendor/liburing/test/rw_merge_test.c +97 -0
  195. data/vendor/liburing/test/self.c +91 -0
  196. data/vendor/liburing/test/send_recv.c +286 -0
  197. data/vendor/liburing/test/send_recvmsg.c +345 -0
  198. data/vendor/liburing/test/sendmsg_fs_cve.c +200 -0
  199. data/vendor/liburing/test/shared-wq.c +84 -0
  200. data/vendor/liburing/test/short-read.c +75 -0
  201. data/vendor/liburing/test/shutdown.c +165 -0
  202. data/vendor/liburing/test/sigfd-deadlock.c +74 -0
  203. data/vendor/liburing/test/skip-cqe.c +429 -0
  204. data/vendor/liburing/test/socket-rw-eagain.c +158 -0
  205. data/vendor/liburing/test/socket-rw-offset.c +157 -0
  206. data/vendor/liburing/test/socket-rw.c +145 -0
  207. data/vendor/liburing/test/splice.c +512 -0
  208. data/vendor/liburing/test/sq-full-cpp.cc +45 -0
  209. data/vendor/liburing/test/sq-full.c +45 -0
  210. data/vendor/liburing/test/sq-poll-dup.c +204 -0
  211. data/vendor/liburing/test/sq-poll-kthread.c +169 -0
  212. data/vendor/liburing/test/sq-poll-share.c +137 -0
  213. data/vendor/liburing/test/sq-space_left.c +159 -0
  214. data/vendor/liburing/test/sqpoll-cancel-hang.c +157 -0
  215. data/vendor/liburing/test/sqpoll-disable-exit.c +196 -0
  216. data/vendor/liburing/test/sqpoll-exit-hang.c +78 -0
  217. data/vendor/liburing/test/sqpoll-sleep.c +69 -0
  218. data/vendor/liburing/test/statx.c +172 -0
  219. data/vendor/liburing/test/stdout.c +232 -0
  220. data/vendor/liburing/test/submit-link-fail.c +154 -0
  221. data/vendor/liburing/test/submit-reuse.c +239 -0
  222. data/vendor/liburing/test/symlink.c +116 -0
  223. data/vendor/liburing/test/teardowns.c +58 -0
  224. data/vendor/liburing/test/thread-exit.c +143 -0
  225. data/vendor/liburing/test/timeout-new.c +252 -0
  226. data/vendor/liburing/test/timeout-overflow.c +204 -0
  227. data/vendor/liburing/test/timeout.c +1523 -0
  228. data/vendor/liburing/test/unlink.c +112 -0
  229. data/vendor/liburing/test/wakeup-hang.c +162 -0
  230. metadata +223 -2
@@ -0,0 +1,24 @@
1
+ .\" Copyright (C) 2022 Stefan Roesch <shr@fb.com>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_free_probe "January 25, 2022" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_free_probe - free probe instance
8
+ .SH SYNOPSIS
9
+ .nf
10
+ .BR "#include <liburing.h>"
11
+ .PP
12
+ .BI "void io_uring_free_probe(struct io_uring_probe *probe)"
13
+ .fi
14
+ .PP
15
+ .SH DESCRIPTION
16
+ .PP
17
+ The function io_uring_free_probe() frees the
18
+ .I probe
19
+ instance allocated with the io_uring_get_probe() function.
20
+
21
+ .SH RETURN VALUE
22
+ None
23
+ .SH SEE ALSO
24
+ .BR io_uring_get_probe (3)
@@ -0,0 +1,29 @@
1
+ .\" Copyright (C) 2022 Stefan Roesch <shr@fb.com>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_get_probe "January 25, 2022" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_get_probe - get probe instance
8
+ .SH SYNOPSIS
9
+ .nf
10
+ .BR "#include <liburing.h>"
11
+ .PP
12
+ .BI "io_uring_probe *io_uring_get_probe(void)"
13
+ .fi
14
+ .PP
15
+ .SH DESCRIPTION
16
+ .PP
17
+ The function io_uring_get_probe() returns an allocated io_uring_probe
18
+ structure to the caller. The caller is responsible for freeing the
19
+ structure with the function io_uring_free_probe().
20
+
21
+ .SH NOTES
22
+ Earlier versions of the Linux kernel do not support probe. If the kernel
23
+ doesn't support probe, this function will return NULL.
24
+
25
+ .SH RETURN VALUE
26
+ On success it returns an allocated io_uring_probe structure, otherwise
27
+ it returns NULL.
28
+ .SH SEE ALSO
29
+ .BR io_uring_free_probe (3)
@@ -0,0 +1,38 @@
1
+ .\" Copyright (C) 2020 Jens Axboe <axboe@kernel.dk>
2
+ .\" Copyright (C) 2020 Red Hat, Inc.
3
+ .\"
4
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
5
+ .\"
6
+ .TH io_uring_get_sqe 3 "July 10, 2020" "liburing-0.7" "liburing Manual"
7
+ .SH NAME
8
+ io_uring_get_sqe - get the next available submission queue entry from the
9
+ submission queue
10
+ .SH SYNOPSIS
11
+ .nf
12
+ .BR "#include <liburing.h>"
13
+ .PP
14
+ .BI "struct io_uring_sqe *io_uring_get_sqe(struct io_uring " *ring );
15
+ .fi
16
+ .PP
17
+ .SH DESCRIPTION
18
+ .PP
19
+ The io_uring_get_sqe() function gets the next available submission queue entry
20
+ from the submission queue belonging to the
21
+ .I ring
22
+ param.
23
+
24
+ On success io_uring_get_sqe() returns a pointer to the submission queue entry.
25
+ On failure NULL is returned.
26
+
27
+ If a submission queue entry is returned, it should be filled out via one of the
28
+ prep functions such as
29
+ .BR io_uring_prep_read (3)
30
+ and submitted via
31
+ .BR io_uring_submit (3).
32
+
33
+ .SH RETURN VALUE
34
+ .BR io_uring_get_sqe (3)
35
+ returns a pointer to the next submission queue event on success and NULL on
36
+ failure.
37
+ .SH SEE ALSO
38
+ .BR io_uring_submit (3)
@@ -0,0 +1,29 @@
1
+ .\" Copyright (C) 2022 Stefan Roesch <shr@fb.com>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_opcode_supported "January 25, 2022" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_opcode_supported - is op code supported?
8
+ .SH SYNOPSIS
9
+ .nf
10
+ .BR "#include <liburing.h>"
11
+ .PP
12
+ .BI "int io_uring_opcode_supported(struct io_uring_probe *probe,"
13
+ .BI " int opode)
14
+ .fi
15
+ .PP
16
+ .SH DESCRIPTION
17
+ .PP
18
+ The function io_uring_opcode_supported allows the caller to determine if
19
+ the passed in
20
+ .I opcode
21
+ belonging to the
22
+ .I probe
23
+ param is supported. An instance of the io_uring_probe instance can be
24
+ obtained by calling the function io_uring_get_probe().
25
+
26
+ .SH RETURN VALUE
27
+ On success it returns 1, otherwise it returns 0.
28
+ .SH SEE ALSO
29
+ .BR io_uring_get_probe (3)
@@ -0,0 +1,58 @@
1
+ .\" Copyright (C) 2022 Jens Axboe <axboe@kernel.dk>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_prep_msg_ring 3 "March 10, 2022" "liburing-2.2" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_prep_msg_ring - send a message to another ring
8
+
9
+ .SH SYNOPSIS
10
+ .nf
11
+ .BR "#include <liburing.h>"
12
+ .PP
13
+ .BI "void io_uring_msg_ring(struct io_uring_sqe *sqe,"
14
+ .BI " int fd,"
15
+ .BI " unsigned int len,"
16
+ .BI " __u64 data,"
17
+ .BI " unsigned int flags)"
18
+
19
+ .SH DESCRIPTION
20
+ .PP
21
+ io_uring_prep_msg_ring() prepares a to send a CQE to an io_uring file
22
+ descriptor. The submission queue entry
23
+ .I sqe
24
+ is setup to use the file descriptor
25
+ .I fd
26
+ , which must identify a io_uring context, to post a CQE on that ring where
27
+ the target CQE
28
+ .BR res
29
+ field will contain the content of
30
+ .I len
31
+ and the
32
+ .BR user_data
33
+ of
34
+ .I data
35
+ with the request modifier flags set by
36
+ .I flags.
37
+ Currently there are no valid flag modifiers, this field must contain
38
+ .B 0.
39
+
40
+ The targeted ring may be any ring that the user has access to, even the ring
41
+ itself. This request can be used for simple message passing to another ring,
42
+ allowing 32+64 bits of data to be transferred through the
43
+ .I len
44
+ and
45
+ .I data
46
+ fields. The use case may be anything from simply waking up someone waiting
47
+ on the targeted ring, or it can be used to pass messages between the two
48
+ rings.
49
+
50
+ The resulting CQE posted on the target ring will have
51
+ .B IORING_CQE_F_MSG
52
+ set in its
53
+ .I flags
54
+ member, indicating to the target ring that this CQE is posted without having
55
+ a relationship to an SQE issued on this ring.
56
+
57
+ .SH RETURN VALUE
58
+ None
@@ -0,0 +1,50 @@
1
+ .\" Copyright (C) 2021 Stefan Roesch <shr@fb.com>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_prep_read 3 "November 15, 2021" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_prep_read - prepare I/O read request
8
+
9
+ .SH SYNOPSIS
10
+ .nf
11
+ .BR "#include <liburing.h>"
12
+ .PP
13
+ .BI "void io_uring_prep_read(struct io_uring_sqe *sqe,"
14
+ .BI " int fd,"
15
+ .BI " void *buf,"
16
+ .BI " unsigned nbytes,"
17
+ .BI " __u64 offset)"
18
+
19
+ .SH DESCRIPTION
20
+ .PP
21
+ The io_uring_prep_read() prepares an IO read request. The submission queue entry
22
+ .I sqe
23
+ is setup to use the file descriptor
24
+ .I fd
25
+ to start reading
26
+ .I nbytes
27
+ into the buffer
28
+ .I buf
29
+ at the specified
30
+ .I offset.
31
+
32
+ On files that support seeking, if the offset is set to
33
+ .B -1,
34
+ the read operation commences at the file offset, and the file offset is
35
+ incremented by the number of bytes read. See
36
+ .BR read (2)
37
+ for more details. Note that for an async API, reading and updating the
38
+ current file offset may result in unpredictable behavior, unless access
39
+ to the file is serialized. It is not encouraged to use this feature, if it's
40
+ possible to provide the desired IO offset from the application or library.
41
+
42
+ On files that are not capable of seeking, the offset is ignored.
43
+
44
+ After the read has been prepared it can be submitted with one of the submit
45
+ functions.
46
+
47
+ .SH RETURN VALUE
48
+ None
49
+ .SH SEE ALSO
50
+ .BR io_uring_get_sqe (3), io_uring_prep_readv (3), io_uring_prep_readv2 (3), io_uring_submit(3)
@@ -0,0 +1,54 @@
1
+ .\" Copyright (C) 2022 Jens Axboe <axboe@kernel.dk>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_prep_read 3 "February 13, 2022" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_prep_read_fixed - prepare I/O read request with registered buffer
8
+
9
+ .SH SYNOPSIS
10
+ .nf
11
+ .BR "#include <liburing.h>"
12
+ .PP
13
+ .BI "void io_uring_prep_read_fixed(struct io_uring_sqe *sqe,"
14
+ .BI " int fd,"
15
+ .BI " void *buf,"
16
+ .BI " unsigned nbytes,"
17
+ .BI " __u64 offset,"
18
+ .BI " int buf_index)"
19
+
20
+ .SH DESCRIPTION
21
+ .PP
22
+ The io_uring_prep_read_fixed() prepares an IO read request with a previously
23
+ registered IO buffer. The submission queue entry
24
+ .I sqe
25
+ is setup to use the file descriptor
26
+ .I fd
27
+ to start reading
28
+ .I nbytes
29
+ into the buffer
30
+ .I buf
31
+ at the specified
32
+ .I offset,
33
+ and with the buffer matching the registered index of
34
+ .I buf_index.
35
+
36
+ This work just like
37
+ .B io_uring_prep_read(3)
38
+ except it requires the user of buffers that have been registered with
39
+ .B io_uring_register_buffers(3). The
40
+ .I buf
41
+ and
42
+ .I nbytes
43
+ arguments must fall within a region specificed by
44
+ .I buf_index.
45
+ in the previously registered buffer. The buffer need not be aligned with
46
+ the start of the registered buffer.
47
+
48
+ After the read has been prepared it can be submitted with one of the submit
49
+ functions.
50
+
51
+ .SH RETURN VALUE
52
+ None
53
+ .SH SEE ALSO
54
+ .BR io_uring_prep_read (3), io_uring_register_buffers (3)
@@ -0,0 +1,51 @@
1
+ .\" Copyright (C) 2021 Stefan Roesch <shr@fb.com>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_prep_readv 3 "November 15, 2021" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_prep_readv - prepare vector I/O read request
8
+ .fi
9
+ .SH SYNOPSIS
10
+ .nf
11
+ .BR "#include <liburing.h>"
12
+ .PP
13
+ .BI "void io_uring_prep_readv(struct io_uring_sqe *sqe,"
14
+ .BI " int fd,"
15
+ .BI " const struct iovec *iovecs,"
16
+ .BI " unsigned nr_vecs,"
17
+ .BI " __u64 offset)"
18
+ .PP
19
+ .SH DESCRIPTION
20
+ .PP
21
+ The io_uring_prep_readv() prepares a vectored IO read request. The submission
22
+ queue entry
23
+ .I sqe
24
+ is setup to use the file descriptor
25
+ .I fd
26
+ to start reading
27
+ .I nr_vecs
28
+ into the
29
+ .I iovecs
30
+ array at the specified
31
+ .I offset.
32
+
33
+ On files that support seeking, if the offset is set to
34
+ .B -1,
35
+ the read operation commences at the file offset, and the file offset is
36
+ incremented by the number of bytes read. See
37
+ .BR read (2)
38
+ for more details. Note that for an async API, reading and updating the
39
+ current file offset may result in unpredictable behavior, unless access
40
+ to the file is serialized. It is not encouraged to use this feature, if it's
41
+ possible to provide the desired IO offset from the application or library.
42
+
43
+ On files that are not capable of seeking, the offset is ignored.
44
+
45
+ After the write has been prepared it can be submitted with one of the submit
46
+ functions.
47
+
48
+ .SH RETURN VALUE
49
+ None
50
+ .SH SEE ALSO
51
+ .BR io_uring_get_sqe (3), io_uring_prep_read (3), io_uring_prep_readv2 (3), io_uring_submit (3)
@@ -0,0 +1,79 @@
1
+ .\" Copyright (C) 2021 Stefan Roesch <shr@fb.com>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_prep_readv2 3 "November 15, 2021" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ .fi
8
+ io_uring_prep_readv2 - prepare vector I/O read request with flags
9
+
10
+ .SH SYNOPSIS
11
+ .nf
12
+ .BR "#include <liburing.h>"
13
+ .PP
14
+ .BI "void io_uring_prep_readv2(struct io_uring_sqe *sqe,"
15
+ .BI " int fd,"
16
+ .BI " const struct iovec *iovecs,"
17
+ .BI " unsigned nr_vecs,"
18
+ .BI " __u64 offset,"
19
+ .BI " int flags)"
20
+ .fi
21
+ .PP
22
+ .SH DESCRIPTION
23
+ .PP
24
+ The io_uring_prep_readv2() prepares a vectored IO read request. The submission
25
+ queue entry
26
+ .I sqe
27
+ is setup to use the file descriptor
28
+ .I fd
29
+ to start reading
30
+ .I nr_vecs
31
+ into the
32
+ .I iovecs
33
+ array at the specified
34
+ .I offset.
35
+ The behavior of the function can be controlled with the
36
+ .I flags
37
+ parameter.
38
+
39
+ Supported values for
40
+ .I flags
41
+ are:
42
+ .TP
43
+ .B RWF_HIPRI
44
+ High priority request, poll if possible
45
+ .TP
46
+ .B RWF_DSYNC
47
+ per-IO O_DSYNC
48
+ .TP
49
+ .B RWF_SYNC
50
+ per-IO O_SYNC
51
+ .TP
52
+ .B RWF_NOWAIT
53
+ per-IO, return
54
+ .B -EAGAIN
55
+ if operation would block
56
+ .TP
57
+ .B RWF_APPEND
58
+ per-IO O_APPEND
59
+
60
+ .P
61
+ On files that support seeking, if the offset is set to
62
+ .B -1,
63
+ the read operation commences at the file offset, and the file offset is
64
+ incremented by the number of bytes read. See
65
+ .BR read (2)
66
+ for more details. Note that for an async API, reading and updating the
67
+ current file offset may result in unpredictable behavior, unless access
68
+ to the file is serialized. It is not encouraged to use this feature, if it's
69
+ possible to provide the desired IO offset from the application or library.
70
+
71
+ On files that are not capable of seeking, the offset is ignored.
72
+
73
+ After the write has been prepared, it can be submitted with one of the submit
74
+ functions.
75
+
76
+ .SH RETURN VALUE
77
+ None
78
+ .SH SEE ALSO
79
+ .BR io_uring_get_sqe (3), io_uring_prep_read (3), io_uring_prep_readv (3), io_uring_submit (3)
@@ -0,0 +1,50 @@
1
+ .\" Copyright (C) 2021 Stefan Roesch <shr@fb.com>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_prep_write 3 "November 15, 2021" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_prep_write - prepare I/O write request
8
+
9
+ .SH SYNOPSIS
10
+ .nf
11
+ .BR "#include <liburing.h>"
12
+ .PP
13
+ .BI "void io_uring_prep_write(struct io_uring_sqe *sqe,"
14
+ .BI " int fd,"
15
+ .BI " const void *buf,"
16
+ .BI " unsigned nbytes,"
17
+ .BI " __u64 offset)"
18
+ .PP
19
+ .SH DESCRIPTION
20
+ .PP
21
+ The io_uring_prep_write() prepares an IO write request. The submission queue entry
22
+ .I sqe
23
+ is setup to use the file descriptor
24
+ .I fd
25
+ to start writing
26
+ .I nbytes
27
+ from the buffer
28
+ .I buf
29
+ at the specified
30
+ .I offset.
31
+
32
+ On files that support seeking, if the offset is set to
33
+ .B -1,
34
+ the write operation commences at the file offset, and the file offset is
35
+ incremented by the number of bytes written. See
36
+ .BR write (2)
37
+ for more details. Note that for an async API, reading and updating the
38
+ current file offset may result in unpredictable behavior, unless access
39
+ to the file is serialized. It is not encouraged to use this feature, if it's
40
+ possible to provide the desired IO offset from the application or library.
41
+
42
+ On files that are not capable of seeking, the offset is ignored.
43
+
44
+ After the write has been prepared, it can be submitted with one of the submit
45
+ functions.
46
+
47
+ .SH RETURN VALUE
48
+ None
49
+ .SH SEE ALSO
50
+ .BR io_uring_get_sqe (3), io_uring_submit (3)
@@ -0,0 +1,54 @@
1
+ .\" Copyright (C) 2022 Jens Axboe <axboe@kernel.dk>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_prep_write 3 "February 13, 2022" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_prep_write_fixed - prepare I/O write request with registered buffer
8
+
9
+ .SH SYNOPSIS
10
+ .nf
11
+ .BR "#include <liburing.h>"
12
+ .PP
13
+ .BI "void io_uring_prep_write_fixed(struct io_uring_sqe *sqe,"
14
+ .BI " int fd,"
15
+ .BI " const void *buf,"
16
+ .BI " unsigned nbytes,"
17
+ .BI " __u64 offset,"
18
+ .BI " int buf_index)"
19
+
20
+ .SH DESCRIPTION
21
+ .PP
22
+ The io_uring_prep_write_fixed() prepares an IO write request with a previously
23
+ registered IO buffer. The submission queue entry
24
+ .I sqe
25
+ is setup to use the file descriptor
26
+ .I fd
27
+ to start writing
28
+ .I nbytes
29
+ from the buffer
30
+ .I buf
31
+ at the specified
32
+ .I offset,
33
+ and with the buffer matching the registered index of
34
+ .I buf_index.
35
+
36
+ This work just like
37
+ .B io_uring_prep_write(3)
38
+ except it requires the user of buffers that have been registered with
39
+ .B io_uring_register_buffers(3). The
40
+ .I buf
41
+ and
42
+ .I nbytes
43
+ arguments must fall within a region specificed by
44
+ .I buf_index.
45
+ in the previously registered buffer. The buffer need not be aligned with
46
+ the start of the registered buffer.
47
+
48
+ After the read has been prepared it can be submitted with one of the submit
49
+ functions.
50
+
51
+ .SH RETURN VALUE
52
+ None
53
+ .SH SEE ALSO
54
+ .BR io_uring_prep_write (3), io_uring_register_buffers (3)
@@ -0,0 +1,51 @@
1
+ .\" Copyright (C) 2021 Stefan Roesch <shr@fb.com>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_prep_writev 3 "November 15, 2021" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_prep_writev - prepare vector I/O write request
8
+
9
+ .SH SYNOPSIS
10
+ .nf
11
+ .BR "#include <liburing.h>"
12
+ .PP
13
+ .BI "void io_uring_prep_writev(struct io_uring_sqe *sqe,"
14
+ .BI " int fd,"
15
+ .BI " const struct iovec *iovecs,"
16
+ .BI " unsigned nr_vecs,"
17
+ .BI " __u64 offset)"
18
+ .PP
19
+ .SH DESCRIPTION
20
+ .PP
21
+ The io_uring_prep_writev() prepares a vectored IO write request. The submission
22
+ queue entry
23
+ .I sqe
24
+ is setup to use the file descriptor
25
+ .I fd
26
+ to start writing
27
+ .I nr_vecs
28
+ from the
29
+ .I iovecs
30
+ array at the specified
31
+ .I offset.
32
+
33
+ On files that support seeking, if the offset is set to
34
+ .B -1,
35
+ the write operation commences at the file offset, and the file offset is
36
+ incremented by the number of bytes written. See
37
+ .BR write (2)
38
+ for more details. Note that for an async API, reading and updating the
39
+ current file offset may result in unpredictable behavior, unless access
40
+ to the file is serialized. It is not encouraged to use this feature, if it's
41
+ possible to provide the desired IO offset from the application or library.
42
+
43
+ On files that are not capable of seeking, the offset is ignored.
44
+
45
+ After the write has been prepared it can be submitted with one of the submit
46
+ functions.
47
+
48
+ .SH RETURN VALUE
49
+ None
50
+ .SH SEE ALSO
51
+ .BR io_uring_get_sqe (3), io_uring_prep_write (3), io_uring_prep_writev2 (3), io_uring_submit (3)
@@ -0,0 +1,78 @@
1
+ .\" Copyright (C) 2021 Stefan Roesch <shr@fb.com>
2
+ .\"
3
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
4
+ .\"
5
+ .TH io_uring_prep_writev2 3 "November 15, 2021" "liburing-2.1" "liburing Manual"
6
+ .SH NAME
7
+ io_uring_prep_writev2 - prepare vector I/O write request with flags
8
+
9
+ .SH SYNOPSIS
10
+ .nf
11
+ .BR "#include <liburing.h>"
12
+ .PP
13
+ .BI "void io_uring_prep_writev2(struct io_uring_sqe *sqe,"
14
+ .BI " int fd,"
15
+ .BI " const struct iovec *iovecs,"
16
+ .BI " unsigned nr_vecs,"
17
+ .BI " __u64 offset,"
18
+ .BI " int flags)"
19
+ .fi
20
+ .PP
21
+ .SH DESCRIPTION
22
+ .PP
23
+ The io_uring_prep_writev2() prepares a vectored IO write request. The
24
+ submission queue entry
25
+ .I sqe
26
+ is setup to use the file descriptor
27
+ .I fd
28
+ to start writing
29
+ .I nr_vecs
30
+ from the
31
+ .I iovecs
32
+ array at the specified
33
+ .I offset.
34
+ The behavior of the function can be controlled with the
35
+ .I flags
36
+ parameter.
37
+
38
+ Supported values for
39
+ .I flags
40
+ are:
41
+ .TP
42
+ .B RWF_HIPRI
43
+ High priority request, poll if possible
44
+ .TP
45
+ .B RWF_DSYNC
46
+ per-IO O_DSYNC
47
+ .TP
48
+ .B RWF_SYNC
49
+ per-IO O_SYNC
50
+ .TP
51
+ .B RWF_NOWAIT
52
+ per-IO, return
53
+ .B -EAGAIN
54
+ if operation would block
55
+ .TP
56
+ .B RWF_APPEND
57
+ per-IO O_APPEND
58
+
59
+ .P
60
+ On files that support seeking, if the offset is set to
61
+ .B -1,
62
+ the write operation commences at the file offset, and the file offset is
63
+ incremented by the number of bytes written. See
64
+ .BR write (2)
65
+ for more details. Note that for an async API, reading and updating the
66
+ current file offset may result in unpredictable behavior, unless access
67
+ to the file is serialized. It is not encouraged to use this feature, if it's
68
+ possible to provide the desired IO offset from the application or library.
69
+
70
+ On files that are not capable of seeking, the offset is ignored.
71
+
72
+ After the write has been prepared, it can be submitted with one of the submit
73
+ functions.
74
+
75
+ .SH RETURN VALUE
76
+ None
77
+ .SH SEE ALSO
78
+ .BR io_uring_get_sqe (3), io_uring_prep_write (3), io_uring_prep_writev (3), io_uring_submit (3)
@@ -0,0 +1,27 @@
1
+ .\" Copyright (C) 2020 Jens Axboe <axboe@kernel.dk>
2
+ .\" Copyright (C) 2020 Red Hat, Inc.
3
+ .\"
4
+ .\" SPDX-License-Identifier: LGPL-2.0-or-later
5
+ .\"
6
+ .TH io_uring_queue_exit 3 "July 10, 2020" "liburing-0.7" "liburing Manual"
7
+ .SH NAME
8
+ io_uring_queue_exit - tear down io_uring submission and completion queues
9
+ .SH SYNOPSIS
10
+ .nf
11
+ .BR "#include <liburing.h>"
12
+ .PP
13
+ .BI "void io_uring_queue_exit(struct io_uring * ring );"
14
+ .fi
15
+ .PP
16
+ .SH DESCRIPTION
17
+ .PP
18
+ .BR io_uring_queue_exit (3)
19
+ will release all resources acquired and initialized by
20
+ .BR io_uring_queue_init (3).
21
+ It first unmaps the memory shared between the application and the kernel and then closes the io_uring file descriptor.
22
+ .SH RETURN VALUE
23
+ None
24
+ .SH SEE ALSO
25
+ .BR io_uring_setup (2),
26
+ .BR mmap (2),
27
+ .BR io_uring_queue_init (3)