diff options
author | Andreas Kling <kling@serenityos.org> | 2021-09-07 13:39:11 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-09-07 13:53:14 +0200 |
commit | 4a9c18afb9b9c7fde698e93700e661d66e3ed34d (patch) | |
tree | be50cd7629139e1c3d6c7df5bcffa7a0d5a1e898 /Kernel/Net | |
parent | dbd639a2d8d288691e6cffd29e4ff2ec0bae6982 (diff) | |
download | serenity-4a9c18afb9b9c7fde698e93700e661d66e3ed34d.zip |
Kernel: Rename FileDescription => OpenFileDescription
Dr. POSIX really calls these "open file description", not just
"file description", so let's call them exactly that. :^)
Diffstat (limited to 'Kernel/Net')
-rw-r--r-- | Kernel/Net/IPv4Socket.cpp | 24 | ||||
-rw-r--r-- | Kernel/Net/IPv4Socket.h | 22 | ||||
-rw-r--r-- | Kernel/Net/LocalSocket.cpp | 50 | ||||
-rw-r--r-- | Kernel/Net/LocalSocket.h | 54 | ||||
-rw-r--r-- | Kernel/Net/Socket.cpp | 8 | ||||
-rw-r--r-- | Kernel/Net/Socket.h | 18 | ||||
-rw-r--r-- | Kernel/Net/TCPSocket.cpp | 6 | ||||
-rw-r--r-- | Kernel/Net/TCPSocket.h | 4 | ||||
-rw-r--r-- | Kernel/Net/UDPSocket.cpp | 2 | ||||
-rw-r--r-- | Kernel/Net/UDPSocket.h | 2 |
10 files changed, 95 insertions, 95 deletions
diff --git a/Kernel/Net/IPv4Socket.cpp b/Kernel/Net/IPv4Socket.cpp index 0e88cc1fc1..0a2ad95a26 100644 --- a/Kernel/Net/IPv4Socket.cpp +++ b/Kernel/Net/IPv4Socket.cpp @@ -7,7 +7,7 @@ #include <AK/Singleton.h> #include <AK/StringBuilder.h> #include <Kernel/Debug.h> -#include <Kernel/FileSystem/FileDescription.h> +#include <Kernel/FileSystem/OpenFileDescription.h> #include <Kernel/Net/ARP.h> #include <Kernel/Net/ICMP.h> #include <Kernel/Net/IPv4.h> @@ -28,7 +28,7 @@ namespace Kernel { static Singleton<MutexProtected<IPv4Socket::List>> s_all_sockets; -using BlockFlags = Thread::FileDescriptionBlocker::BlockFlags; +using BlockFlags = Thread::OpenFileDescriptionBlocker::BlockFlags; MutexProtected<IPv4Socket::List>& IPv4Socket::all_sockets() { @@ -141,7 +141,7 @@ KResult IPv4Socket::listen(size_t backlog) return protocol_listen(result.did_allocate); } -KResult IPv4Socket::connect(FileDescription& description, Userspace<const sockaddr*> address, socklen_t address_size, ShouldBlock should_block) +KResult IPv4Socket::connect(OpenFileDescription& description, Userspace<const sockaddr*> address, socklen_t address_size, ShouldBlock should_block) { if (address_size != sizeof(sockaddr_in)) return set_so_error(EINVAL); @@ -166,7 +166,7 @@ KResult IPv4Socket::connect(FileDescription& description, Userspace<const sockad return protocol_connect(description, should_block); } -bool IPv4Socket::can_read(const FileDescription&, size_t) const +bool IPv4Socket::can_read(const OpenFileDescription&, size_t) const { if (m_role == Role::Listener) return can_accept(); @@ -175,7 +175,7 @@ bool IPv4Socket::can_read(const FileDescription&, size_t) const return m_can_read; } -bool IPv4Socket::can_write(const FileDescription&, size_t) const +bool IPv4Socket::can_write(const OpenFileDescription&, size_t) const { return true; } @@ -192,7 +192,7 @@ PortAllocationResult IPv4Socket::allocate_local_port_if_needed() return { m_local_port, true }; } -KResultOr<size_t> IPv4Socket::sendto(FileDescription&, const UserOrKernelBuffer& data, size_t data_length, [[maybe_unused]] int flags, Userspace<const sockaddr*> addr, socklen_t addr_length) +KResultOr<size_t> IPv4Socket::sendto(OpenFileDescription&, const UserOrKernelBuffer& data, size_t data_length, [[maybe_unused]] int flags, Userspace<const sockaddr*> addr, socklen_t addr_length) { MutexLocker locker(mutex()); @@ -251,7 +251,7 @@ KResultOr<size_t> IPv4Socket::sendto(FileDescription&, const UserOrKernelBuffer& return nsent_or_error; } -KResultOr<size_t> IPv4Socket::receive_byte_buffered(FileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>) +KResultOr<size_t> IPv4Socket::receive_byte_buffered(OpenFileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>) { MutexLocker locker(mutex()); if (m_receive_buffer->is_empty()) { @@ -287,7 +287,7 @@ KResultOr<size_t> IPv4Socket::receive_byte_buffered(FileDescription& description return nreceived_or_error; } -KResultOr<size_t> IPv4Socket::receive_packet_buffered(FileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*> addr, Userspace<socklen_t*> addr_length, Time& packet_timestamp) +KResultOr<size_t> IPv4Socket::receive_packet_buffered(OpenFileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*> addr, Userspace<socklen_t*> addr_length, Time& packet_timestamp) { MutexLocker locker(mutex()); ReceivedPacket packet; @@ -379,7 +379,7 @@ KResultOr<size_t> IPv4Socket::receive_packet_buffered(FileDescription& descripti return protocol_receive(ReadonlyBytes { packet.data.value().data(), packet.data.value().size() }, buffer, buffer_length, flags); } -KResultOr<size_t> IPv4Socket::recvfrom(FileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*> user_addr, Userspace<socklen_t*> user_addr_length, Time& packet_timestamp) +KResultOr<size_t> IPv4Socket::recvfrom(OpenFileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*> user_addr, Userspace<socklen_t*> user_addr_length, Time& packet_timestamp) { if (user_addr_length) { socklen_t addr_length; @@ -450,7 +450,7 @@ bool IPv4Socket::did_receive(const IPv4Address& source_address, u16 source_port, return true; } -String IPv4Socket::absolute_path(const FileDescription&) const +String IPv4Socket::absolute_path(const OpenFileDescription&) const { if (m_role == Role::None) return "socket"; @@ -536,7 +536,7 @@ KResult IPv4Socket::setsockopt(int level, int option, Userspace<const void*> use } } -KResult IPv4Socket::getsockopt(FileDescription& description, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size) +KResult IPv4Socket::getsockopt(OpenFileDescription& description, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size) { if (level != IPPROTO_IP) return Socket::getsockopt(description, level, option, value, value_size); @@ -563,7 +563,7 @@ KResult IPv4Socket::getsockopt(FileDescription& description, int level, int opti } } -KResult IPv4Socket::ioctl(FileDescription&, unsigned request, Userspace<void*> arg) +KResult IPv4Socket::ioctl(OpenFileDescription&, unsigned request, Userspace<void*> arg) { REQUIRE_PROMISE(inet); diff --git a/Kernel/Net/IPv4Socket.h b/Kernel/Net/IPv4Socket.h index 0a52e5a181..4d6cbcc35b 100644 --- a/Kernel/Net/IPv4Socket.h +++ b/Kernel/Net/IPv4Socket.h @@ -33,18 +33,18 @@ public: virtual KResult close() override; virtual KResult bind(Userspace<const sockaddr*>, socklen_t) override; - virtual KResult connect(FileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock = ShouldBlock::Yes) override; + virtual KResult connect(OpenFileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock = ShouldBlock::Yes) override; virtual KResult listen(size_t) override; virtual void get_local_address(sockaddr*, socklen_t*) override; virtual void get_peer_address(sockaddr*, socklen_t*) override; - virtual bool can_read(const FileDescription&, size_t) const override; - virtual bool can_write(const FileDescription&, size_t) const override; - virtual KResultOr<size_t> sendto(FileDescription&, const UserOrKernelBuffer&, size_t, int, Userspace<const sockaddr*>, socklen_t) override; - virtual KResultOr<size_t> recvfrom(FileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) override; + virtual bool can_read(const OpenFileDescription&, size_t) const override; + virtual bool can_write(const OpenFileDescription&, size_t) const override; + virtual KResultOr<size_t> sendto(OpenFileDescription&, const UserOrKernelBuffer&, size_t, int, Userspace<const sockaddr*>, socklen_t) override; + virtual KResultOr<size_t> recvfrom(OpenFileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) override; virtual KResult setsockopt(int level, int option, Userspace<const void*>, socklen_t) override; - virtual KResult getsockopt(FileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>) override; + virtual KResult getsockopt(OpenFileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>) override; - virtual KResult ioctl(FileDescription&, unsigned request, Userspace<void*> arg) override; + virtual KResult ioctl(OpenFileDescription&, unsigned request, Userspace<void*> arg) override; bool did_receive(const IPv4Address& peer_address, u16 peer_port, ReadonlyBytes, const Time&); @@ -61,7 +61,7 @@ public: IPv4SocketTuple tuple() const { return IPv4SocketTuple(m_local_address, m_local_port, m_peer_address, m_peer_port); } - String absolute_path(const FileDescription& description) const override; + String absolute_path(const OpenFileDescription& description) const override; u8 ttl() const { return m_ttl; } @@ -81,7 +81,7 @@ protected: virtual KResult protocol_listen([[maybe_unused]] bool did_allocate_port) { return KSuccess; } virtual KResultOr<size_t> protocol_receive(ReadonlyBytes /* raw_ipv4_packet */, UserOrKernelBuffer&, size_t, int) { return ENOTIMPL; } virtual KResultOr<size_t> protocol_send(const UserOrKernelBuffer&, size_t) { return ENOTIMPL; } - virtual KResult protocol_connect(FileDescription&, ShouldBlock) { return KSuccess; } + virtual KResult protocol_connect(OpenFileDescription&, ShouldBlock) { return KSuccess; } virtual KResultOr<u16> protocol_allocate_local_port() { return ENOPROTOOPT; } virtual bool protocol_is_disconnected() const { return false; } @@ -95,8 +95,8 @@ protected: private: virtual bool is_ipv4() const override { return true; } - KResultOr<size_t> receive_byte_buffered(FileDescription&, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>); - KResultOr<size_t> receive_packet_buffered(FileDescription&, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&); + KResultOr<size_t> receive_byte_buffered(OpenFileDescription&, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>); + KResultOr<size_t> receive_packet_buffered(OpenFileDescription&, UserOrKernelBuffer& buffer, size_t buffer_length, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&); void set_can_read(bool); diff --git a/Kernel/Net/LocalSocket.cpp b/Kernel/Net/LocalSocket.cpp index 489ce80b6b..43c59e0a46 100644 --- a/Kernel/Net/LocalSocket.cpp +++ b/Kernel/Net/LocalSocket.cpp @@ -7,7 +7,7 @@ #include <AK/Singleton.h> #include <AK/StringBuilder.h> #include <Kernel/Debug.h> -#include <Kernel/FileSystem/FileDescription.h> +#include <Kernel/FileSystem/OpenFileDescription.h> #include <Kernel/FileSystem/VirtualFileSystem.h> #include <Kernel/Locking/Mutex.h> #include <Kernel/Locking/MutexProtected.h> @@ -51,7 +51,7 @@ KResultOr<NonnullRefPtr<LocalSocket>> LocalSocket::try_create(int type) KResultOr<SocketPair> LocalSocket::try_create_connected_pair(int type) { auto socket = TRY(LocalSocket::try_create(type)); - auto description1 = TRY(FileDescription::try_create(*socket)); + auto description1 = TRY(OpenFileDescription::try_create(*socket)); TRY(socket->try_set_path("[socketpair]"sv)); @@ -60,7 +60,7 @@ KResultOr<SocketPair> LocalSocket::try_create_connected_pair(int type) socket->set_connect_side_role(Role::Connected); socket->set_role(Role::Accepted); - auto description2 = TRY(FileDescription::try_create(*socket)); + auto description2 = TRY(OpenFileDescription::try_create(*socket)); return SocketPair { move(description1), move(description2) }; } @@ -155,7 +155,7 @@ KResult LocalSocket::bind(Userspace<const sockaddr*> user_address, socklen_t add return KSuccess; } -KResult LocalSocket::connect(FileDescription& description, Userspace<const sockaddr*> address, socklen_t address_size, ShouldBlock) +KResult LocalSocket::connect(OpenFileDescription& description, Userspace<const sockaddr*> address, socklen_t address_size, ShouldBlock) { VERIFY(!m_bound); if (address_size != sizeof(sockaddr_un)) @@ -212,7 +212,7 @@ KResult LocalSocket::connect(FileDescription& description, Userspace<const socka return KSuccess; } - auto unblock_flags = Thread::FileDescriptionBlocker::BlockFlags::None; + auto unblock_flags = Thread::OpenFileDescriptionBlocker::BlockFlags::None; if (Thread::current()->block<Thread::ConnectBlocker>({}, description, unblock_flags).was_interrupted()) { set_connect_side_role(Role::None); return set_so_error(EINTR); @@ -220,7 +220,7 @@ KResult LocalSocket::connect(FileDescription& description, Userspace<const socka dbgln_if(LOCAL_SOCKET_DEBUG, "LocalSocket({}) connect({}) status is {}", this, *m_path, to_string(setup_state())); - if (!has_flag(unblock_flags, Thread::FileDescriptionBlocker::BlockFlags::Connect)) { + if (!has_flag(unblock_flags, Thread::OpenFileDescriptionBlocker::BlockFlags::Connect)) { set_connect_side_role(Role::None); return set_so_error(ECONNREFUSED); } @@ -243,7 +243,7 @@ KResult LocalSocket::listen(size_t backlog) return KSuccess; } -KResult LocalSocket::attach(FileDescription& description) +KResult LocalSocket::attach(OpenFileDescription& description) { VERIFY(!m_accept_side_fd_open); if (m_connect_side_role == Role::None) { @@ -258,7 +258,7 @@ KResult LocalSocket::attach(FileDescription& description) return KSuccess; } -void LocalSocket::detach(FileDescription& description) +void LocalSocket::detach(OpenFileDescription& description) { if (m_connect_side_fd == &description) { m_connect_side_fd = nullptr; @@ -270,7 +270,7 @@ void LocalSocket::detach(FileDescription& description) evaluate_block_conditions(); } -bool LocalSocket::can_read(const FileDescription& description, size_t) const +bool LocalSocket::can_read(const OpenFileDescription& description, size_t) const { auto role = this->role(description); if (role == Role::Listener) @@ -282,7 +282,7 @@ bool LocalSocket::can_read(const FileDescription& description, size_t) const return false; } -bool LocalSocket::has_attached_peer(const FileDescription& description) const +bool LocalSocket::has_attached_peer(const OpenFileDescription& description) const { auto role = this->role(description); if (role == Role::Accepted) @@ -292,7 +292,7 @@ bool LocalSocket::has_attached_peer(const FileDescription& description) const return false; } -bool LocalSocket::can_write(const FileDescription& description, size_t) const +bool LocalSocket::can_write(const OpenFileDescription& description, size_t) const { auto role = this->role(description); if (role == Role::Accepted) @@ -302,7 +302,7 @@ bool LocalSocket::can_write(const FileDescription& description, size_t) const return false; } -KResultOr<size_t> LocalSocket::sendto(FileDescription& description, const UserOrKernelBuffer& data, size_t data_size, int, Userspace<const sockaddr*>, socklen_t) +KResultOr<size_t> LocalSocket::sendto(OpenFileDescription& description, const UserOrKernelBuffer& data, size_t data_size, int, Userspace<const sockaddr*>, socklen_t) { if (!has_attached_peer(description)) return set_so_error(EPIPE); @@ -315,7 +315,7 @@ KResultOr<size_t> LocalSocket::sendto(FileDescription& description, const UserOr return nwritten_or_error; } -DoubleBuffer* LocalSocket::receive_buffer_for(FileDescription& description) +DoubleBuffer* LocalSocket::receive_buffer_for(OpenFileDescription& description) { auto role = this->role(description); if (role == Role::Accepted) @@ -325,7 +325,7 @@ DoubleBuffer* LocalSocket::receive_buffer_for(FileDescription& description) return nullptr; } -DoubleBuffer* LocalSocket::send_buffer_for(FileDescription& description) +DoubleBuffer* LocalSocket::send_buffer_for(OpenFileDescription& description) { auto role = this->role(description); if (role == Role::Connected) @@ -335,7 +335,7 @@ DoubleBuffer* LocalSocket::send_buffer_for(FileDescription& description) return nullptr; } -KResultOr<size_t> LocalSocket::recvfrom(FileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_size, int, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) +KResultOr<size_t> LocalSocket::recvfrom(OpenFileDescription& description, UserOrKernelBuffer& buffer, size_t buffer_size, int, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) { auto* socket_buffer = receive_buffer_for(description); if (!socket_buffer) @@ -347,7 +347,7 @@ KResultOr<size_t> LocalSocket::recvfrom(FileDescription& description, UserOrKern return set_so_error(EAGAIN); } } else if (!can_read(description, 0)) { - auto unblock_flags = Thread::FileDescriptionBlocker::BlockFlags::None; + auto unblock_flags = Thread::OpenFileDescriptionBlocker::BlockFlags::None; if (Thread::current()->block<Thread::ReadBlocker>({}, description, unblock_flags).was_interrupted()) return set_so_error(EINTR); } @@ -367,7 +367,7 @@ StringView LocalSocket::socket_path() const return m_path->view(); } -String LocalSocket::absolute_path(const FileDescription& description) const +String LocalSocket::absolute_path(const OpenFileDescription& description) const { StringBuilder builder; builder.append("socket:"); @@ -393,7 +393,7 @@ String LocalSocket::absolute_path(const FileDescription& description) const return builder.to_string(); } -KResult LocalSocket::getsockopt(FileDescription& description, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size) +KResult LocalSocket::getsockopt(OpenFileDescription& description, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size) { if (level != SOL_SOCKET) return Socket::getsockopt(description, level, option, value, value_size); @@ -432,7 +432,7 @@ KResult LocalSocket::getsockopt(FileDescription& description, int level, int opt } } -KResult LocalSocket::ioctl(FileDescription& description, unsigned request, Userspace<void*> arg) +KResult LocalSocket::ioctl(OpenFileDescription& description, unsigned request, Userspace<void*> arg) { switch (request) { case FIONREAD: { @@ -444,7 +444,7 @@ KResult LocalSocket::ioctl(FileDescription& description, unsigned request, Users return ENOTTY; } -KResult LocalSocket::chmod(FileDescription&, mode_t mode) +KResult LocalSocket::chmod(OpenFileDescription&, mode_t mode) { if (m_file) return m_file->chmod(mode); @@ -453,7 +453,7 @@ KResult LocalSocket::chmod(FileDescription&, mode_t mode) return KSuccess; } -KResult LocalSocket::chown(FileDescription&, UserID uid, GroupID gid) +KResult LocalSocket::chown(OpenFileDescription&, UserID uid, GroupID gid) { if (m_file) return m_file->chown(uid, gid); @@ -467,7 +467,7 @@ KResult LocalSocket::chown(FileDescription&, UserID uid, GroupID gid) return KSuccess; } -NonnullRefPtrVector<FileDescription>& LocalSocket::recvfd_queue_for(const FileDescription& description) +NonnullRefPtrVector<OpenFileDescription>& LocalSocket::recvfd_queue_for(const OpenFileDescription& description) { auto role = this->role(description); if (role == Role::Connected) @@ -477,7 +477,7 @@ NonnullRefPtrVector<FileDescription>& LocalSocket::recvfd_queue_for(const FileDe VERIFY_NOT_REACHED(); } -NonnullRefPtrVector<FileDescription>& LocalSocket::sendfd_queue_for(const FileDescription& description) +NonnullRefPtrVector<OpenFileDescription>& LocalSocket::sendfd_queue_for(const OpenFileDescription& description) { auto role = this->role(description); if (role == Role::Connected) @@ -487,7 +487,7 @@ NonnullRefPtrVector<FileDescription>& LocalSocket::sendfd_queue_for(const FileDe VERIFY_NOT_REACHED(); } -KResult LocalSocket::sendfd(const FileDescription& socket_description, FileDescription& passing_description) +KResult LocalSocket::sendfd(const OpenFileDescription& socket_description, OpenFileDescription& passing_description) { MutexLocker locker(mutex()); auto role = this->role(socket_description); @@ -502,7 +502,7 @@ KResult LocalSocket::sendfd(const FileDescription& socket_description, FileDescr return KSuccess; } -KResultOr<NonnullRefPtr<FileDescription>> LocalSocket::recvfd(const FileDescription& socket_description) +KResultOr<NonnullRefPtr<OpenFileDescription>> LocalSocket::recvfd(const OpenFileDescription& socket_description) { MutexLocker locker(mutex()); auto role = this->role(socket_description); diff --git a/Kernel/Net/LocalSocket.h b/Kernel/Net/LocalSocket.h index ce4abdba5a..315fe8d959 100644 --- a/Kernel/Net/LocalSocket.h +++ b/Kernel/Net/LocalSocket.h @@ -12,11 +12,11 @@ namespace Kernel { -class FileDescription; +class OpenFileDescription; struct SocketPair { - NonnullRefPtr<FileDescription> description0; - NonnullRefPtr<FileDescription> description1; + NonnullRefPtr<OpenFileDescription> description0; + NonnullRefPtr<OpenFileDescription> description1; }; class LocalSocket final : public Socket { @@ -26,40 +26,40 @@ public: static KResultOr<SocketPair> try_create_connected_pair(int type); virtual ~LocalSocket() override; - KResult sendfd(const FileDescription& socket_description, FileDescription& passing_description); - KResultOr<NonnullRefPtr<FileDescription>> recvfd(const FileDescription& socket_description); + KResult sendfd(const OpenFileDescription& socket_description, OpenFileDescription& passing_description); + KResultOr<NonnullRefPtr<OpenFileDescription>> recvfd(const OpenFileDescription& socket_description); static void for_each(Function<void(const LocalSocket&)>); StringView socket_path() const; - String absolute_path(const FileDescription& description) const override; + String absolute_path(const OpenFileDescription& description) const override; // ^Socket virtual KResult bind(Userspace<const sockaddr*>, socklen_t) override; - virtual KResult connect(FileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock = ShouldBlock::Yes) override; + virtual KResult connect(OpenFileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock = ShouldBlock::Yes) override; virtual KResult listen(size_t) override; virtual void get_local_address(sockaddr*, socklen_t*) override; virtual void get_peer_address(sockaddr*, socklen_t*) override; - virtual KResult attach(FileDescription&) override; - virtual void detach(FileDescription&) override; - virtual bool can_read(const FileDescription&, size_t) const override; - virtual bool can_write(const FileDescription&, size_t) const override; - virtual KResultOr<size_t> sendto(FileDescription&, const UserOrKernelBuffer&, size_t, int, Userspace<const sockaddr*>, socklen_t) override; - virtual KResultOr<size_t> recvfrom(FileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) override; - virtual KResult getsockopt(FileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>) override; - virtual KResult ioctl(FileDescription&, unsigned request, Userspace<void*> arg) override; - virtual KResult chown(FileDescription&, UserID, GroupID) override; - virtual KResult chmod(FileDescription&, mode_t) override; + virtual KResult attach(OpenFileDescription&) override; + virtual void detach(OpenFileDescription&) override; + virtual bool can_read(const OpenFileDescription&, size_t) const override; + virtual bool can_write(const OpenFileDescription&, size_t) const override; + virtual KResultOr<size_t> sendto(OpenFileDescription&, const UserOrKernelBuffer&, size_t, int, Userspace<const sockaddr*>, socklen_t) override; + virtual KResultOr<size_t> recvfrom(OpenFileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) override; + virtual KResult getsockopt(OpenFileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>) override; + virtual KResult ioctl(OpenFileDescription&, unsigned request, Userspace<void*> arg) override; + virtual KResult chown(OpenFileDescription&, UserID, GroupID) override; + virtual KResult chmod(OpenFileDescription&, mode_t) override; private: explicit LocalSocket(int type, NonnullOwnPtr<DoubleBuffer> client_buffer, NonnullOwnPtr<DoubleBuffer> server_buffer); virtual StringView class_name() const override { return "LocalSocket"; } virtual bool is_local() const override { return true; } - bool has_attached_peer(const FileDescription&) const; - DoubleBuffer* receive_buffer_for(FileDescription&); - DoubleBuffer* send_buffer_for(FileDescription&); - NonnullRefPtrVector<FileDescription>& sendfd_queue_for(const FileDescription&); - NonnullRefPtrVector<FileDescription>& recvfd_queue_for(const FileDescription&); + bool has_attached_peer(const OpenFileDescription&) const; + DoubleBuffer* receive_buffer_for(OpenFileDescription&); + DoubleBuffer* send_buffer_for(OpenFileDescription&); + NonnullRefPtrVector<OpenFileDescription>& sendfd_queue_for(const OpenFileDescription&); + NonnullRefPtrVector<OpenFileDescription>& recvfd_queue_for(const OpenFileDescription&); void set_connect_side_role(Role connect_side_role, bool force_evaluate_block_conditions = false) { @@ -72,7 +72,7 @@ private: KResult try_set_path(StringView); // An open socket file on the filesystem. - RefPtr<FileDescription> m_file; + RefPtr<OpenFileDescription> m_file; UserID m_prebind_uid { 0 }; GroupID m_prebind_gid { 0 }; @@ -83,9 +83,9 @@ private: // an additional role for the connect side and differentiate // between them. Role m_connect_side_role { Role::None }; - FileDescription* m_connect_side_fd { nullptr }; + OpenFileDescription* m_connect_side_fd { nullptr }; - virtual Role role(const FileDescription& description) const override + virtual Role role(const OpenFileDescription& description) const override { if (m_connect_side_fd == &description) return m_connect_side_role; @@ -99,8 +99,8 @@ private: NonnullOwnPtr<DoubleBuffer> m_for_client; NonnullOwnPtr<DoubleBuffer> m_for_server; - NonnullRefPtrVector<FileDescription> m_fds_for_client; - NonnullRefPtrVector<FileDescription> m_fds_for_server; + NonnullRefPtrVector<OpenFileDescription> m_fds_for_client; + NonnullRefPtrVector<OpenFileDescription> m_fds_for_server; IntrusiveListNode<LocalSocket> m_list_node; diff --git a/Kernel/Net/Socket.cpp b/Kernel/Net/Socket.cpp index 24f1f535af..89124d7ebb 100644 --- a/Kernel/Net/Socket.cpp +++ b/Kernel/Net/Socket.cpp @@ -6,7 +6,7 @@ #include <AK/StringView.h> #include <Kernel/Debug.h> -#include <Kernel/FileSystem/FileDescription.h> +#include <Kernel/FileSystem/OpenFileDescription.h> #include <Kernel/Net/IPv4Socket.h> #include <Kernel/Net/LocalSocket.h> #include <Kernel/Net/NetworkingManagement.h> @@ -133,7 +133,7 @@ KResult Socket::setsockopt(int level, int option, Userspace<const void*> user_va } } -KResult Socket::getsockopt(FileDescription&, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size) +KResult Socket::getsockopt(OpenFileDescription&, int level, int option, Userspace<void*> value, Userspace<socklen_t*> value_size) { socklen_t size; TRY(copy_from_user(&size, value_size.unsafe_userspace_ptr())); @@ -199,7 +199,7 @@ KResult Socket::getsockopt(FileDescription&, int level, int option, Userspace<vo } } -KResultOr<size_t> Socket::read(FileDescription& description, u64, UserOrKernelBuffer& buffer, size_t size) +KResultOr<size_t> Socket::read(OpenFileDescription& description, u64, UserOrKernelBuffer& buffer, size_t size) { if (is_shut_down_for_reading()) return 0; @@ -207,7 +207,7 @@ KResultOr<size_t> Socket::read(FileDescription& description, u64, UserOrKernelBu return recvfrom(description, buffer, size, 0, {}, 0, t); } -KResultOr<size_t> Socket::write(FileDescription& description, u64, const UserOrKernelBuffer& data, size_t size) +KResultOr<size_t> Socket::write(OpenFileDescription& description, u64, const UserOrKernelBuffer& data, size_t size) { if (is_shut_down_for_writing()) return set_so_error(EPIPE); diff --git a/Kernel/Net/Socket.h b/Kernel/Net/Socket.h index a5008b10df..f93c14b466 100644 --- a/Kernel/Net/Socket.h +++ b/Kernel/Net/Socket.h @@ -23,7 +23,7 @@ enum class ShouldBlock { Yes = 1 }; -class FileDescription; +class OpenFileDescription; class Socket : public File { public: @@ -68,7 +68,7 @@ public: SetupState setup_state() const { return m_setup_state; } void set_setup_state(SetupState setup_state); - virtual Role role(const FileDescription&) const { return m_role; } + virtual Role role(const OpenFileDescription&) const { return m_role; } bool is_connected() const { return m_connected; } void set_connected(bool); @@ -79,17 +79,17 @@ public: KResult shutdown(int how); virtual KResult bind(Userspace<const sockaddr*>, socklen_t) = 0; - virtual KResult connect(FileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock) = 0; + virtual KResult connect(OpenFileDescription&, Userspace<const sockaddr*>, socklen_t, ShouldBlock) = 0; virtual KResult listen(size_t) = 0; virtual void get_local_address(sockaddr*, socklen_t*) = 0; virtual void get_peer_address(sockaddr*, socklen_t*) = 0; virtual bool is_local() const { return false; } virtual bool is_ipv4() const { return false; } - virtual KResultOr<size_t> sendto(FileDescription&, const UserOrKernelBuffer&, size_t, int flags, Userspace<const sockaddr*>, socklen_t) = 0; - virtual KResultOr<size_t> recvfrom(FileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) = 0; + virtual KResultOr<size_t> sendto(OpenFileDescription&, const UserOrKernelBuffer&, size_t, int flags, Userspace<const sockaddr*>, socklen_t) = 0; + virtual KResultOr<size_t> recvfrom(OpenFileDescription&, UserOrKernelBuffer&, size_t, int flags, Userspace<sockaddr*>, Userspace<socklen_t*>, Time&) = 0; virtual KResult setsockopt(int level, int option, Userspace<const void*>, socklen_t); - virtual KResult getsockopt(FileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>); + virtual KResult getsockopt(OpenFileDescription&, int level, int option, Userspace<void*>, Userspace<socklen_t*>); ProcessID origin_pid() const { return m_origin.pid; } UserID origin_uid() const { return m_origin.uid; } @@ -102,10 +102,10 @@ public: Mutex& mutex() { return m_mutex; } // ^File - virtual KResultOr<size_t> read(FileDescription&, u64, UserOrKernelBuffer&, size_t) override final; - virtual KResultOr<size_t> write(FileDescription&, u64, const UserOrKernelBuffer&, size_t) override final; + virtual KResultOr<size_t> read(OpenFileDescription&, u64, UserOrKernelBuffer&, size_t) override final; + virtual KResultOr<size_t> write(OpenFileDescription&, u64, const UserOrKernelBuffer&, size_t) override final; virtual KResult stat(::stat&) const override; - virtual String absolute_path(const FileDescription&) const override = 0; + virtual String absolute_path(const OpenFileDescription&) const override = 0; bool has_receive_timeout() const { return m_receive_timeout != Time::zero(); } const Time& receive_timeout() const { return m_receive_timeout; } diff --git a/Kernel/Net/TCPSocket.cpp b/Kernel/Net/TCPSocket.cpp index 06b01cbda9..a3b8dd7ac0 100644 --- a/Kernel/Net/TCPSocket.cpp +++ b/Kernel/Net/TCPSocket.cpp @@ -8,7 +8,7 @@ #include <AK/Time.h> #include <Kernel/Debug.h> #include <Kernel/Devices/RandomDevice.h> -#include <Kernel/FileSystem/FileDescription.h> +#include <Kernel/FileSystem/OpenFileDescription.h> #include <Kernel/Locking/MutexProtected.h> #include <Kernel/Net/EthernetFrameHeader.h> #include <Kernel/Net/IPv4.h> @@ -394,7 +394,7 @@ KResult TCPSocket::protocol_listen(bool did_allocate_port) return KSuccess; } -KResult TCPSocket::protocol_connect(FileDescription& description, ShouldBlock should_block) +KResult TCPSocket::protocol_connect(OpenFileDescription& description, ShouldBlock should_block) { MutexLocker locker(mutex()); @@ -597,7 +597,7 @@ void TCPSocket::retransmit_packets() }); } -bool TCPSocket::can_write(const FileDescription& file_description, size_t size) const +bool TCPSocket::can_write(const OpenFileDescription& file_description, size_t size) const { if (!IPv4Socket::can_write(file_description, size)) return false; diff --git a/Kernel/Net/TCPSocket.h b/Kernel/Net/TCPSocket.h index 7554107371..25b54ff5e4 100644 --- a/Kernel/Net/TCPSocket.h +++ b/Kernel/Net/TCPSocket.h @@ -157,7 +157,7 @@ public: virtual KResult close() override; - virtual bool can_write(const FileDescription&, size_t) const override; + virtual bool can_write(const OpenFileDescription&, size_t) const override; static NetworkOrdered<u16> compute_tcp_checksum(IPv4Address const& source, IPv4Address const& destination, TCPPacket const&, u16 payload_size); @@ -172,7 +172,7 @@ private: virtual KResultOr<size_t> protocol_receive(ReadonlyBytes raw_ipv4_packet, UserOrKernelBuffer& buffer, size_t buffer_size, int flags) override; virtual KResultOr<size_t> protocol_send(const UserOrKernelBuffer&, size_t) override; - virtual KResult protocol_connect(FileDescription&, ShouldBlock) override; + virtual KResult protocol_connect(OpenFileDescription&, ShouldBlock) override; virtual KResultOr<u16> protocol_allocate_local_port() override; virtual bool protocol_is_disconnected() const override; virtual KResult protocol_bind() override; diff --git a/Kernel/Net/UDPSocket.cpp b/Kernel/Net/UDPSocket.cpp index 477b7df6d8..8d2bd44db0 100644 --- a/Kernel/Net/UDPSocket.cpp +++ b/Kernel/Net/UDPSocket.cpp @@ -95,7 +95,7 @@ KResultOr<size_t> UDPSocket::protocol_send(const UserOrKernelBuffer& data, size_ return data_length; } -KResult UDPSocket::protocol_connect(FileDescription&, ShouldBlock) +KResult UDPSocket::protocol_connect(OpenFileDescription&, ShouldBlock) { set_role(Role::Connected); set_connected(true); diff --git a/Kernel/Net/UDPSocket.h b/Kernel/Net/UDPSocket.h index bf1c457d43..07a93c2777 100644 --- a/Kernel/Net/UDPSocket.h +++ b/Kernel/Net/UDPSocket.h @@ -27,7 +27,7 @@ private: virtual KResultOr<size_t> protocol_receive(ReadonlyBytes raw_ipv4_packet, UserOrKernelBuffer& buffer, size_t buffer_size, int flags) override; virtual KResultOr<size_t> protocol_send(const UserOrKernelBuffer&, size_t) override; - virtual KResult protocol_connect(FileDescription&, ShouldBlock) override; + virtual KResult protocol_connect(OpenFileDescription&, ShouldBlock) override; virtual KResultOr<u16> protocol_allocate_local_port() override; virtual KResult protocol_bind() override; }; |