NS services: Difference between revisions
add read only interface cmds |
|||
Line 1,157: | Line 1,157: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || HasDownloaded | | 0 || [[#HasDownloaded]] | ||
|- | |- | ||
| 1 || RequestCheckLatestUpdate | | 1 || RequestCheckLatestUpdate | ||
Line 1,163: | Line 1,163: | ||
| 2 || RequestDownloadLatestUpdate | | 2 || RequestDownloadLatestUpdate | ||
|- | |- | ||
| 3 || GetDownloadProgress | | 3 || [[#GetDownloadProgress]] | ||
|- | |- | ||
| 4 || ApplyDownloadedUpdate | | 4 || [[#ApplyDownloadedUpdate]] | ||
|- | |- | ||
| 5 || RequestPrepareCardUpdate | | 5 || RequestPrepareCardUpdate | ||
Line 1,203: | Line 1,203: | ||
| 22 || [6.0.0+] RequestCheckLatestUpdateIncludesRebootlessUpdate | | 22 || [6.0.0+] RequestCheckLatestUpdateIncludesRebootlessUpdate | ||
|} | |} | ||
=== HasDownloaded === | |||
No input, returns an output u8 bool flag. | |||
Gets whether a network sysupdate was downloaded, with install pending. | |||
Uses [[NIM_services|nim]] ListSystemUpdateTask and [[NIM_services|nim]] GetSystemUpdateTaskInfo. When ListSystemUpdateTask successfully returns a task and GetSystemUpdateTaskInfo is successful, the output flag is set to: <code>*((u8*)(taskinfo+0) == 0x3</code>. Otherwise, flag=0. | |||
This always returns 0, however this will assert if GetSystemUpdateTaskInfo fails with ret!=0x3C89. | |||
=== GetDownloadProgress === | |||
No input, returns a 0x10-byte output struct. | |||
Similar to [[#HasDownloaded]] except instead of a flag, this returns the 0x10-bytes from taskinfo+8. The output struct is cleared when the task(info) isn't available. | |||
=== ApplyDownloadedUpdate === | |||
No input/output. | |||
Runs code similar to [[#HasDownloaded]], throwing an error if a network sysupdate isn't ready for install. Then the sysupdate is installed. | |||
= IAsyncValue = | = IAsyncValue = |