service/sockets: Add enumerations and structures

Add guest enumerations and structures used in socket services
This commit is contained in:
ReinUsesLisp 2020-07-11 22:26:24 -03:00
parent ef8acc9c3d
commit 22263ccaa4
2 changed files with 81 additions and 0 deletions

View File

@ -4,8 +4,10 @@
#pragma once
#include "common/common_types.h"
#include "core/hle/kernel/hle_ipc.h"
#include "core/hle/service/service.h"
#include "core/hle/service/sockets/sockets.h"
namespace Service::Sockets {

View File

@ -4,10 +4,89 @@
#pragma once
#include "common/common_types.h"
#include "core/hle/service/service.h"
namespace Service::Sockets {
enum class Errno : u32 {
SUCCESS = 0,
BADF = 9,
AGAIN = 11,
INVAL = 22,
MFILE = 24,
NOTCONN = 107,
};
enum class Domain : u32 {
INET = 2,
};
enum class Type : u32 {
STREAM = 1,
DGRAM = 2,
RAW = 3,
SEQPACKET = 5,
};
enum class Protocol : u32 {
UNSPECIFIED = 0,
ICMP = 1,
TCP = 6,
UDP = 17,
};
enum class OptName : u32 {
REUSEADDR = 0x4,
BROADCAST = 0x20,
LINGER = 0x80,
SNDBUF = 0x1001,
RCVBUF = 0x1002,
SNDTIMEO = 0x1005,
RCVTIMEO = 0x1006,
};
enum class ShutdownHow : s32 {
RD = 0,
WR = 1,
RDWR = 2,
};
enum class FcntlCmd : s32 {
GETFL = 3,
SETFL = 4,
};
struct SockAddrIn {
u8 len;
u8 family;
u16 portno;
std::array<u8, 4> ip;
std::array<u8, 8> zeroes;
};
struct PollFD {
s32 fd;
u16 events;
u16 revents;
};
struct Linger {
u32 onoff;
u32 linger;
};
constexpr u16 POLL_IN = 0x01;
constexpr u16 POLL_PRI = 0x02;
constexpr u16 POLL_OUT = 0x04;
constexpr u16 POLL_ERR = 0x08;
constexpr u16 POLL_HUP = 0x10;
constexpr u16 POLL_NVAL = 0x20;
constexpr u32 FLAG_MSG_DONTWAIT = 0x80;
constexpr u32 FLAG_O_NONBLOCK = 0x800;
/// Registers all Sockets services with the specified service manager.
void InstallInterfaces(SM::ServiceManager& service_manager);