Shared Database services: Difference between revisions
Line 444: | Line 444: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 100 || | | 100 || [[#GetHighestAvailableVersion]] | ||
|- | |- | ||
| 101 || | | 101 || [[#GetHighestRequiredVersion]] | ||
|- | |- | ||
| 102 || | | 102 || [[#GetVersionListEntry]] | ||
|- | |- | ||
| 103 || | | 103 || [[#GetVersionListImporter]] | ||
|- | |- | ||
| 200 || GetLaunchRequiredVersion | | 200 || [[#GetLaunchRequiredVersion]] | ||
|- | |- | ||
| 202 || UpgradeLaunchRequiredVersion | | 202 || [[#UpgradeLaunchRequiredVersion]] | ||
|- | |- | ||
| 1000 || PushLaunchVersion | | 1000 || [[#PushLaunchVersion]] | ||
|- | |- | ||
| 1001 || ListVersionList | | 1001 || [[#ListVersionList]] | ||
|- | |- | ||
| 1002 || ListRequiredVersion | | 1002 || [[#ListRequiredVersion]] | ||
|} | |} | ||
=== GetHighestAvailableVersion === | |||
Takes two u64 title ids. Returns the highest available version of both. | |||
Unused by official software. | |||
=== GetHighestRequiredVersion === | |||
Takes two u64 title ids. Returns the highest available version of both. | |||
Official software calls this with the id of an application and its update. | |||
=== GetVersionListEntry === | |||
Takes an input u64 title id. Returns associated [[#VersionListEntry]]. | |||
=== GetVersionListImporter === | |||
No input, returns an [[#IVersionListImporter]]. | |||
=== GetLaunchRequiredVersion === | |||
Takes an input u64 title id. Return the required launch version. | |||
=== UpgradeLaunchRequiredVersion === | |||
Takes a u32 launch version and a u64 title id. | |||
Version has to be greater the result of GetLaunchRequiredVersion. | |||
=== PushLaunchVersion === | |||
Takes a u32 launch version and a u64 title id. | |||
=== ListVersionList === | |||
No input, returns a type 6 buffer of [[#VersionListEntry]] and a u32 count. | |||
=== ListRequiredVersion === | |||
No input, returns a type 6 buffer of [[#RequiredVersionEntry]] and a u32 count. | |||
== IVersionListImporter == | == IVersionListImporter == | ||
Line 472: | Line 505: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || SetTimestamp | | 0 || [[#SetTimestamp]] | ||
|- | |||
| 1 || [[#PushEntries]] | |||
|- | |||
| 2 || [[#Flush]] | |||
|} | |||
=== SetTimestamp === | |||
Takes an input u64 unix timestamp, no output. | |||
=== PushEntries === | |||
Takes an input type-6 buffer [[#VersionListEntry]], no output. | |||
=== Flush === | |||
No input, no output. Flushed the commited data to its safe. | |||
= VersionListEntry = | |||
This is a 0x10-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x8 || Update Id. | |||
|- | |||
| 0x8 || 0x4 || Available version. | |||
|- | |||
| 0xC || 0x4 || Required version. | |||
|} | |||
= RequiredVersionEntry = | |||
This is a 0x10-byte struct. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 || 0x8 || Id. | |||
|- | |- | ||
| | | 0x8 || 0x4 || Required version. | ||
|- | |- | ||
| | | 0xC || 0x4 || Padding. | ||
|} | |} | ||