92ea1c32d6
This function is also supposed to check its given policy type with the permission of the service itself. This implements the necessary machinery to unstub these functions. Policy::User seems to just be basic access (which is probably why vi:u is restricted to that policy), while the other policy seems to be for extended abilities regarding which displays can be managed and queried, so this is assumed to be for a background compositor (which I've named, appropriately, Policy::Compositor).
28 lines
830 B
C++
28 lines
830 B
C++
// Copyright 2018 yuzu emulator team
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#include "common/logging/log.h"
|
|
#include "core/hle/service/vi/vi.h"
|
|
#include "core/hle/service/vi/vi_m.h"
|
|
|
|
namespace Service::VI {
|
|
|
|
VI_M::VI_M(std::shared_ptr<NVFlinger::NVFlinger> nv_flinger)
|
|
: ServiceFramework{"vi:m"}, nv_flinger{std::move(nv_flinger)} {
|
|
static const FunctionInfo functions[] = {
|
|
{2, &VI_M::GetDisplayService, "GetDisplayService"},
|
|
{3, nullptr, "GetDisplayServiceWithProxyNameExchange"},
|
|
};
|
|
RegisterHandlers(functions);
|
|
}
|
|
|
|
VI_M::~VI_M() = default;
|
|
|
|
void VI_M::GetDisplayService(Kernel::HLERequestContext& ctx) {
|
|
LOG_DEBUG(Service_VI, "called");
|
|
|
|
detail::GetDisplayServiceImpl(ctx, nv_flinger, Permission::Manager);
|
|
}
|
|
|
|
} // namespace Service::VI
|