1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-13 18:51:00 +00:00
serenity/Kernel/Net
Idan Horowitz e28af4a2fc Kernel: Stop using HashMap in Mutex
This commit removes the usage of HashMap in Mutex, thereby making Mutex
be allocation-free.

In order to achieve this several simplifications were made to Mutex,
removing unused code-paths and extra VERIFYs:
 * We no longer support 'upgrading' a shared lock holder to an
   exclusive holder when it is the only shared holder and it did not
   unlock the lock before relocking it as exclusive. NOTE: Unlike the
   rest of these changes, this scenario is not VERIFY-able in an
   allocation-free way, as a result the new LOCK_SHARED_UPGRADE_DEBUG
   debug flag was added, this flag lets Mutex allocate in order to
   detect such cases when debugging a deadlock.
 * We no longer support checking if a Mutex is locked by the current
   thread when the Mutex was not locked exclusively, the shared version
   of this check was not used anywhere.
 * We no longer support force unlocking/relocking a Mutex if the Mutex
   was not locked exclusively, the shared version of these functions
   was not used anywhere.
2022-01-29 16:45:39 +01:00
..
Intel Kernel: Update E1000 link state using interrupt 2021-12-31 15:48:16 +01:00
NE2000 Everywhere: Convert ByteBuffer factory methods from Optional -> ErrorOr 2022-01-24 22:36:09 +01:00
Realtek Kernel: Propagate overflow errors from Memory::page_round_up 2021-12-28 23:08:50 +01:00
ARP.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
EthernetFrameHeader.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
EtherType.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ICMP.h Kernel: Switch static_asserts of a type size to AK::AssertSize 2021-09-05 20:08:57 +02:00
IPv4.h Kernel: Remove unused String.h includes 2021-12-11 13:15:26 -08:00
IPv4Socket.cpp Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
IPv4Socket.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
IPv4SocketTuple.h Kernel: Convert IPv4SocketTuple::to_string() to KString 2022-01-12 16:09:09 +02:00
LocalSocket.cpp Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
LocalSocket.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
LoopbackAdapter.cpp Kernel: Convert network adapter names to Kernel::KString 2021-10-01 17:22:17 +00:00
LoopbackAdapter.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
NetworkAdapter.cpp Everywhere: Convert ByteBuffer factory methods from Optional -> ErrorOr 2022-01-24 22:36:09 +01:00
NetworkAdapter.h Kernel+LibC: Add support for the IPv4 TOS field via the IP_TOS sockopt 2021-10-28 11:24:36 +02:00
NetworkingManagement.cpp Kernel: Remove the KString::try_create(String::formatted(...)) pattern 2021-12-28 01:55:22 -08:00
NetworkingManagement.h Kernel: Remove the kmalloc_eternal heap :^) 2021-12-28 21:02:38 +01:00
NetworkTask.cpp Kernel: Use MUST + Vector::try_append instead of Vector::append 2022-01-05 14:04:18 +01:00
NetworkTask.h Kernel: Avoid deadlock when trying to send packets from the NetworkTask 2021-04-30 23:11:56 +02:00
Routing.cpp Kernel: Add support for the MSG_DONTROUTE sys$sendmsg flag 2021-12-05 12:53:29 +01:00
Routing.h Kernel: Add support for the MSG_DONTROUTE sys$sendmsg flag 2021-12-05 12:53:29 +01:00
Socket.cpp Kernel: Fix typo in Socket::getsockopt tracing 2022-01-18 08:47:22 +01:00
Socket.h Kernel: Stop using HashMap in Mutex 2022-01-29 16:45:39 +01:00
TCP.h Kernel: Switch static_asserts of a type size to AK::AssertSize 2021-09-05 20:08:57 +02:00
TCPSocket.cpp Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
TCPSocket.h Kernel: Use u64 instead of size_t for File::can_write offset 2022-01-25 22:41:17 +02:00
UDP.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UDPSocket.cpp Kernel: Remove unnecessary SocketHandle<T> class 2021-12-25 11:23:57 +01:00
UDPSocket.h Kernel: Remove unnecessary SocketHandle<T> class 2021-12-25 11:23:57 +01:00