Andreas Kling
aa4d5817af
Kernel: Use TRY() in sys$ptrace()
2021-09-05 16:25:40 +02:00
Andreas Kling
b2950c67ea
Kernel: Use TRY() in Inode
2021-09-05 16:25:40 +02:00
Andreas Kling
f20d1f0cc6
Kernel: Use TRY() in Region
2021-09-05 16:25:40 +02:00
Andreas Kling
c9a20bcd87
Kernel: Use TRY() in the SoundBlaster16 driver
2021-09-05 16:25:40 +02:00
Andreas Kling
4a2b0f6bec
Kernel: Use TRY() in sys$access()
2021-09-05 16:25:40 +02:00
Andreas Kling
c1c774da91
Kernel: Use TRY() in FIFO
2021-09-05 16:25:40 +02:00
Andreas Kling
cad78f5904
Kernel: Use TRY() in InodeFile
2021-09-05 16:25:40 +02:00
Andreas Kling
29a9f80ecf
Kernel/USB: Use TRY() in the various USB classes
2021-09-05 16:25:40 +02:00
Andreas Kling
f8fba5f017
Kernel: Use TRY() in sys$socket() and friends
2021-09-05 16:25:40 +02:00
Andreas Kling
8714c550b4
Kernel: Use TRY() in TCPSocket
2021-09-05 16:25:40 +02:00
Andreas Kling
4b7575fabd
Kernel: Unbreak x86_64 build (PageDirectory)
2021-09-05 15:38:57 +02:00
Andreas Kling
865eb54f75
Kernel/Ext2FS: Use TRY() in the Ext2FS
...
This class was just *full* of great opportunities for TRY(). :^)
2021-09-05 15:30:15 +02:00
Andreas Kling
83fed5b2de
Kernel: Tidy up Memory::AddressSpace construction
...
- Return KResultOr<T> in places
- Propagate errors
- Use TRY()
2021-09-05 15:13:20 +02:00
Andreas Kling
0cf65cf7ec
Kernel: Use TRY() even more in VirtualFileSystem
...
Allowing TRY() with KResult unlocked a whole lot more opportunities.
2021-09-05 14:55:51 +02:00
Andreas Kling
e1af24eac8
Kernel: Make KResult usable with TRY() as well
...
This patch adds release_error() and release_value() to KResult, making
it usable with TRY().
Note that release_value() returns void, since there is no value inside
a KResult.
2021-09-05 14:50:52 +02:00
Andreas Kling
71187d865e
Kernel: Tidy up VirtualFileSystem::mount_root() a little bit
...
- Return KResult instead of bool
- Use TRY()
2021-09-05 14:46:44 +02:00
Andreas Kling
b0f2acbd91
Kernel: Use TRY() in FileDescription
2021-09-05 14:43:51 +02:00
Andreas Kling
f2f5df793a
Kernel: Use TRY() in sys$chdir()
2021-09-05 14:41:13 +02:00
Andreas Kling
5ba10c6017
Kernel: Use TRY() in Memory::AddressSpace
2021-09-05 14:40:18 +02:00
Andreas Kling
8cd4879946
Kernel: Use TRY() in sys$link() and sys$symlink()
2021-09-05 14:38:28 +02:00
Andreas Kling
c902b3cb0d
Kernel: Use TRY() in sys$anon_create()
2021-09-05 14:36:40 +02:00
Andreas Kling
4012099338
Kernel: Tidy up AnonymousFile construction a bit
...
- Rename create() => try_create()
- Use adopt_nonnull_ref_or_enomem()
2021-09-05 14:33:25 +02:00
Andreas Kling
9a1fdb523f
Kernel: Use TRY() in sys$unveil()
2021-09-05 14:30:08 +02:00
Andreas Kling
36efecf3c3
Kernel: Use try in sys$mmap() and friends :^)
2021-09-05 14:27:41 +02:00
Andreas Kling
6bf901b414
Kernel: Use TRY() in sys$execve()
...
There are more opportunities to use TRY() here, but it will require
improvements to error propagation first.
2021-09-05 14:20:03 +02:00
Andreas Kling
982991d92d
Kernel: Use TRY() in IPv4Socket
2021-09-05 14:16:08 +02:00
Andreas Kling
d65fbdc44d
Kernel: Use TRY() in Thread
2021-09-05 14:08:12 +02:00
Andreas Kling
ae885b188f
Kernel: Use TRY() when creating first thread in a new process
2021-09-05 14:08:12 +02:00
Andreas Kling
2ab8fd89fc
Kernel: Simplify Process::get_syscall_path_argument()
2021-09-05 14:08:12 +02:00
Andreas Kling
f30eae7e7a
Kernel: Use TRY() in some Process functions
2021-09-05 14:08:12 +02:00
Andreas Kling
81d3f823f7
Kernel: Use TRY() in LocalSocket
2021-09-05 14:08:12 +02:00
Andreas Kling
a5e71debef
Kernel: Use TRY() in VirtualFileSystem
2021-09-05 14:08:12 +02:00
Andreas Kling
e1da3b1841
Kernel: Make KResult pull in the TRY macro
2021-09-05 14:08:12 +02:00
Andreas Kling
fd44336ef8
Kernel: Add KResultOr::release_error()
...
This is just for symmetry with AK::Result, so that we can use them
interchangeably in generic code.
2021-09-05 13:29:06 +02:00
sin-ack
566c5d1e99
AK+Kernel: Move KResult.h to Kernel/API for userspace access
...
This commit moves the KResult and KResultOr objects to Kernel/API to
signify that they may now be freely used by userspace code at points
where a syscall-related error result is to be expected. It also exposes
KResult and KResultOr to the global namespace to make it nicer to use
for userspace code.
2021-09-05 12:54:48 +02:00
Brian Gianforcaro
3d12d0f408
Kernel: Declare syscall handlers with "using" instead of "typedef"
...
Also use bit_cast to avoid -Wcast-function-type warning.
2021-09-05 09:48:43 +01:00
Brian Gianforcaro
9d1b27263f
Kernel: Declare type aliases with "using" instead of "typedef"
...
This is the idiomatic way to declare type aliases in modern C++.
Flagged by Sonar Cloud as a "Code Smell", but I happen to agree
with this particular one. :^)
2021-09-05 09:48:43 +01:00
Andreas Kling
7463eb52e8
Kernel: Improve names in the ARP table thread blocker
...
More instances of functions named "unblock()" that don't actually
unblock in all cases being renamed to something more precise.
2021-09-05 01:10:56 +02:00
Andreas Kling
e851a77346
Kernel: Rename FileBlocker::unblock() => unblock_if_conditions_are_met()
...
Since this may not actually unblock, the old name was very confusing.
2021-09-05 01:10:56 +02:00
Andreas Kling
68a6d4c30a
Kernel: Tidy up InodeWatcher construction
...
- Rename create() => try_create()
- Use adopt_nonnull_ref_or_enomem()
2021-09-05 01:10:56 +02:00
Andreas Kling
393229e2aa
Kernel: Remove UserOrKernelBuffer::copy_into_string()
...
All former users of this API have been converted to use KString. :^)
2021-09-05 01:10:56 +02:00
Andreas Kling
211c1c087d
Kernel/Plan9FS: Use KString instead of String in one place
2021-09-05 01:10:56 +02:00
Andreas Kling
9d736772bd
Kernel/Ext2FS: Remove a String allocation in debug logging
...
We were creating a temporary String just to log the target when writing
a symlink directly into inline storage.
2021-09-05 01:10:55 +02:00
Andreas Kling
7d8e036e26
Kernel: Tidy up UDPSocket creation a bit
...
- Rename create() => try_create()
- Use adopt_nonnull_ref_or_enomem()
2021-09-04 23:11:04 +02:00
Andreas Kling
648c768d81
Kernel: Tidy up TCPSocket creation a bit
...
- Rename create() => try_create()
- Use adopt_nonnull_ref_or_enomem()
2021-09-04 23:11:04 +02:00
Andreas Kling
ac85fdeb1c
Kernel: Handle ProcessGroup allocation failures better
...
- Rename create* => try_create*
- Don't null out existing process group on allocation failure
2021-09-04 23:11:04 +02:00
Andreas Kling
12f820eb08
Kernel: Make Process::try_create() propagate errors better
2021-09-04 23:11:04 +02:00
Andreas Kling
3b995c6d01
Kernel: Tidy up Process::try_create_user_process()
...
This function is currently only ever used to create the init process
(SystemServer). It had a few idiosyncratic things about it that this
patch cleans up:
- Errors were returned in an int& out-param.
- It had a path for non-0 process PIDs which was never taken.
2021-09-04 23:11:04 +02:00
Andreas Kling
ba1a6ca971
Kernel: Move pledge verification into Process member functions
...
REQUIRE_PROMISE and REQUIRE_NO_PROMISES were macros for some reason,
and used all over the place.
This patch adds require_promise(Pledge) and require_no_promises()
to Process and makes the macros call these on the current process
instead of inlining code everywhere.
2021-09-04 23:11:04 +02:00
Andreas Kling
5d5a3708c4
Kernel: Rename Thread::clone() => try_clone() and propagate errors
2021-09-04 23:11:04 +02:00