summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/sockets/bsd.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/sockets/bsd.h87
1 files changed, 44 insertions, 43 deletions
diff --git a/src/core/hle/service/sockets/bsd.h b/src/core/hle/service/sockets/bsd.h
index 81e855e0f..30ae9c140 100644
--- a/src/core/hle/service/sockets/bsd.h
+++ b/src/core/hle/service/sockets/bsd.h
@@ -4,6 +4,7 @@
#pragma once
#include <memory>
+#include <span>
#include <vector>
#include "common/common_types.h"
@@ -40,11 +41,11 @@ private:
struct PollWork {
void Execute(BSD* bsd);
- void Response(Kernel::HLERequestContext& ctx);
+ void Response(HLERequestContext& ctx);
s32 nfds;
s32 timeout;
- std::vector<u8> read_buffer;
+ std::span<const u8> read_buffer;
std::vector<u8> write_buffer;
s32 ret{};
Errno bsd_errno{};
@@ -52,7 +53,7 @@ private:
struct AcceptWork {
void Execute(BSD* bsd);
- void Response(Kernel::HLERequestContext& ctx);
+ void Response(HLERequestContext& ctx);
s32 fd;
std::vector<u8> write_buffer;
@@ -62,16 +63,16 @@ private:
struct ConnectWork {
void Execute(BSD* bsd);
- void Response(Kernel::HLERequestContext& ctx);
+ void Response(HLERequestContext& ctx);
s32 fd;
- std::vector<u8> addr;
+ std::span<const u8> addr;
Errno bsd_errno{};
};
struct RecvWork {
void Execute(BSD* bsd);
- void Response(Kernel::HLERequestContext& ctx);
+ void Response(HLERequestContext& ctx);
s32 fd;
u32 flags;
@@ -82,7 +83,7 @@ private:
struct RecvFromWork {
void Execute(BSD* bsd);
- void Response(Kernel::HLERequestContext& ctx);
+ void Response(HLERequestContext& ctx);
s32 fd;
u32 flags;
@@ -94,60 +95,60 @@ private:
struct SendWork {
void Execute(BSD* bsd);
- void Response(Kernel::HLERequestContext& ctx);
+ void Response(HLERequestContext& ctx);
s32 fd;
u32 flags;
- std::vector<u8> message;
+ std::span<const u8> message;
s32 ret{};
Errno bsd_errno{};
};
struct SendToWork {
void Execute(BSD* bsd);
- void Response(Kernel::HLERequestContext& ctx);
+ void Response(HLERequestContext& ctx);
s32 fd;
u32 flags;
- std::vector<u8> message;
- std::vector<u8> addr;
+ std::span<const u8> message;
+ std::span<const u8> addr;
s32 ret{};
Errno bsd_errno{};
};
- void RegisterClient(Kernel::HLERequestContext& ctx);
- void StartMonitoring(Kernel::HLERequestContext& ctx);
- void Socket(Kernel::HLERequestContext& ctx);
- void Select(Kernel::HLERequestContext& ctx);
- void Poll(Kernel::HLERequestContext& ctx);
- void Accept(Kernel::HLERequestContext& ctx);
- void Bind(Kernel::HLERequestContext& ctx);
- void Connect(Kernel::HLERequestContext& ctx);
- void GetPeerName(Kernel::HLERequestContext& ctx);
- void GetSockName(Kernel::HLERequestContext& ctx);
- void GetSockOpt(Kernel::HLERequestContext& ctx);
- void Listen(Kernel::HLERequestContext& ctx);
- void Fcntl(Kernel::HLERequestContext& ctx);
- void SetSockOpt(Kernel::HLERequestContext& ctx);
- void Shutdown(Kernel::HLERequestContext& ctx);
- void Recv(Kernel::HLERequestContext& ctx);
- void RecvFrom(Kernel::HLERequestContext& ctx);
- void Send(Kernel::HLERequestContext& ctx);
- void SendTo(Kernel::HLERequestContext& ctx);
- void Write(Kernel::HLERequestContext& ctx);
- void Read(Kernel::HLERequestContext& ctx);
- void Close(Kernel::HLERequestContext& ctx);
- void EventFd(Kernel::HLERequestContext& ctx);
+ void RegisterClient(HLERequestContext& ctx);
+ void StartMonitoring(HLERequestContext& ctx);
+ void Socket(HLERequestContext& ctx);
+ void Select(HLERequestContext& ctx);
+ void Poll(HLERequestContext& ctx);
+ void Accept(HLERequestContext& ctx);
+ void Bind(HLERequestContext& ctx);
+ void Connect(HLERequestContext& ctx);
+ void GetPeerName(HLERequestContext& ctx);
+ void GetSockName(HLERequestContext& ctx);
+ void GetSockOpt(HLERequestContext& ctx);
+ void Listen(HLERequestContext& ctx);
+ void Fcntl(HLERequestContext& ctx);
+ void SetSockOpt(HLERequestContext& ctx);
+ void Shutdown(HLERequestContext& ctx);
+ void Recv(HLERequestContext& ctx);
+ void RecvFrom(HLERequestContext& ctx);
+ void Send(HLERequestContext& ctx);
+ void SendTo(HLERequestContext& ctx);
+ void Write(HLERequestContext& ctx);
+ void Read(HLERequestContext& ctx);
+ void Close(HLERequestContext& ctx);
+ void EventFd(HLERequestContext& ctx);
template <typename Work>
- void ExecuteWork(Kernel::HLERequestContext& ctx, Work work);
+ void ExecuteWork(HLERequestContext& ctx, Work work);
std::pair<s32, Errno> SocketImpl(Domain domain, Type type, Protocol protocol);
- std::pair<s32, Errno> PollImpl(std::vector<u8>& write_buffer, std::vector<u8> read_buffer,
+ std::pair<s32, Errno> PollImpl(std::vector<u8>& write_buffer, std::span<const u8> read_buffer,
s32 nfds, s32 timeout);
std::pair<s32, Errno> AcceptImpl(s32 fd, std::vector<u8>& write_buffer);
- Errno BindImpl(s32 fd, const std::vector<u8>& addr);
- Errno ConnectImpl(s32 fd, const std::vector<u8>& addr);
+ Errno BindImpl(s32 fd, std::span<const u8> addr);
+ Errno ConnectImpl(s32 fd, std::span<const u8> addr);
Errno GetPeerNameImpl(s32 fd, std::vector<u8>& write_buffer);
Errno GetSockNameImpl(s32 fd, std::vector<u8>& write_buffer);
Errno ListenImpl(s32 fd, s32 backlog);
@@ -157,15 +158,15 @@ private:
std::pair<s32, Errno> RecvImpl(s32 fd, u32 flags, std::vector<u8>& message);
std::pair<s32, Errno> RecvFromImpl(s32 fd, u32 flags, std::vector<u8>& message,
std::vector<u8>& addr);
- std::pair<s32, Errno> SendImpl(s32 fd, u32 flags, const std::vector<u8>& message);
- std::pair<s32, Errno> SendToImpl(s32 fd, u32 flags, const std::vector<u8>& message,
- const std::vector<u8>& addr);
+ std::pair<s32, Errno> SendImpl(s32 fd, u32 flags, std::span<const u8> message);
+ std::pair<s32, Errno> SendToImpl(s32 fd, u32 flags, std::span<const u8> message,
+ std::span<const u8> addr);
Errno CloseImpl(s32 fd);
s32 FindFreeFileDescriptorHandle() noexcept;
bool IsFileDescriptorValid(s32 fd) const noexcept;
- void BuildErrnoResponse(Kernel::HLERequestContext& ctx, Errno bsd_errno) const noexcept;
+ void BuildErrnoResponse(HLERequestContext& ctx, Errno bsd_errno) const noexcept;
std::array<std::optional<FileDescriptor>, MAX_FD> file_descriptors;