summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar ReinUsesLisp2020-07-11 22:26:24 -0300
committerGravatar ReinUsesLisp2020-07-28 01:47:03 -0300
commit22263ccaa4f8f37c5fd76a2c3729fd46a1cd9631 (patch)
tree0a0998ece6dcc9cb171f3decde94fcc166f285cf /src
parentservices/nifm: Implement GetCurrentIpAddress (diff)
downloadyuzu-22263ccaa4f8f37c5fd76a2c3729fd46a1cd9631.tar.gz
yuzu-22263ccaa4f8f37c5fd76a2c3729fd46a1cd9631.tar.xz
yuzu-22263ccaa4f8f37c5fd76a2c3729fd46a1cd9631.zip
service/sockets: Add enumerations and structures
Add guest enumerations and structures used in socket services
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/sockets/bsd.h2
-rw-r--r--src/core/hle/service/sockets/sockets.h79
2 files changed, 81 insertions, 0 deletions
diff --git a/src/core/hle/service/sockets/bsd.h b/src/core/hle/service/sockets/bsd.h
index 3098e3baf..7e1a64015 100644
--- a/src/core/hle/service/sockets/bsd.h
+++ b/src/core/hle/service/sockets/bsd.h
@@ -4,8 +4,10 @@
4 4
5#pragma once 5#pragma once
6 6
7#include "common/common_types.h"
7#include "core/hle/kernel/hle_ipc.h" 8#include "core/hle/kernel/hle_ipc.h"
8#include "core/hle/service/service.h" 9#include "core/hle/service/service.h"
10#include "core/hle/service/sockets/sockets.h"
9 11
10namespace Service::Sockets { 12namespace Service::Sockets {
11 13
diff --git a/src/core/hle/service/sockets/sockets.h b/src/core/hle/service/sockets/sockets.h
index ca8a6a7e0..55b110937 100644
--- a/src/core/hle/service/sockets/sockets.h
+++ b/src/core/hle/service/sockets/sockets.h
@@ -4,10 +4,89 @@
4 4
5#pragma once 5#pragma once
6 6
7#include "common/common_types.h"
7#include "core/hle/service/service.h" 8#include "core/hle/service/service.h"
8 9
9namespace Service::Sockets { 10namespace Service::Sockets {
10 11
12enum class Errno : u32 {
13 SUCCESS = 0,
14 BADF = 9,
15 AGAIN = 11,
16 INVAL = 22,
17 MFILE = 24,
18 NOTCONN = 107,
19};
20
21enum class Domain : u32 {
22 INET = 2,
23};
24
25enum class Type : u32 {
26 STREAM = 1,
27 DGRAM = 2,
28 RAW = 3,
29 SEQPACKET = 5,
30};
31
32enum class Protocol : u32 {
33 UNSPECIFIED = 0,
34 ICMP = 1,
35 TCP = 6,
36 UDP = 17,
37};
38
39enum class OptName : u32 {
40 REUSEADDR = 0x4,
41 BROADCAST = 0x20,
42 LINGER = 0x80,
43 SNDBUF = 0x1001,
44 RCVBUF = 0x1002,
45 SNDTIMEO = 0x1005,
46 RCVTIMEO = 0x1006,
47};
48
49enum class ShutdownHow : s32 {
50 RD = 0,
51 WR = 1,
52 RDWR = 2,
53};
54
55enum class FcntlCmd : s32 {
56 GETFL = 3,
57 SETFL = 4,
58};
59
60struct SockAddrIn {
61 u8 len;
62 u8 family;
63 u16 portno;
64 std::array<u8, 4> ip;
65 std::array<u8, 8> zeroes;
66};
67
68struct PollFD {
69 s32 fd;
70 u16 events;
71 u16 revents;
72};
73
74struct Linger {
75 u32 onoff;
76 u32 linger;
77};
78
79constexpr u16 POLL_IN = 0x01;
80constexpr u16 POLL_PRI = 0x02;
81constexpr u16 POLL_OUT = 0x04;
82constexpr u16 POLL_ERR = 0x08;
83constexpr u16 POLL_HUP = 0x10;
84constexpr u16 POLL_NVAL = 0x20;
85
86constexpr u32 FLAG_MSG_DONTWAIT = 0x80;
87
88constexpr u32 FLAG_O_NONBLOCK = 0x800;
89
11/// Registers all Sockets services with the specified service manager. 90/// Registers all Sockets services with the specified service manager.
12void InstallInterfaces(SM::ServiceManager& service_manager); 91void InstallInterfaces(SM::ServiceManager& service_manager);
13 92