Compare commits

...

23 Commits

Author SHA1 Message Date
Frederic Meyer
87b864b1d8 run clang-format (2) 2018-01-18 18:02:34 +01:00
Frederic Meyer
3c3e1bf14f Merge branch 'bsd' of https://github.com/flerovii/yuzu into bsd 2018-01-18 14:58:45 +01:00
Frederic Meyer
ae0e9adbc6 run clang-format 2018-01-18 14:56:53 +01:00
Frederic Meyer
1cec0f278b sockets: respect alphabetical order at service installation 2018-01-18 14:56:53 +01:00
Frederic Meyer
6f94ff2ae3 made requested changes 2018-01-18 14:56:45 +01:00
Frederic Meyer
de7ad6cfa1 bsd: stubbed SendTo() 2018-01-18 14:55:57 +01:00
Frederic Meyer
b00a35478a bsd: stubbed Connect() 2018-01-18 14:55:57 +01:00
Frederic Meyer
80622bf7ea bsd: fix format specifiers 2018-01-18 14:55:57 +01:00
Frederic Meyer
e924e6a9ea bsd: fix some wrong assumptions about IPC 2018-01-18 14:55:57 +01:00
Frederic Meyer
6ff0fd44f5 bsd: attempt to get past socket() 2018-01-18 14:55:57 +01:00
Frederic Meyer
0b1d15b126 bsd: stubbed RegisterClient 2018-01-18 14:55:57 +01:00
Frederic Meyer
747fb8a527 bsd: start stubbing bsd:u and sfdnsres 2018-01-18 14:55:28 +01:00
flerovium^-^
9964dcedc7 Merge branch 'master' into bsd 2018-01-18 14:24:11 +01:00
Frederic Meyer
50fe451a3b run clang-format 2018-01-18 14:07:02 +01:00
Frederic Meyer
62dda42e19 sockets: respect alphabetical order at service installation 2018-01-18 00:24:03 +01:00
Frederic Meyer
0362d3fe06 made requested changes 2018-01-17 23:40:21 +01:00
Frederic Meyer
f83d132087 bsd: stubbed SendTo() 2018-01-17 23:17:24 +01:00
Frederic Meyer
ca23001504 bsd: stubbed Connect() 2018-01-17 23:09:09 +01:00
Frederic Meyer
f6f8169364 bsd: fix format specifiers 2018-01-17 22:28:53 +01:00
Frederic Meyer
a776640c1a bsd: fix some wrong assumptions about IPC 2018-01-17 22:25:44 +01:00
Frederic Meyer
8bb88a135b bsd: attempt to get past socket() 2018-01-17 22:03:20 +01:00
Frederic Meyer
35bdde1d34 bsd: stubbed RegisterClient 2018-01-17 21:30:31 +01:00
Frederic Meyer
615b39aa0e bsd: start stubbing bsd:u and sfdnsres 2018-01-17 21:09:36 +01:00
7 changed files with 159 additions and 0 deletions

View File

