Initial support for the new 12.x IPC system (#2182)
* Rename CommandAttribute as CommandHIpcAttribute to prepare for 12.x changes * Implement inital support for TIPC and adds SM command ids * *Ipc to *ipc * Missed a ref in last commit... * CommandAttributeTIpc to CommandAttributeTipc * Addresses comment and fixes some bugs around TIPC doesn't have any padding requirements as buffer C isn't a thing Fix for RegisterService inverting two argument only on TIPC
This commit is contained in:
parent
faa654dbaf
commit
0746b83edf
132 changed files with 1077 additions and 951 deletions
|
@ -23,28 +23,28 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
_inner.SetParent(this);
|
||||
}
|
||||
|
||||
[Command(0)]
|
||||
[CommandHipc(0)]
|
||||
// GetStandardUserSystemClock() -> object<nn::timesrv::detail::service::ISystemClock>
|
||||
public ResultCode GetStandardUserSystemClock(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetStandardUserSystemClock(context);
|
||||
}
|
||||
|
||||
[Command(1)]
|
||||
[CommandHipc(1)]
|
||||
// GetStandardNetworkSystemClock() -> object<nn::timesrv::detail::service::ISystemClock>
|
||||
public ResultCode GetStandardNetworkSystemClock(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetStandardNetworkSystemClock(context);
|
||||
}
|
||||
|
||||
[Command(2)]
|
||||
[CommandHipc(2)]
|
||||
// GetStandardSteadyClock() -> object<nn::timesrv::detail::service::ISteadyClock>
|
||||
public ResultCode GetStandardSteadyClock(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetStandardSteadyClock(context);
|
||||
}
|
||||
|
||||
[Command(3)]
|
||||
[CommandHipc(3)]
|
||||
// GetTimeZoneService() -> object<nn::timesrv::detail::service::ITimeZoneService>
|
||||
public ResultCode GetTimeZoneService(ServiceCtx context)
|
||||
{
|
||||
|
@ -53,28 +53,28 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(4)]
|
||||
[CommandHipc(4)]
|
||||
// GetStandardLocalSystemClock() -> object<nn::timesrv::detail::service::ISystemClock>
|
||||
public ResultCode GetStandardLocalSystemClock(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetStandardLocalSystemClock(context);
|
||||
}
|
||||
|
||||
[Command(5)] // 4.0.0+
|
||||
[CommandHipc(5)] // 4.0.0+
|
||||
// GetEphemeralNetworkSystemClock() -> object<nn::timesrv::detail::service::ISystemClock>
|
||||
public ResultCode GetEphemeralNetworkSystemClock(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetEphemeralNetworkSystemClock(context);
|
||||
}
|
||||
|
||||
[Command(20)] // 6.0.0+
|
||||
[CommandHipc(20)] // 6.0.0+
|
||||
// GetSharedMemoryNativeHandle() -> handle<copy>
|
||||
public ResultCode GetSharedMemoryNativeHandle(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetSharedMemoryNativeHandle(context);
|
||||
}
|
||||
|
||||
[Command(50)] // 4.0.0+
|
||||
[CommandHipc(50)] // 4.0.0+
|
||||
// SetStandardSteadyClockInternalOffset(nn::TimeSpanType internal_offset)
|
||||
public ResultCode SetStandardSteadyClockInternalOffset(ServiceCtx context)
|
||||
{
|
||||
|
@ -90,7 +90,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(51)] // 9.0.0+
|
||||
[CommandHipc(51)] // 9.0.0+
|
||||
// GetStandardSteadyClockRtcValue() -> u64
|
||||
public ResultCode GetStandardSteadyClockRtcValue(ServiceCtx context)
|
||||
{
|
||||
|
@ -104,21 +104,21 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(100)]
|
||||
[CommandHipc(100)]
|
||||
// IsStandardUserSystemClockAutomaticCorrectionEnabled() -> bool
|
||||
public ResultCode IsStandardUserSystemClockAutomaticCorrectionEnabled(ServiceCtx context)
|
||||
{
|
||||
return _inner.IsStandardUserSystemClockAutomaticCorrectionEnabled(context);
|
||||
}
|
||||
|
||||
[Command(101)]
|
||||
[CommandHipc(101)]
|
||||
// SetStandardUserSystemClockAutomaticCorrectionEnabled(b8)
|
||||
public ResultCode SetStandardUserSystemClockAutomaticCorrectionEnabled(ServiceCtx context)
|
||||
{
|
||||
return _inner.SetStandardUserSystemClockAutomaticCorrectionEnabled(context);
|
||||
}
|
||||
|
||||
[Command(102)] // 5.0.0+
|
||||
[CommandHipc(102)] // 5.0.0+
|
||||
// GetStandardUserSystemClockInitialYear() -> u32
|
||||
public ResultCode GetStandardUserSystemClockInitialYear(ServiceCtx context)
|
||||
{
|
||||
|
@ -132,49 +132,49 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(200)] // 3.0.0+
|
||||
[CommandHipc(200)] // 3.0.0+
|
||||
// IsStandardNetworkSystemClockAccuracySufficient() -> bool
|
||||
public ResultCode IsStandardNetworkSystemClockAccuracySufficient(ServiceCtx context)
|
||||
{
|
||||
return _inner.IsStandardNetworkSystemClockAccuracySufficient(context);
|
||||
}
|
||||
|
||||
[Command(201)] // 6.0.0+
|
||||
[CommandHipc(201)] // 6.0.0+
|
||||
// GetStandardUserSystemClockAutomaticCorrectionUpdatedTime() -> nn::time::SteadyClockTimePoint
|
||||
public ResultCode GetStandardUserSystemClockAutomaticCorrectionUpdatedTime(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetStandardUserSystemClockAutomaticCorrectionUpdatedTime(context);
|
||||
}
|
||||
|
||||
[Command(300)] // 4.0.0+
|
||||
[CommandHipc(300)] // 4.0.0+
|
||||
// CalculateMonotonicSystemClockBaseTimePoint(nn::time::SystemClockContext) -> s64
|
||||
public ResultCode CalculateMonotonicSystemClockBaseTimePoint(ServiceCtx context)
|
||||
{
|
||||
return _inner.CalculateMonotonicSystemClockBaseTimePoint(context);
|
||||
}
|
||||
|
||||
[Command(400)] // 4.0.0+
|
||||
[CommandHipc(400)] // 4.0.0+
|
||||
// GetClockSnapshot(u8) -> buffer<nn::time::sf::ClockSnapshot, 0x1a>
|
||||
public ResultCode GetClockSnapshot(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetClockSnapshot(context);
|
||||
}
|
||||
|
||||
[Command(401)] // 4.0.0+
|
||||
[CommandHipc(401)] // 4.0.0+
|
||||
// GetClockSnapshotFromSystemClockContext(u8, nn::time::SystemClockContext, nn::time::SystemClockContext) -> buffer<nn::time::sf::ClockSnapshot, 0x1a>
|
||||
public ResultCode GetClockSnapshotFromSystemClockContext(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetClockSnapshotFromSystemClockContext(context);
|
||||
}
|
||||
|
||||
[Command(500)] // 4.0.0+
|
||||
[CommandHipc(500)] // 4.0.0+
|
||||
// CalculateStandardUserSystemClockDifferenceByUser(buffer<nn::time::sf::ClockSnapshot, 0x19>, buffer<nn::time::sf::ClockSnapshot, 0x19>) -> nn::TimeSpanType
|
||||
public ResultCode CalculateStandardUserSystemClockDifferenceByUser(ServiceCtx context)
|
||||
{
|
||||
return _inner.CalculateStandardUserSystemClockDifferenceByUser(context);
|
||||
}
|
||||
|
||||
[Command(501)] // 4.0.0+
|
||||
[CommandHipc(501)] // 4.0.0+
|
||||
// CalculateSpanBetween(buffer<nn::time::sf::ClockSnapshot, 0x19>, buffer<nn::time::sf::ClockSnapshot, 0x19>) -> nn::TimeSpanType
|
||||
public ResultCode CalculateSpanBetween(ServiceCtx context)
|
||||
{
|
||||
|
|
|
@ -30,7 +30,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
_timeManager = manager;
|
||||
}
|
||||
|
||||
[Command(0)]
|
||||
[CommandHipc(0)]
|
||||
// GetStandardUserSystemClock() -> object<nn::timesrv::detail::service::ISystemClock>
|
||||
public ResultCode GetStandardUserSystemClock(ServiceCtx context)
|
||||
{
|
||||
|
@ -41,7 +41,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(1)]
|
||||
[CommandHipc(1)]
|
||||
// GetStandardNetworkSystemClock() -> object<nn::timesrv::detail::service::ISystemClock>
|
||||
public ResultCode GetStandardNetworkSystemClock(ServiceCtx context)
|
||||
{
|
||||
|
@ -52,7 +52,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(2)]
|
||||
[CommandHipc(2)]
|
||||
// GetStandardSteadyClock() -> object<nn::timesrv::detail::service::ISteadyClock>
|
||||
public ResultCode GetStandardSteadyClock(ServiceCtx context)
|
||||
{
|
||||
|
@ -63,7 +63,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(3)]
|
||||
[CommandHipc(3)]
|
||||
// GetTimeZoneService() -> object<nn::timesrv::detail::service::ITimeZoneService>
|
||||
public ResultCode GetTimeZoneService(ServiceCtx context)
|
||||
{
|
||||
|
@ -73,7 +73,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(4)]
|
||||
[CommandHipc(4)]
|
||||
// GetStandardLocalSystemClock() -> object<nn::timesrv::detail::service::ISystemClock>
|
||||
public ResultCode GetStandardLocalSystemClock(ServiceCtx context)
|
||||
{
|
||||
|
@ -84,7 +84,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(5)] // 4.0.0+
|
||||
[CommandHipc(5)] // 4.0.0+
|
||||
// GetEphemeralNetworkSystemClock() -> object<nn::timesrv::detail::service::ISystemClock>
|
||||
public ResultCode GetEphemeralNetworkSystemClock(ServiceCtx context)
|
||||
{
|
||||
|
@ -95,7 +95,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(20)] // 6.0.0+
|
||||
[CommandHipc(20)] // 6.0.0+
|
||||
// GetSharedMemoryNativeHandle() -> handle<copy>
|
||||
public ResultCode GetSharedMemoryNativeHandle(ServiceCtx context)
|
||||
{
|
||||
|
@ -112,7 +112,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(50)] // 4.0.0+
|
||||
[CommandHipc(50)] // 4.0.0+
|
||||
// SetStandardSteadyClockInternalOffset(nn::TimeSpanType internal_offset)
|
||||
public ResultCode SetStandardSteadyClockInternalOffset(ServiceCtx context)
|
||||
{
|
||||
|
@ -120,7 +120,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.NotImplemented;
|
||||
}
|
||||
|
||||
[Command(51)] // 9.0.0+
|
||||
[CommandHipc(51)] // 9.0.0+
|
||||
// GetStandardSteadyClockRtcValue() -> u64
|
||||
public ResultCode GetStandardSteadyClockRtcValue(ServiceCtx context)
|
||||
{
|
||||
|
@ -128,7 +128,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.NotImplemented;
|
||||
}
|
||||
|
||||
[Command(100)]
|
||||
[CommandHipc(100)]
|
||||
// IsStandardUserSystemClockAutomaticCorrectionEnabled() -> bool
|
||||
public ResultCode IsStandardUserSystemClockAutomaticCorrectionEnabled(ServiceCtx context)
|
||||
{
|
||||
|
@ -144,7 +144,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(101)]
|
||||
[CommandHipc(101)]
|
||||
// SetStandardUserSystemClockAutomaticCorrectionEnabled(b8)
|
||||
public ResultCode SetStandardUserSystemClockAutomaticCorrectionEnabled(ServiceCtx context)
|
||||
{
|
||||
|
@ -178,7 +178,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(102)] // 5.0.0+
|
||||
[CommandHipc(102)] // 5.0.0+
|
||||
// GetStandardUserSystemClockInitialYear() -> u32
|
||||
public ResultCode GetStandardUserSystemClockInitialYear(ServiceCtx context)
|
||||
{
|
||||
|
@ -186,7 +186,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.NotImplemented;
|
||||
}
|
||||
|
||||
[Command(200)] // 3.0.0+
|
||||
[CommandHipc(200)] // 3.0.0+
|
||||
// IsStandardNetworkSystemClockAccuracySufficient() -> bool
|
||||
public ResultCode IsStandardNetworkSystemClockAccuracySufficient(ServiceCtx context)
|
||||
{
|
||||
|
@ -195,7 +195,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(201)] // 6.0.0+
|
||||
[CommandHipc(201)] // 6.0.0+
|
||||
// GetStandardUserSystemClockAutomaticCorrectionUpdatedTime() -> nn::time::SteadyClockTimePoint
|
||||
public ResultCode GetStandardUserSystemClockAutomaticCorrectionUpdatedTime(ServiceCtx context)
|
||||
{
|
||||
|
@ -211,7 +211,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(300)] // 4.0.0+
|
||||
[CommandHipc(300)] // 4.0.0+
|
||||
// CalculateMonotonicSystemClockBaseTimePoint(nn::time::SystemClockContext) -> s64
|
||||
public ResultCode CalculateMonotonicSystemClockBaseTimePoint(ServiceCtx context)
|
||||
{
|
||||
|
@ -240,7 +240,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(400)] // 4.0.0+
|
||||
[CommandHipc(400)] // 4.0.0+
|
||||
// GetClockSnapshot(u8) -> buffer<nn::time::sf::ClockSnapshot, 0x1a>
|
||||
public ResultCode GetClockSnapshot(ServiceCtx context)
|
||||
{
|
||||
|
@ -268,7 +268,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(401)] // 4.0.0+
|
||||
[CommandHipc(401)] // 4.0.0+
|
||||
// GetClockSnapshotFromSystemClockContext(u8, nn::time::SystemClockContext, nn::time::SystemClockContext) -> buffer<nn::time::sf::ClockSnapshot, 0x1a>
|
||||
public ResultCode GetClockSnapshotFromSystemClockContext(ServiceCtx context)
|
||||
{
|
||||
|
@ -291,7 +291,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(500)] // 4.0.0+
|
||||
[CommandHipc(500)] // 4.0.0+
|
||||
// CalculateStandardUserSystemClockDifferenceByUser(buffer<nn::time::sf::ClockSnapshot, 0x19>, buffer<nn::time::sf::ClockSnapshot, 0x19>) -> nn::TimeSpanType
|
||||
public ResultCode CalculateStandardUserSystemClockDifferenceByUser(ServiceCtx context)
|
||||
{
|
||||
|
@ -309,7 +309,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(501)] // 4.0.0+
|
||||
[CommandHipc(501)] // 4.0.0+
|
||||
// CalculateSpanBetween(buffer<nn::time::sf::ClockSnapshot, 0x19>, buffer<nn::time::sf::ClockSnapshot, 0x19>) -> nn::TimeSpanType
|
||||
public ResultCode CalculateSpanBetween(ServiceCtx context)
|
||||
{
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
_automaticCorrectionEvent = 0;
|
||||
}
|
||||
|
||||
[Command(0)]
|
||||
[CommandHipc(0)]
|
||||
// GetUserStaticService() -> object<nn::timesrv::detail::service::IStaticService>
|
||||
public ResultCode GetUserStaticService(ServiceCtx context)
|
||||
{
|
||||
|
@ -31,7 +31,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(5)]
|
||||
[CommandHipc(5)]
|
||||
// GetAdminStaticService() -> object<nn::timesrv::detail::service::IStaticService>
|
||||
public ResultCode GetAdminStaticService(ServiceCtx context)
|
||||
{
|
||||
|
@ -40,7 +40,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(6)]
|
||||
[CommandHipc(6)]
|
||||
// GetRepairStaticService() -> object<nn::timesrv::detail::service::IStaticService>
|
||||
public ResultCode GetRepairStaticService(ServiceCtx context)
|
||||
{
|
||||
|
@ -49,7 +49,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(9)]
|
||||
[CommandHipc(9)]
|
||||
// GetManufactureStaticService() -> object<nn::timesrv::detail::service::IStaticService>
|
||||
public ResultCode GetManufactureStaticService(ServiceCtx context)
|
||||
{
|
||||
|
@ -58,7 +58,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(10)]
|
||||
[CommandHipc(10)]
|
||||
// SetupStandardSteadyClock(nn::util::Uuid clock_source_id, nn::TimeSpanType setup_value, nn::TimeSpanType internal_offset, nn::TimeSpanType test_offset, bool is_rtc_reset_detected)
|
||||
public ResultCode SetupStandardSteadyClock(ServiceCtx context)
|
||||
{
|
||||
|
@ -73,7 +73,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(11)]
|
||||
[CommandHipc(11)]
|
||||
// SetupStandardLocalSystemClock(nn::time::SystemClockContext context, nn::time::PosixTime posix_time)
|
||||
public ResultCode SetupStandardLocalSystemClock(ServiceCtx context)
|
||||
{
|
||||
|
@ -85,7 +85,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(12)]
|
||||
[CommandHipc(12)]
|
||||
// SetupStandardNetworkSystemClock(nn::time::SystemClockContext context, nn::TimeSpanType sufficient_accuracy)
|
||||
public ResultCode SetupStandardNetworkSystemClock(ServiceCtx context)
|
||||
{
|
||||
|
@ -97,7 +97,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(13)]
|
||||
[CommandHipc(13)]
|
||||
// SetupStandardUserSystemClock(bool automatic_correction_enabled, nn::time::SteadyClockTimePoint steady_clock_timepoint)
|
||||
public ResultCode SetupStandardUserSystemClock(ServiceCtx context)
|
||||
{
|
||||
|
@ -112,7 +112,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(14)]
|
||||
[CommandHipc(14)]
|
||||
// SetupTimeZoneManager(nn::time::LocationName location_name, nn::time::SteadyClockTimePoint timezone_update_timepoint, u32 total_location_name_count, nn::time::TimeZoneRuleVersion timezone_rule_version, buffer<nn::time::TimeZoneBinary, 0x21> timezone_binary)
|
||||
public ResultCode SetupTimeZoneManager(ServiceCtx context)
|
||||
{
|
||||
|
@ -135,7 +135,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(15)]
|
||||
[CommandHipc(15)]
|
||||
// SetupEphemeralNetworkSystemClock()
|
||||
public ResultCode SetupEphemeralNetworkSystemClock(ServiceCtx context)
|
||||
{
|
||||
|
@ -144,31 +144,31 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(50)]
|
||||
[CommandHipc(50)]
|
||||
// Unknown50() -> handle<copy>
|
||||
public ResultCode Unknown50(ServiceCtx context)
|
||||
{
|
||||
// TODO: figure out the usage of this event
|
||||
throw new ServiceNotImplementedException(this, context);
|
||||
throw new ServiceNotImplementedException(this, context, false);
|
||||
}
|
||||
|
||||
[Command(51)]
|
||||
[CommandHipc(51)]
|
||||
// Unknown51() -> handle<copy>
|
||||
public ResultCode Unknown51(ServiceCtx context)
|
||||
{
|
||||
// TODO: figure out the usage of this event
|
||||
throw new ServiceNotImplementedException(this, context);
|
||||
throw new ServiceNotImplementedException(this, context, false);
|
||||
}
|
||||
|
||||
[Command(52)]
|
||||
[CommandHipc(52)]
|
||||
// Unknown52() -> handle<copy>
|
||||
public ResultCode Unknown52(ServiceCtx context)
|
||||
{
|
||||
// TODO: figure out the usage of this event
|
||||
throw new ServiceNotImplementedException(this, context);
|
||||
throw new ServiceNotImplementedException(this, context, false);
|
||||
}
|
||||
|
||||
[Command(60)]
|
||||
[CommandHipc(60)]
|
||||
// GetStandardUserSystemClockAutomaticCorrectionEvent() -> handle<copy>
|
||||
public ResultCode GetStandardUserSystemClockAutomaticCorrectionEvent(ServiceCtx context)
|
||||
{
|
||||
|
@ -185,7 +185,7 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(100)]
|
||||
[CommandHipc(100)]
|
||||
// SetStandardSteadyClockRtcOffset(nn::TimeSpanType rtc_offset)
|
||||
public ResultCode SetStandardSteadyClockRtcOffset(ServiceCtx context)
|
||||
{
|
||||
|
@ -196,28 +196,28 @@ namespace Ryujinx.HLE.HOS.Services.Time
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(200)]
|
||||
[CommandHipc(200)]
|
||||
// GetAlarmRegistrationEvent() -> handle<copy>
|
||||
public ResultCode GetAlarmRegistrationEvent(ServiceCtx context)
|
||||
{
|
||||
// TODO
|
||||
throw new ServiceNotImplementedException(this, context);
|
||||
throw new ServiceNotImplementedException(this, context, false);
|
||||
}
|
||||
|
||||
[Command(201)]
|
||||
[CommandHipc(201)]
|
||||
// UpdateSteadyAlarms()
|
||||
public ResultCode UpdateSteadyAlarms(ServiceCtx context)
|
||||
{
|
||||
// TODO
|
||||
throw new ServiceNotImplementedException(this, context);
|
||||
throw new ServiceNotImplementedException(this, context, false);
|
||||
}
|
||||
|
||||
[Command(202)]
|
||||
[CommandHipc(202)]
|
||||
// TryGetNextSteadyClockAlarmSnapshot() -> (bool, nn::time::SteadyClockAlarmSnapshot)
|
||||
public ResultCode TryGetNextSteadyClockAlarmSnapshot(ServiceCtx context)
|
||||
{
|
||||
// TODO
|
||||
throw new ServiceNotImplementedException(this, context);
|
||||
throw new ServiceNotImplementedException(this, context, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
_bypassUninitializedClock = bypassUninitializedClock;
|
||||
}
|
||||
|
||||
[Command(0)]
|
||||
[CommandHipc(0)]
|
||||
// GetCurrentTimePoint() -> nn::time::SteadyClockTimePoint
|
||||
public ResultCode GetCurrentTimePoint(ServiceCtx context)
|
||||
{
|
||||
|
@ -32,7 +32,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(2)]
|
||||
[CommandHipc(2)]
|
||||
// GetTestOffset() -> nn::TimeSpanType
|
||||
public ResultCode GetTestOffset(ServiceCtx context)
|
||||
{
|
||||
|
@ -46,7 +46,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(3)]
|
||||
[CommandHipc(3)]
|
||||
// SetTestOffset(nn::TimeSpanType)
|
||||
public ResultCode SetTestOffset(ServiceCtx context)
|
||||
{
|
||||
|
@ -67,7 +67,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(100)] // 2.0.0+
|
||||
[CommandHipc(100)] // 2.0.0+
|
||||
// GetRtcValue() -> u64
|
||||
public ResultCode GetRtcValue(ServiceCtx context)
|
||||
{
|
||||
|
@ -86,7 +86,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(101)] // 2.0.0+
|
||||
[CommandHipc(101)] // 2.0.0+
|
||||
// IsRtcResetDetected() -> bool
|
||||
public ResultCode IsRtcResetDetected(ServiceCtx context)
|
||||
{
|
||||
|
@ -100,7 +100,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(102)] // 2.0.0+
|
||||
[CommandHipc(102)] // 2.0.0+
|
||||
// GetSetupResultValue() -> u32
|
||||
public ResultCode GetSetupResultValue(ServiceCtx context)
|
||||
{
|
||||
|
@ -114,7 +114,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(200)] // 3.0.0+
|
||||
[CommandHipc(200)] // 3.0.0+
|
||||
// GetInternalOffset() -> nn::TimeSpanType
|
||||
public ResultCode GetInternalOffset(ServiceCtx context)
|
||||
{
|
||||
|
@ -128,7 +128,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(201)] // 3.0.0-3.0.2
|
||||
[CommandHipc(201)] // 3.0.0-3.0.2
|
||||
// SetInternalOffset(nn::TimeSpanType)
|
||||
public ResultCode SetInternalOffset(ServiceCtx context)
|
||||
{
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
_operationEventReadableHandle = 0;
|
||||
}
|
||||
|
||||
[Command(0)]
|
||||
[CommandHipc(0)]
|
||||
// GetCurrentTime() -> nn::time::PosixTime
|
||||
public ResultCode GetCurrentTime(ServiceCtx context)
|
||||
{
|
||||
|
@ -41,7 +41,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(1)]
|
||||
[CommandHipc(1)]
|
||||
// SetCurrentTime(nn::time::PosixTime)
|
||||
public ResultCode SetCurrentTime(ServiceCtx context)
|
||||
{
|
||||
|
@ -60,7 +60,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return _clockCore.SetCurrentTime(context.Thread, posixTime);
|
||||
}
|
||||
|
||||
[Command(2)]
|
||||
[CommandHipc(2)]
|
||||
// GetClockContext() -> nn::time::SystemClockContext
|
||||
public ResultCode GetSystemClockContext(ServiceCtx context)
|
||||
{
|
||||
|
@ -79,7 +79,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(3)]
|
||||
[CommandHipc(3)]
|
||||
// SetClockContext(nn::time::SystemClockContext)
|
||||
public ResultCode SetSystemClockContext(ServiceCtx context)
|
||||
{
|
||||
|
@ -100,7 +100,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(4)] // 9.0.0+
|
||||
[CommandHipc(4)] // 9.0.0+
|
||||
// GetOperationEventReadableHandle() -> handle<copy>
|
||||
public ResultCode GetOperationEventReadableHandle(ServiceCtx context)
|
||||
{
|
||||
|
|
|
@ -19,14 +19,14 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
_inner = new ITimeZoneServiceForPsc(timeZoneContentManager.Manager, writePermission);
|
||||
}
|
||||
|
||||
[Command(0)]
|
||||
[CommandHipc(0)]
|
||||
// GetDeviceLocationName() -> nn::time::LocationName
|
||||
public ResultCode GetDeviceLocationName(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetDeviceLocationName(context);
|
||||
}
|
||||
|
||||
[Command(1)]
|
||||
[CommandHipc(1)]
|
||||
// SetDeviceLocationName(nn::time::LocationName)
|
||||
public ResultCode SetDeviceLocationName(ServiceCtx context)
|
||||
{
|
||||
|
@ -40,14 +40,14 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return _timeZoneContentManager.SetDeviceLocationName(locationName);
|
||||
}
|
||||
|
||||
[Command(2)]
|
||||
[CommandHipc(2)]
|
||||
// GetTotalLocationNameCount() -> u32
|
||||
public ResultCode GetTotalLocationNameCount(ServiceCtx context)
|
||||
{
|
||||
return _inner.GetTotalLocationNameCount(context);
|
||||
}
|
||||
|
||||
[Command(3)]
|
||||
[CommandHipc(3)]
|
||||
// LoadLocationNameList(u32 index) -> (u32 outCount, buffer<nn::time::LocationName, 6>)
|
||||
public ResultCode LoadLocationNameList(ServiceCtx context)
|
||||
{
|
||||
|
@ -82,7 +82,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return errorCode;
|
||||
}
|
||||
|
||||
[Command(4)]
|
||||
[CommandHipc(4)]
|
||||
// LoadTimeZoneRule(nn::time::LocationName locationName) -> buffer<nn::time::TimeZoneRule, 0x16>
|
||||
public ResultCode LoadTimeZoneRule(ServiceCtx context)
|
||||
{
|
||||
|
@ -110,28 +110,28 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return resultCode;
|
||||
}
|
||||
|
||||
[Command(100)]
|
||||
[CommandHipc(100)]
|
||||
// ToCalendarTime(nn::time::PosixTime time, buffer<nn::time::TimeZoneRule, 0x15> rules) -> (nn::time::CalendarTime, nn::time::sf::CalendarAdditionalInfo)
|
||||
public ResultCode ToCalendarTime(ServiceCtx context)
|
||||
{
|
||||
return _inner.ToCalendarTime(context);
|
||||
}
|
||||
|
||||
[Command(101)]
|
||||
[CommandHipc(101)]
|
||||
// ToCalendarTimeWithMyRule(nn::time::PosixTime) -> (nn::time::CalendarTime, nn::time::sf::CalendarAdditionalInfo)
|
||||
public ResultCode ToCalendarTimeWithMyRule(ServiceCtx context)
|
||||
{
|
||||
return _inner.ToCalendarTimeWithMyRule(context);
|
||||
}
|
||||
|
||||
[Command(201)]
|
||||
[CommandHipc(201)]
|
||||
// ToPosixTime(nn::time::CalendarTime calendarTime, buffer<nn::time::TimeZoneRule, 0x15> rules) -> (u32 outCount, buffer<nn::time::PosixTime, 0xa>)
|
||||
public ResultCode ToPosixTime(ServiceCtx context)
|
||||
{
|
||||
return _inner.ToPosixTime(context);
|
||||
}
|
||||
|
||||
[Command(202)]
|
||||
[CommandHipc(202)]
|
||||
// ToPosixTimeWithMyRule(nn::time::CalendarTime calendarTime) -> (u32 outCount, buffer<nn::time::PosixTime, 0xa>)
|
||||
public ResultCode ToPosixTimeWithMyRule(ServiceCtx context)
|
||||
{
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
_writePermission = writePermission;
|
||||
}
|
||||
|
||||
[Command(0)]
|
||||
[CommandHipc(0)]
|
||||
// GetDeviceLocationName() -> nn::time::LocationName
|
||||
public ResultCode GetDeviceLocationName(ServiceCtx context)
|
||||
{
|
||||
|
@ -36,7 +36,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(1)]
|
||||
[CommandHipc(1)]
|
||||
// SetDeviceLocationName(nn::time::LocationName)
|
||||
public ResultCode SetDeviceLocationName(ServiceCtx context)
|
||||
{
|
||||
|
@ -48,7 +48,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return ResultCode.NotImplemented;
|
||||
}
|
||||
|
||||
[Command(2)]
|
||||
[CommandHipc(2)]
|
||||
// GetTotalLocationNameCount() -> u32
|
||||
public ResultCode GetTotalLocationNameCount(ServiceCtx context)
|
||||
{
|
||||
|
@ -62,21 +62,21 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return ResultCode.Success;
|
||||
}
|
||||
|
||||
[Command(3)]
|
||||
[CommandHipc(3)]
|
||||
// LoadLocationNameList(u32 index) -> (u32 outCount, buffer<nn::time::LocationName, 6>)
|
||||
public ResultCode LoadLocationNameList(ServiceCtx context)
|
||||
{
|
||||
return ResultCode.NotImplemented;
|
||||
}
|
||||
|
||||
[Command(4)]
|
||||
[CommandHipc(4)]
|
||||
// LoadTimeZoneRule(nn::time::LocationName locationName) -> buffer<nn::time::TimeZoneRule, 0x16>
|
||||
public ResultCode LoadTimeZoneRule(ServiceCtx context)
|
||||
{
|
||||
return ResultCode.NotImplemented;
|
||||
}
|
||||
|
||||
[Command(5)] // 2.0.0+
|
||||
[CommandHipc(5)] // 2.0.0+
|
||||
// GetTimeZoneRuleVersion() -> nn::time::TimeZoneRuleVersion
|
||||
public ResultCode GetTimeZoneRuleVersion(ServiceCtx context)
|
||||
{
|
||||
|
@ -90,7 +90,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(6)] // 5.0.0+
|
||||
[CommandHipc(6)] // 5.0.0+
|
||||
// GetDeviceLocationNameAndUpdatedTime() -> (nn::time::LocationName, nn::time::SteadyClockTimePoint)
|
||||
public ResultCode GetDeviceLocationNameAndUpdatedTime(ServiceCtx context)
|
||||
{
|
||||
|
@ -114,7 +114,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(7)] // 9.0.0+
|
||||
[CommandHipc(7)] // 9.0.0+
|
||||
// SetDeviceLocationNameWithTimeZoneRule(nn::time::LocationName locationName, buffer<nn::time::TimeZoneBinary, 0x21> timeZoneBinary)
|
||||
public ResultCode SetDeviceLocationNameWithTimeZoneRule(ServiceCtx context)
|
||||
{
|
||||
|
@ -141,7 +141,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(8)] // 9.0.0+
|
||||
[CommandHipc(8)] // 9.0.0+
|
||||
// ParseTimeZoneBinary(buffer<nn::time::TimeZoneBinary, 0x21> timeZoneBinary) -> buffer<nn::time::TimeZoneRule, 0x16>
|
||||
public ResultCode ParseTimeZoneBinary(ServiceCtx context)
|
||||
{
|
||||
|
@ -177,14 +177,14 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return result;
|
||||
}
|
||||
|
||||
[Command(20)] // 9.0.0+
|
||||
[CommandHipc(20)] // 9.0.0+
|
||||
// GetDeviceLocationNameOperationEventReadableHandle() -> handle<copy>
|
||||
public ResultCode GetDeviceLocationNameOperationEventReadableHandle(ServiceCtx context)
|
||||
{
|
||||
return ResultCode.NotImplemented;
|
||||
}
|
||||
|
||||
[Command(100)]
|
||||
[CommandHipc(100)]
|
||||
// ToCalendarTime(nn::time::PosixTime time, buffer<nn::time::TimeZoneRule, 0x15> rules) -> (nn::time::CalendarTime, nn::time::sf::CalendarAdditionalInfo)
|
||||
public ResultCode ToCalendarTime(ServiceCtx context)
|
||||
{
|
||||
|
@ -212,7 +212,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return resultCode;
|
||||
}
|
||||
|
||||
[Command(101)]
|
||||
[CommandHipc(101)]
|
||||
// ToCalendarTimeWithMyRule(nn::time::PosixTime) -> (nn::time::CalendarTime, nn::time::sf::CalendarAdditionalInfo)
|
||||
public ResultCode ToCalendarTimeWithMyRule(ServiceCtx context)
|
||||
{
|
||||
|
@ -228,7 +228,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return resultCode;
|
||||
}
|
||||
|
||||
[Command(201)]
|
||||
[CommandHipc(201)]
|
||||
// ToPosixTime(nn::time::CalendarTime calendarTime, buffer<nn::time::TimeZoneRule, 0x15> rules) -> (u32 outCount, buffer<nn::time::PosixTime, 0xa>)
|
||||
public ResultCode ToPosixTime(ServiceCtx context)
|
||||
{
|
||||
|
@ -261,7 +261,7 @@ namespace Ryujinx.HLE.HOS.Services.Time.StaticService
|
|||
return resultCode;
|
||||
}
|
||||
|
||||
[Command(202)]
|
||||
[CommandHipc(202)]
|
||||
// ToPosixTimeWithMyRule(nn::time::CalendarTime calendarTime) -> (u32 outCount, buffer<nn::time::PosixTime, 0xa>)
|
||||
public ResultCode ToPosixTimeWithMyRule(ServiceCtx context)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue