Max Kellermann
2c7ca16c4e
lib/fmt/ToBuffer: add constexpr
2025-01-29 18:12:08 +01:00
Max Kellermann
7c9a460786
io/uring/Ring: add method SetMaxWorkers()
2025-01-29 18:10:59 +01:00
Max Kellermann
c644b7616a
io/uring/Ring: add ctor wrapping io_uring_queue_init_params()
2025-01-29 18:10:20 +01:00
Max Kellermann
badf7101e2
io/uring/Ring: use if with initializer
2025-01-29 18:10:04 +01:00
Max Kellermann
6fb91e661c
io/uring/Queue: DispatchCompletions() returns bool
2025-01-29 18:09:57 +01:00
Max Kellermann
ed819a05e3
io/uring/Ring: add SubmitAndGetEvents()
2025-01-29 18:09:52 +01:00
Max Kellermann
2e3a51a5da
io/uring/Close: use IOSQE_CQE_SKIP_SUCCESS
...
We don't want to get any completion events for "close". It's
fire-and-forget.
2025-01-29 18:09:29 +01:00
Max Kellermann
3f638bfa03
io/uring/Operation: add method GetUringData()
2025-01-29 18:07:55 +01:00
Max Kellermann
57e7fb3f62
tag/Id3Load, ...: use std::make_unique_for_overwrite()
...
Don't zero-initialize the buffers. This removes some useless
overhead.
2025-01-29 12:01:27 +01:00
Max Kellermann
35dc1fc589
io/UniqueFileDescriptor: use AdoptTag in the constructors that adopt ownership
2025-01-23 16:57:39 +01:00
Max Kellermann
9a7a8ec137
io: always pass O_NONBLOCK to open()
...
Opening a FIFO may block indefinitely (until a writer connects). This
is dangerous because it may be a DoS vulnerability in many programs
that do not expect open() to block.
This obsoletes the method FileDescriptor::OpenNonBlocking() which
wasn't used anyway.
2024-12-03 12:28:17 +01:00
Max Kellermann
6dce8dcaa5
io/FileDescriptor: add readv()/writev() wrappers
2024-11-13 10:44:03 +01:00
Max Kellermann
fc4a579d83
io/FileDescriptor: remove Read()/Write() with void pointers
...
Obsolete and unsafe.
2024-11-13 10:43:34 +01:00
Max Kellermann
370df37596
io/uring/Ring: add more API documentation
2024-11-11 19:04:24 +01:00
Max Kellermann
84e3501084
io/uring/Queue: remove redundant include
2024-11-11 19:04:21 +01:00
Max Kellermann
d7b4634e5e
io/FileLineReader: add missing include
2024-10-30 21:47:37 +01:00
Max Kellermann
c7b80b0828
io/FileDescriptor: add method WriteAt()
2024-08-30 12:29:32 +02:00
Max Kellermann
59199b5620
io/FileDescriptor: pass std::span to ReadAt()
2024-08-30 12:29:27 +02:00
Max Kellermann
ebfc83dac5
io/FileDescriptor: add method SetPipeCapacity()
2024-08-30 12:28:51 +02:00
Max Kellermann
49ad4e9f3c
io/FileDescriptor: remove unnecessary operator!=()
...
The compiler must generate this implicitly from operator==().
2024-07-23 13:05:02 +02:00
Max Kellermann
39c9e92f42
lib/fmt: require libfmt 9
...
Version 9 added the "debug format" which I'd like to use.
2024-04-16 11:50:18 +02:00
Max Kellermann
1e4bf90c60
io, net, evnet: quote file names in error messages
2024-04-10 13:36:05 +02:00
Max Kellermann
be84b189dc
util, io, net, ...: use "#pragma once"
2024-03-11 15:32:24 +01:00
Max Kellermann
b63a794fbe
io/FileDescriptor: add [[nodiscard]]
2024-01-13 22:31:16 +01:00
Max Kellermann
08a5768764
fs/io/TextFile: split into class FileLineReader and AutoGunzipFileLineReader
...
Detangle dependencies.
2023-11-25 22:50:32 +01:00
Max Kellermann
d888bb1902
io/meson.build: move libfmt dependency to libio.a
2023-11-25 22:16:47 +01:00
Max Kellermann
a073db1e52
util/SpanCast: add ReferenceAsBytes()
2023-11-02 10:50:00 +01:00
Max Kellermann
ccbacb369b
io/linux/ProcPath: new library
2023-10-15 10:55:32 +02:00
Max Kellermann
e521b58b01
io/PeekReader: fix offset/size mixup
...
Regression by commit 7ccc4ddf0d
2023-10-08 09:55:59 +02:00
Max Kellermann
34182990ef
fs/FileInfo: add fstat() wrapper
2023-10-07 12:49:07 +02:00
Max Kellermann
1ca5d6baa6
io/FileReader: do not copy the path
2023-10-07 12:48:03 +02:00
Max Kellermann
9365f68454
io/FileReader: use GetFileInfoByHandle()
2023-10-07 12:47:57 +02:00
Max Kellermann
19c73680cf
io/FileReader: use uint_least64_t
2023-10-07 08:49:04 +02:00
Max Kellermann
a9ba9a5f92
io/Reader: add [[nodiscard]]
2023-10-07 08:45:59 +02:00
Max Kellermann
3032792563
io/Reader: add method ReadFull()
2023-10-07 08:45:52 +02:00
Max Kellermann
7ccc4ddf0d
io/Reader: use std::span
2023-10-07 08:44:42 +02:00
Max Kellermann
b9704715fb
io/FileOutputStream: pass dfd=-1 for absolute /proc/self/fd/N path
2023-10-07 08:42:35 +02:00
Max Kellermann
496184b1bc
io/Reader: add method ReadT()
2023-10-07 08:27:13 +02:00
Max Kellermann
cad35a83fb
io/FileDescriptor: add Read()/Write() overloads with std::span
2023-09-27 11:14:23 +02:00
Max Kellermann
09a2da89a2
io/FileDescriptor: pass std::span to Full{Read,Write}()
2023-09-27 10:14:02 +02:00
Max Kellermann
ce2965b5bc
io/uring/meson.build: disable io_uring on Android
...
On Android, the feature is forbidden by a seccomp filter, see
https://security.googleblog.com/2023/06/learnings-from-kctf-vrps-42-linux.html
2023-09-16 22:39:03 +02:00
Max Kellermann
18000ff499
io/uring/Handler: remove unused header
2023-09-16 22:39:03 +02:00
Max Kellermann
c994fe4879
io/uring/meson.build: detect liburing with include_type=system
...
This avoids breakages due to `-Wgnu-anonymous-struct`.
2023-09-12 10:20:58 +02:00
Max Kellermann
11c49da871
io/FileReader: remove unused method Close()
...
It's enough to have the destructor.
2023-09-12 09:53:06 +02:00
Max Kellermann
678828b56f
io/FileOutputStream: remove obsolete maybe_unused
2023-09-12 09:43:14 +02:00
Max Kellermann
859ffddea3
io/BufferedReader: fix ReadFullT() after std::span migration
2023-09-12 09:32:20 +02:00
Max Kellermann
d9b1f6223e
io/uring/Close: wrapper for io_uring_prep_close()
2023-05-22 21:59:44 +02:00
Max Kellermann
26577d1301
io/uring/Queue: make Submit() virtual, Push() not
...
This allows submitting io_uring calls without an `Operation` instance
(fire & forget). We'll do that for close().
2023-05-22 21:57:18 +02:00
Max Kellermann
8ba68fdb47
io/OutputStream: use std::span
2023-05-21 21:35:11 +02:00
Max Kellermann
e72d27566c
io/BufferedOutputStream: use std::string_view
2023-05-21 21:31:32 +02:00