@@ -128,6 +128,11 @@ add_library(core STATIC
hle/service/sm/controller.h
hle/service/sm/sm.cpp
hle/service/sm/sm.h
hle/service/sockets/bsd_u.cpp
hle/service/sockets/bsd_u.h
hle/service/sockets/sfdnsres.h
hle/service/sockets/sockets.cpp
hle/service/sockets/sockets.h
hle/service/time/time.cpp
hle/service/time/time.h
hle/service/vi/vi.cpp

View File

@@ -26,6 +26,7 @@
#include "core/hle/service/service.h"
#include "core/hle/service/sm/controller.h"
#include "core/hle/service/sm/sm.h"
#include "core/hle/service/sockets/sockets.h"
#include "core/hle/service/time/time.h"
#include "core/hle/service/vi/vi.h"
@@ -174,6 +175,7 @@ void Init() {
LM::InstallInterfaces(*SM::g_service_manager);
Nvidia::InstallInterfaces(*SM::g_service_manager);
PCTL::InstallInterfaces(*SM::g_service_manager);
Sockets::InstallInterfaces(*SM::g_service_manager);
Time::InstallInterfaces(*SM::g_service_manager);
VI::InstallInterfaces(*SM::g_service_manager);

View File

@@ -0,0 +1,67 @@
// Copyright 2018 yuzu emulator team
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#include "core/hle/ipc_helpers.h"
#include "core/hle/service/sockets/bsd_u.h"
namespace Service {
namespace Sockets {
void BSD_U::RegisterClient(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service, "(STUBBED) called");
IPC::RequestBuilder rb{ctx, 3};
rb.Push(RESULT_SUCCESS);
rb.Push<u32>(0); // bsd errno
}
void BSD_U::Socket(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp{ctx};
u32 domain = rp.Pop<u32>();
u32 type = rp.Pop<u32>();
u32 protocol = rp.Pop<u32>();
LOG_WARNING(Service, "(STUBBED) called domain=%u type=%u protocol=%u", domain, type, protocol);
u32 fd = next_fd++;
IPC::RequestBuilder rb{ctx, 4};
rb.Push(RESULT_SUCCESS);
rb.Push<u32>(fd);
rb.Push<u32>(0); // bsd errno
}
void BSD_U::Connect(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service, "(STUBBED) called");
IPC::RequestBuilder rb{ctx, 4};
rb.Push(RESULT_SUCCESS);
rb.Push<u32>(0); // ret
rb.Push<u32>(0); // bsd errno
}
void BSD_U::SendTo(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service, "(STUBBED) called");
IPC::RequestBuilder rb{ctx, 4};
rb.Push(RESULT_SUCCESS);
rb.Push<u32>(0); // ret
rb.Push<u32>(0); // bsd errno
}
BSD_U::BSD_U() : ServiceFramework("bsd:u") {
static const FunctionInfo functions[] = {{0, &BSD_U::RegisterClient, "RegisterClient"},
{2, &BSD_U::Socket, "Socket"},
{11, &BSD_U::SendTo, "SendTo"},
{14, &BSD_U::Connect, "Connect"}};
RegisterHandlers(functions);
}
} // namespace Sockets
} // namespace Service

View File

@@ -0,0 +1,29 @@
// Copyright 2018 yuzu emulator team
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
#include "core/hle/kernel/hle_ipc.h"
#include "core/hle/service/service.h"
namespace Service {
namespace Sockets {
class BSD_U final : public ServiceFramework<BSD_U> {
public:
BSD_U();
~BSD_U() = default;
private:
void RegisterClient(Kernel::HLERequestContext& ctx);
void Socket(Kernel::HLERequestContext& ctx);
void Connect(Kernel::HLERequestContext& ctx);
void SendTo(Kernel::HLERequestContext& ctx);
/// Id to use for the next open file descriptor.
u32 next_fd = 1;
};
} // namespace Sockets
} // namespace Service

View File

@@ -0,0 +1,22 @@
// Copyright 2018 yuzu emulator team
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
#include "core/hle/kernel/hle_ipc.h"
#include "core/hle/service/service.h"
namespace Service {
namespace Sockets {
class SFDNSRES final : public ServiceFramework<SFDNSRES> {
public:
SFDNSRES() : ServiceFramework("sfdnsres") {}
~SFDNSRES() = default;
private:
};
} // namespace Sockets
} // namespace Service

View File

@@ -0,0 +1,18 @@
// Copyright 2018 yuzu emulator team
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#include "core/hle/service/sockets/bsd_u.h"
#include "core/hle/service/sockets/sfdnsres.h"
#include "core/hle/service/sockets/sockets.h"
namespace Service {
namespace Sockets {
void InstallInterfaces(SM::ServiceManager& service_manager) {
std::make_shared<BSD_U>()->InstallAsService(service_manager);
std::make_shared<SFDNSRES>()->InstallAsService(service_manager);
}
} // namespace Sockets
} // namespace Service

View File

@@ -0,0 +1,16 @@
// Copyright 2018 yuzu emulator team
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
#include "core/hle/service/service.h"
namespace Service {
namespace Sockets {
/// Registers all Sockets services with the specified service manager.
void InstallInterfaces(SM::ServiceManager& service_manager);
} // namespace Sockets
} // namespace Service