zig/lib/std
Igor Anić 087ee497d4 io_uring: add zero-copy send operation
`send_zc` tries to avoid making intermediate copies of data. Zerocopy execution
is not guaranteed and may fall back to copying.

The flags field of the first struct io_uring_cqe may likely contain
IORING_CQE_F_MORE , which means that there will be a second completion event /
notification for the request, with the user_data field set to the same value.
The user must not modify the data buffer until the notification is posted. The
first cqe follows the usual rules and so its res field will contain the number
of bytes sent or a negative error code. The notification's res field will be set
to zero and the flags field will contain IORING_CQE_F_NOTIF. The two step model
is needed because the kernel may hold on to buffers for a long time, e.g.
waiting for a TCP ACK, and having a separate cqe for request completions allows
userspace to push more data without extra delays. Note, notifications are only
responsible for controlling the lifetime of the buffers, and as such don't mean
anything about whether the data has atually been sent out or received by the
other end. Even errored requests may generate a notification, and the user must
check for IORING_CQE_F_MORE rather than relying on the result.

Available since kernel 6.0.

References:
https://man7.org/linux/man-pages/man3/io_uring_prep_send_zc.3.html
https://man7.org/linux/man-pages/man2/io_uring_enter.2.html
2023-11-10 16:44:18 +01:00
..
atomic x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
Build Merge pull request #17873 from ziglang/elf-archive 2023-11-07 03:22:14 +01:00
c Merge pull request #17341 from rzezeski/illumos-updates 2023-10-03 11:04:41 -07:00
compress x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
crypto Curve25519.fromEdwards25519(): don't assume normalized coordinates (#17920) 2023-11-08 11:56:56 +01:00
dwarf mem: fix ub in writeInt 2023-10-31 21:37:35 -04:00
event Fix simple doc mistakes. (#17624) 2023-10-21 21:24:55 +00:00
fmt x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
fs std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
hash x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
heap Use ArenaAllocator.reset in MemoryPool 2023-11-01 14:45:35 +02:00
http x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
io std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
json std.math: Add isPositiveZero() and isNegativeZero() 2023-11-09 00:55:43 -07:00
math std.math: Add isPositiveZero() and isNegativeZero() 2023-11-09 00:55:43 -07:00
mem mem: explicit dupe and dupeZ error on Allocator 2023-09-07 21:56:57 +03:00
meta all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
net x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
os io_uring: add zero-copy send operation 2023-11-10 16:44:18 +01:00
rand x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
sort Fix simple doc mistakes. (#17624) 2023-10-21 21:24:55 +00:00
target nvptx: omit sm_90a from the CPU target features for now 2023-09-19 09:37:53 -07:00
testing std: enable FailingAllocator to fail on resize 2023-09-06 19:06:32 +03:00
Thread x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
time all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
tz
unicode all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
valgrind valgrind.memcheck: fix makeMem*() 2023-10-03 02:51:01 -07:00
zig Merge pull request #17888 from AdamGoertz/zig-reduce 2023-11-09 00:52:38 -07:00
array_hash_map.zig std.ArrayHashMap: add init function 2023-11-04 15:46:30 -07:00
array_list.zig x86_64: implement enough to pass unicode tests 2023-10-23 22:42:18 -04:00
ascii.zig migration: std.math.{min, min3, max, max3} -> @min & @max 2023-06-16 13:44:09 -07:00
atomic.zig
base64.zig x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
bit_set.zig Merge pull request #17852 from ziglang/zig-reduce 2023-11-04 14:25:50 -04:00
BitStack.zig std.json: Unify stringify and writeStream (#16405) 2023-07-21 19:56:46 -04:00
bounded_array.zig Smaller memory footprint for BoundedArray (#16299) 2023-07-03 13:58:03 -04:00
buf_map.zig
buf_set.zig
Build.zig x86_64: implement enough to pass unicode tests 2023-10-23 22:42:18 -04:00
builtin.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
c.zig Add illumos OS tag 2023-10-02 15:31:49 -06:00
child_process.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
coff.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
compress.zig
comptime_string_map.zig ComptimeStringMap: Add version that takes an equality function 2023-09-14 11:03:15 -07:00
crypto.zig x86_64: implement 128-bit builtins 2023-10-23 22:42:18 -04:00
debug.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
dwarf.zig mem: fix ub in writeInt 2023-10-31 21:37:35 -04:00
dynamic_library.zig Add illumos OS tag 2023-10-02 15:31:49 -06:00
elf.zig CheckObject: support parsing and dumping archive symtab for ELF 2023-11-06 21:18:26 +01:00
enums.zig Fix simple doc mistakes. (#17624) 2023-10-21 21:24:55 +00:00
event.zig
fifo.zig x86_64: implement enough to pass unicode tests 2023-10-23 22:42:18 -04:00
fmt.zig x86_64: fix compiler rt test failures 2023-10-29 07:20:36 -04:00
fs.zig x86_64: implement @divFloor and @mod for i128 2023-10-26 21:45:57 -04:00
hash.zig XXH3 Implementation for Zig STD (#17530) 2023-10-17 13:55:01 -05:00
hash_map.zig x86_64: implement 128-bit builtins 2023-10-23 22:42:18 -04:00
heap.zig std: remove some unused imports (#16710) 2023-08-06 15:18:50 -04:00
http.zig std.http: fix crashes found via fuzzing 2023-10-21 20:52:59 -05:00
Ini.zig
io.zig mem: fix ub in writeInt 2023-10-31 21:37:35 -04:00
json.zig x86_64: pass more tests 2023-10-25 04:28:30 -04:00
leb128.zig x86_64: fix compiler rt test failures 2023-10-29 07:20:36 -04:00
linked_list.zig std: Move TailQueue alias to correct namespace 2023-08-28 17:41:37 -07:00
log.zig all: zig fmt and rename "@XToY" to "@YFromX" 2023-06-19 12:34:42 -07:00
macho.zig std.macho: remove alignment from LoadCommandIterator 2023-10-03 14:55:17 -07:00
math.zig std.math: Add isPositiveZero() and isNegativeZero() 2023-11-09 00:55:43 -07:00
mem.zig x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
meta.zig Remove @fabs, fabs and absCast/Int from std lib 2023-09-27 11:24:28 -07:00
multi_array_list.zig x86_64: fix miscompilations 2023-11-04 09:15:05 -04:00
net.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
once.zig x86_64: fix std test failures 2023-11-03 23:18:21 -04:00
os.zig std.os: do nothing when calling fchdir with AT_FDCWD 2023-10-21 05:13:21 -04:00
packed_int_array.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
pdb.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
priority_dequeue.zig x86_64: implement 128-bit builtins 2023-10-23 22:42:18 -04:00
priority_queue.zig x86_64: implement 128-bit builtins 2023-10-23 22:42:18 -04:00
process.zig CLI: finish updating module API usage 2023-10-08 16:54:31 -07:00
Progress.zig Fix minor typo in the description of Progress 2023-10-13 00:44:30 +03:00
rand.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
RingBuffer.zig std.RingBuffer: Implement more efficient read/write methods 2023-10-21 19:19:35 +01:00
segmented_list.zig x86_64: implement enough to pass unicode tests 2023-10-23 22:42:18 -04:00
SemanticVersion.zig std.zig.system.NativeTargetInfo: fix glibc version parsing 2023-10-23 06:00:53 -04:00
simd.zig x86_64: fix cond_br 2023-10-27 03:33:49 -04:00
sort.zig x86_64: implement enough to pass unicode tests 2023-10-23 22:42:18 -04:00
start.zig Merge pull request #17815 from Luukdegram/wasm-no-entry 2023-11-05 18:44:12 -05:00
start_windows_tls.zig all: migrate code to new cast builtin syntax 2023-06-24 16:56:39 -07:00
std.zig std.http: use loadDefaultProxies in compiler 2023-10-21 20:52:58 -05:00
tar.zig std.tar: fix creation of symlinks with omit_empty_directories 2023-10-08 16:54:31 -07:00
target.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
testing.zig std.testing: disable expectEqualSlices printing for spirv 2023-10-15 14:00:26 +02:00
Thread.zig std/Thread: remove unnecessary @ptrCast (#17766) 2023-10-31 00:17:39 -04:00
time.zig x86_64: implement @divFloor and @mod for i128 2023-10-26 21:45:57 -04:00
treap.zig x86_64: add missing spills 2023-10-26 22:35:38 -04:00
tz.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
unicode.zig std.builtin.Endian: make the tags lower case 2023-10-31 21:37:35 -04:00
Uri.zig std.http.Client: add proxy scheme guessing, fix typo 2023-10-27 03:42:33 -04:00
valgrind.zig Fix simple doc mistakes. (#17624) 2023-10-21 21:24:55 +00:00
wasm.zig Fix simple doc mistakes. (#17624) 2023-10-21 21:24:55 +00:00
zig.zig make Package.Path support string escape formatting 2023-10-08 16:54:31 -07:00