libnx v4.12.0
Loading...
Searching...
No Matches
ns.h
Go to the documentation of this file.
1/**
2 * @file ns.h
3 * @brief NS services IPC wrapper.
4 * @author yellows8
5 * @copyright libnx Authors
6 */
7#pragma once
8#include "../types.h"
9#include "../nacp.h"
10#include "../sf/service.h"
11#include "../services/ncm_types.h"
12#include "../services/async.h"
13#include "../services/acc.h"
14#include "../services/fs.h"
15#include "../applets/error.h"
16#include "../kernel/event.h"
17#include "../kernel/tmem.h"
18
19/// ShellEvent
20typedef enum {
21 NsShellEvent_None = 0, ///< None
22 NsShellEvent_Exit = 1, ///< Exit
23 NsShellEvent_Start = 2, ///< Start
24 NsShellEvent_Crash = 3, ///< Crash
25 NsShellEvent_Debug = 4, ///< Debug
27
28/// ApplicationControlSource
29typedef enum {
30 NsApplicationControlSource_CacheOnly = 0, ///< Returns data from cache.
31 NsApplicationControlSource_Storage = 1, ///< Returns data from storage if not present in cache.
32 NsApplicationControlSource_StorageOnly = 2, ///< Returns data from storage without using cache.
34
35/// BackgroundNetworkUpdateState
36typedef enum {
37 NsBackgroundNetworkUpdateState_None = 0, ///< No sysupdate task exists.
38 NsBackgroundNetworkUpdateState_Downloading = 1, ///< Sysupdate download in progress.
39 NsBackgroundNetworkUpdateState_Ready = 2, ///< Sysupdate ready, pending install.
41
42/// LatestSystemUpdate
43typedef enum {
46 NsLatestSystemUpdate_NeedsDownload = 2, ///< NeedsDownload
48
49/// RequestServerStopper
50typedef struct {
51 Service s; ///< IRequestServerStopper
53
54/// ProgressMonitorForDeleteUserSaveDataAll
55typedef struct {
56 Service s; ///< IProgressMonitorForDeleteUserSaveDataAll
58
59/// ProgressAsyncResult
60typedef struct {
61 Service s; ///< IProgressAsyncResult
62 Event event; ///< Event with autoclear=false.
64
65/// SystemUpdateControl
66typedef struct {
67 Service s; ///< ISystemUpdateControl
68 TransferMemory tmem; ///< TransferMemory for SetupCardUpdate/SetupCardUpdateViaSystemUpdater.
70
71/// ApplicationControlData
72typedef struct {
73 NacpStruct nacp; ///< \ref NacpStruct
74 u8 icon[0x20000]; ///< JPEG
76
77/// ApplicationOccupiedSize
78typedef struct {
79 u8 unk_x0[0x80]; ///< Unknown.
81
82/// NsApplicationContentMetaStatus
83typedef struct {
84 u8 meta_type; ///< \ref NcmContentMetaType
85 u8 storageID; ///< \ref NcmStorageId
86 u8 rights_check; ///< RightsCheck.
87 u8 reserved; ///< Reserved.
88 u32 version; ///< Application version.
89 u64 application_id; ///< ApplicationId.
91
92/// ApplicationRecord
93typedef struct {
94 u64 application_id; ///< ApplicationId.
95 u8 last_event; ///< LastEvent.
96 u8 attributes; ///< Attributes.
97 u8 reserved[6]; ///< Reserved.
98 u64 last_updated; ///< LastUpdated.
100
101/// ProgressForDeleteUserSaveDataAll
102typedef struct {
103 u8 unk_x0[0x28]; ///< Unknown.
105
106/// ApplicationViewDeprecated. The below comments are for the \ref NsApplicationView to NsApplicationViewDeprecated conversion done by \ref nsGetApplicationViewDeprecated on newer system-versions.
107typedef struct {
108 u64 application_id; ///< Same as NsApplicationView::application_id.
109 u8 unk_x8[0x4]; ///< Same as NsApplicationView::unk_x8.
110 u32 flags; ///< Same as NsApplicationView::flags.
111 u8 unk_x10[0x10]; ///< Same as NsApplicationView::unk_x10.
112 u32 unk_x20; ///< Same as NsApplicationView::unk_x20.
113 u16 unk_x24; ///< Same as NsApplicationView::unk_x24.
114 u8 unk_x26[0x2]; ///< Cleared to zero.
115 u8 unk_x28[0x10]; ///< Same as NsApplicationView::unk_x30.
116 u32 unk_x38; ///< Same as NsApplicationView::unk_x40.
117 u8 unk_x3c; ///< Same as NsApplicationView::unk_x44.
118 u8 unk_x3d[3]; ///< Cleared to zero.
120
121/// ApplicationView
122typedef struct {
123 u64 application_id; ///< ApplicationId.
124 u8 unk_x8[0x4]; ///< Unknown.
125 u32 flags; ///< Flags.
126 u8 unk_x10[0x10]; ///< Unknown.
127 u32 unk_x20; ///< Unknown.
128 u16 unk_x24; ///< Unknown.
129 u8 unk_x26[0x2]; ///< Unknown.
130 u8 unk_x28[0x8]; ///< Unknown.
131 u8 unk_x30[0x10]; ///< Unknown.
132 u32 unk_x40; ///< Unknown.
133 u8 unk_x44; ///< Unknown.
134 u8 unk_x45[0xb]; ///< Unknown.
136
137/// NsPromotionInfo
138typedef struct {
139 u64 start_timestamp; ///< POSIX timestamp for the promotion start.
140 u64 end_timestamp; ///< POSIX timestamp for the promotion end.
141 s64 remaining_time; ///< Remaining time until the promotion ends, in nanoseconds ({end_timestamp - current_time} converted to nanoseconds).
142 u8 unk_x18[0x4]; ///< Not set, left at zero.
143 u8 flags; ///< Flags. Bit0: whether the PromotionInfo is valid (including bit1). Bit1 clear: remaining_time is set.
144 u8 pad[3]; ///< Padding.
146
147/// NsApplicationViewWithPromotionInfo
148typedef struct {
149 NsApplicationView view; ///< \ref NsApplicationView
150 NsPromotionInfo promotion; ///< \ref NsPromotionInfo
152
153/// LaunchProperties
154typedef struct {
155 u64 program_id; ///< program_id.
156 u32 version; ///< Program version.
157 u8 storageID; ///< \ref NcmStorageId
158 u8 index; ///< Index.
159 u8 is_application; ///< Whether this is an Application.
161
162/// ShellEventInfo
163typedef struct {
164 NsShellEvent event; ///< \ref NsShellEvent
165 u64 process_id; ///< processID.
167
168/// SystemUpdateProgress. Commands which have this as output will return 0 with the output cleared, when no task is available.
169typedef struct {
170 s64 current_size; ///< Current size. This value can be larger than total_size when the async operation is finishing. When total_size is <=0, this current_size field may contain a progress value for when the total_size is not yet determined.
171 s64 total_size; ///< Total size, this field is only valid when >0.
173
174/// ReceiveApplicationProgress. Same as \ref NsSystemUpdateProgress, except cmds which return this will return actual errors on failure, instead of returning 0 with a cleared struct.
176
177/// SendApplicationProgress. Same as \ref NsSystemUpdateProgress, except cmds which return this will return actual errors on failure, instead of returning 0 with a cleared struct.
179
180/// EulaDataPath
181typedef struct {
182 char path[0x100]; ///< Path.
184
185/// SystemDeliveryInfo
186typedef struct {
187 struct {
188 u32 system_delivery_protocol_version; ///< SystemDeliveryProtocolVersion.
189 u32 application_delivery_protocol_version; ///< ApplicationDeliveryProtocolVersion.
190 u8 has_exfat; ///< HasExFat.
191 u8 reserved[0x3]; ///< Reserved.
192 u32 system_update_version; ///< SystemUpdateVersion.
193 u64 old_system_update_id; ///< OldSystemUpdateId.
194 u8 firmware_variation_id; ///< FirmwareVariationId.
195 u8 updatable_firmware_group_id; ///< UpdatableFirmwareGroupId.
196 u8 platform_region; ///< PlatformRegion.
197 u8 system_delivery_info_platform; ///< [20.0.0+] SystemDeliveryInfoPlatform.
198 u8 system_update_id_flag; ///< [20.0.0+] SystemUpdateIdFlag. When non-zero, SystemUpdateId is used instead of OldSystemUpdateId.
199 u8 pad[0x3]; ///< Padding.
200 u64 system_update_id; ///< [20.0.0+] SystemUpdateId.
201 u8 reserved_x28[0xb8]; ///< Reserved.
202 } data; ///< Data used with the below hmac.
203 u8 hmac[0x20]; ///< HMAC-SHA256 over the above data.
205
206/// ApplicationDeliveryInfo
207typedef struct {
208 struct {
209 u32 application_delivery_protocol_version; ///< ApplicationDeliveryProtocolVersion.
210 u8 pad[0x4]; ///< Padding.
211 u64 application_id; ///< ApplicationId.
212 u32 application_version; ///< ApplicationVersion.
213 u32 required_application_version; ///< RequiredApplicationVersion.
214 u32 required_system_version; ///< RequiredSystemVersion.
215 u32 attributes; ///< Bitfield of ApplicationDeliveryAttributeTag.
216 u8 platform; ///< [20.0.0+] \ref NcmContentMetaPlatform
217 u8 proper_program_exists; ///< [20.0.0+] ProperProgramExists.
218 u8 reserved[0xbe]; ///< Reserved.
219 } data; ///< Data used with the below hmac.
220 u8 hmac[0x20]; ///< HMAC-SHA256 over the above data.
222
223/// NsApplicationRightsOnClient
224typedef struct {
225 u64 application_id; ///< ApplicationId.
226 AccountUid uid; ///< \ref AccountUid
227 u8 flags_x18; ///< qlaunch uses bit0-bit4 and bit7 from here.
228 u8 flags_x19; ///< qlaunch uses bit0 from here.
229 u8 unk_x1a[0x6]; ///< Unknown.
231
232/// DownloadTaskStatus
233typedef struct {
234 u8 unk_x0[0x20]; ///< Unknown.
236
237/// Default size for \ref nssuControlSetupCardUpdate / \ref nssuControlSetupCardUpdateViaSystemUpdater. This is the size used by qlaunch for SetupCardUpdate.
238#define NSSU_CARDUPDATE_TMEM_SIZE_DEFAULT 0x100000
239
240///@name ns
241///@{
242
243/// Initialize ns services. Uses ns:am on pre-3.0.0, ns:am2 on [3.0.0+].
245
246/// Exit ns services.
247void nsExit(void);
248
249/// Gets the Service object for the actual ns:* service session. Only initialized on [3.0.0+], on pre-3.0.0 see \ref nsGetServiceSession_ApplicationManagerInterface.
251
252/// Gets the Service object for IApplicationManagerInterface. Only initialized on pre-3.0.0, on [3.0.0+] use \ref nsGetApplicationManagerInterface.
254
255/// Gets the Service object for IDynamicRightsInterface via the cmd for that.
256/// Only available on [6.0.0+].
258
259/// Gets the Service object for IReadOnlyApplicationControlDataInterface via the cmd for that.
260/// Only available on [5.1.0+].
262
263/// Gets the Service object for IReadOnlyApplicationRecordInterface via the cmd for that.
264/// Only available on [5.0.0+].
266
267/// Gets the Service object for IECommerceInterface via the cmd for that.
268/// Only available on [4.0.0+].
270
271/// Gets the Service object for IApplicationVersionInterface via the cmd for that.
272/// Only available on [4.0.0+].
274
275/// Gets the Service object for IFactoryResetInterface via the cmd for that.
276/// Only available on [3.0.0+].
278
279/// Gets the Service object for IAccountProxyInterface via the cmd for that.
280/// Only available on [3.0.0+].
282
283/// Gets the Service object for IApplicationManagerInterface via the cmd for that.
284/// Only available on [3.0.0+], on prior sysvers use \ref nsGetServiceSession_ApplicationManagerInterface.
286
287/// Gets the Service object for IDownloadTaskInterface via the cmd for that.
288/// Only available on [3.0.0+].
290
291/// Gets the Service object for IContentManagementInterface via the cmd for that.
292/// Only available on [3.0.0+].
294
295/// Gets the Service object for IDocumentInterface via the cmd for that.
296/// Only available on [3.0.0+].
298
299///@}
300
301///@name IReadOnlyApplicationControlDataInterface
302///@{
303
304/**
305 * @brief Gets the \ref NsApplicationControlData for the specified application.
306 * @note Uses \ref nsGetReadOnlyApplicationControlDataInterface on [5.1.0+], otherwise IApplicationManagerInterface is used.
307 * @param[in] source Source, official sw uses ::NsApplicationControlSource_Storage.
308 * @param[in] application_id ApplicationId.
309 * @param[out] buffer \ref NsApplicationControlData
310 * @param[in] size Size of the buffer.
311 * @param[out] actual_size Actual output size.
312 */
313Result nsGetApplicationControlData(NsApplicationControlSource source, u64 application_id, NsApplicationControlData* buffer, size_t size, u64* actual_size);
314
315/**
316 * @brief Gets the \ref NsApplicationControlData for the specified application.
317 * @note Only available on [19.0.0+].
318 * @param[in] source Source, official sw uses ::NsApplicationControlSource_Storage.
319 * @param[in] application_id ApplicationId.
320 * @param[out] buffer \ref NsApplicationControlData
321 * @param[in] size Size of the buffer.
322 * @param[in] flag1 Default is 0. 0xFF speeds up execution.
323 * @param[in] flag2 Default is 0.
324 * @param[out] actual_size Actual output size.
325 * @param[out] unk Returned with size, always 0.
326 */
327Result nsGetApplicationControlData2(NsApplicationControlSource source, u64 application_id, NsApplicationControlData* buffer, size_t size, u8 flag1, u8 flag2, u64* actual_size, u32* unk);
328
329/**
330 * @brief GetApplicationDesiredLanguage. Selects a \ref NacpLanguageEntry to use from the specified \ref NacpStruct.
331 * @note Uses \ref nsGetReadOnlyApplicationControlDataInterface on [5.1.0+], otherwise IApplicationManagerInterface is used.
332 * @param[in] nacp \ref NacpStruct
333 * @param[out] langentry \ref NacpLanguageEntry
334 */
336
337///@}
338
339///@name IECommerceInterface
340///@{
341
342/**
343 * @brief RequestLinkDevice
344 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
345 * @note Only available on [4.0.0+].
346 * @param[out] a \ref AsyncResult
347 * @param[in] uid \ref AccountUid
348 */
350
351/**
352 * @brief RequestSyncRights
353 * @note Only available on [6.0.0+].
354 * @param[out] a \ref AsyncResult
355 */
357
358/**
359 * @brief RequestUnlinkDevice
360 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
361 * @note Only available on [6.0.0+].
362 * @param[out] a \ref AsyncResult
363 * @param[in] uid \ref AccountUid
364 */
366
367///@}
368
369///@name IFactoryResetInterface
370///@{
371
372/**
373 * @brief ResetToFactorySettings
374 * @note Uses \ref nsGetFactoryResetInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
375 */
377
378/**
379 * @brief ResetToFactorySettingsWithoutUserSaveData
380 * @note Uses \ref nsGetFactoryResetInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
381 */
383
384/**
385 * @brief ResetToFactorySettingsForRefurbishment
386 * @note Uses \ref nsGetFactoryResetInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
387 * @note Only available on [2.0.0+].
388 */
390
391/**
392 * @brief ResetToFactorySettingsWithPlatformRegion
393 * @note Only available on [9.1.0+].
394 */
396
397/**
398 * @brief ResetToFactorySettingsWithPlatformRegionAuthentication
399 * @note Only available on [9.1.0+].
400 */
402
403///@}
404
405///@name IApplicationManagerInterface
406///@{
407
408/**
409 * @brief Gets an listing of \ref NsApplicationRecord.
410 * @param[out] records Output array of \ref NsApplicationRecord.
411 * @param[in] count Size of the records array in entries.
412 * @param[in] entry_offset Starting entry offset.
413 * @param[out] out_entrycount Total output entries.
414 */
415Result nsListApplicationRecord(NsApplicationRecord* records, s32 count, s32 entry_offset, s32* out_entrycount);
416
417/**
418 * @brief GetApplicationRecordUpdateSystemEvent
419 * @note The Event must be closed by the user once finished with it.
420 * @param[out] out_event Output Event with autoclear=true.
421 */
423
424/**
425 * @brief GetApplicationViewDeprecated
426 * @note On [3.0.0+] you should generally use \ref nsGetApplicationView instead.
427 * @param[out] out Output array of \ref NsApplicationViewDeprecated.
428 * @param[in] application_ids Input array of ApplicationIds.
429 * @param[in] count Size of the input/output arrays in entries.
430 */
432
433/**
434 * @brief DeleteApplicationEntity
435 * @param[in] application_id ApplicationId.
436 */
438
439/**
440 * @brief DeleteApplicationCompletely
441 * @param[in] application_id ApplicationId.
442 */
444
445/**
446 * @brief DeleteRedundantApplicationEntity
447 */
449
450/**
451 * @brief IsApplicationEntityMovable
452 * @param[in] application_id ApplicationId.
453 * @param[in] storage_id \ref NcmStorageId
454 * @param[out] out Output flag.
455 */
456Result nsIsApplicationEntityMovable(u64 application_id, NcmStorageId storage_id, bool *out);
457
458/**
459 * @brief MoveApplicationEntity
460 * @note Only available on [1.0.0-9.2.0].
461 * @param[in] application_id ApplicationId.
462 * @param[in] storage_id \ref NcmStorageId
463 */
464Result nsMoveApplicationEntity(u64 application_id, NcmStorageId storage_id);
465
466/**
467 * @brief RequestApplicationUpdateInfo
468 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
469 * @param[out] a \ref AsyncValue. The data that can be read from this is u8 ApplicationUpdateInfo. qlaunch just checks whether this is 0.
470 * @param application_id ApplicationId.
471 */
473
474/**
475 * @brief CancelApplicationDownload
476 * @param[in] application_id ApplicationId.
477 */
479
480/**
481 * @brief ResumeApplicationDownload
482 * @param[in] application_id ApplicationId.
483 */
485
486/**
487 * @brief CheckApplicationLaunchVersion
488 * @param[in] application_id ApplicationId.
489 */
491
492/**
493 * @brief CalculateApplicationApplyDeltaRequiredSize
494 * @param[in] application_id ApplicationId.
495 * @param[out] storage_id Output \ref NcmStorageId.
496 * @param[out] size Output size.
497 */
499
500/**
501 * @brief CleanupSdCard
502 */
504
505/**
506 * @brief GetSdCardMountStatusChangedEvent
507 * @note The Event must be closed by the user once finished with it.
508 * @param[out] out_event Output Event with autoclear=false.
509 */
511
512/**
513 * @brief GetGameCardUpdateDetectionEvent
514 * @note The Event must be closed by the user once finished with it.
515 * @param[out] out_event Output Event with autoclear=false.
516 */
518
519/**
520 * @brief DisableApplicationAutoDelete
521 * @param[in] application_id ApplicationId.
522 */
524
525/**
526 * @brief EnableApplicationAutoDelete
527 * @param[in] application_id ApplicationId.
528 */
530
531/**
532 * @brief SetApplicationTerminateResult
533 * @param[in] application_id ApplicationId.
534 * @param[in] res Result.
535 */
537
538/**
539 * @brief ClearApplicationTerminateResult
540 * @param[in] application_id ApplicationId.
541 */
543
544/**
545 * @brief GetLastSdCardMountUnexpectedResult
546 */
548
549/**
550 * @brief Opens a \ref NsRequestServerStopper.
551 * @note Only available on [2.0.0+].
552 * @param[out] r \ref NsRequestServerStopper
553 */
555
556/**
557 * @brief CancelApplicationApplyDelta
558 * @note Only available on [3.0.0+].
559 * @param[in] application_id ApplicationId.
560 */
562
563/**
564 * @brief ResumeApplicationApplyDelta
565 * @note Only available on [3.0.0+].
566 * @param[in] application_id ApplicationId.
567 */
569
570/**
571 * @brief CalculateApplicationApplyDeltaRequiredSize
572 * @note Only available on [3.0.0+].
573 * @param[in] application_id ApplicationId.
574 * @param[out] storage_id Output \ref NcmStorageId.
575 * @param[out] size Output size.
576 */
578
579/**
580 * @brief ResumeAll
581 * @note Only available on [3.0.0+].
582 */
584
585/**
586 * @brief Temporarily mounts the specified fs ContentStorage, then uses fs GetTotalSpaceSize/GetFreeSpaceSize with that mounted ContentStorage.
587 * @note Only available on [3.0.0+].
588 * @param[in] storage_id \ref NcmStorageId, must be ::NcmStorageId_BuiltInUser or ::NcmStorageId_SdCard.
589 * @param[out] total_space_size Output from GetTotalSpaceSize.
590 * @param[out] free_space_size Output from GetFreeSpaceSize.
591 */
592Result nsGetStorageSize(NcmStorageId storage_id, s64 *total_space_size, s64 *free_space_size);
593
594/**
595 * @brief RequestUpdateApplication2
596 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
597 * @note Only available on [4.0.0+].
598 * @param[out] a \ref AsyncResult
599 * @param[in] application_id ApplicationId.
600 */
602
603/**
604 * @brief DeleteUserSaveDataAll
605 * @param[in] p \ref NsProgressMonitorForDeleteUserSaveDataAll
606 * @param[in] uid \ref AccountUid
607 */
609
610/**
611 * @brief DeleteUserSystemSaveData
612 * @param[in] uid \ref AccountUid
613 * @param[in] system_save_data_id SystemSaveDataId
614 */
616
617/**
618 * @brief DeleteSaveData
619 * @note Only available on [6.0.0+].
620 * @param[in] save_data_space_id \ref FsSaveDataSpaceId
621 * @param[in] save_data_id SaveDataId
622 */
623Result nsDeleteSaveData(FsSaveDataSpaceId save_data_space_id, u64 save_data_id);
624
625/**
626 * @brief UnregisterNetworkServiceAccount
627 * @param[in] uid \ref AccountUid
628 */
630
631/**
632 * @brief UnregisterNetworkServiceAccountWithUserSaveDataDeletion
633 * @note Only available on [6.0.0+].
634 * @param[in] uid \ref AccountUid
635 */
637
638/**
639 * @brief RequestDownloadApplicationControlData
640 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
641 * @param[out] a \ref AsyncResult
642 * @param[in] application_id ApplicationId.
643 */
645
646/**
647 * @brief ListApplicationTitle
648 * @note The data available with \ref asyncValueGet is a s32 for the offset within the buffer where the output data is located, \ref asyncValueGetSize returns the total byte-size of the data located here. The data located here is the \ref NacpLanguageEntry for each specified ApplicationId.
649 * @note Only available on [8.0.0+].
650 * @param[out] a \ref AsyncValue
651 * @param[in] source Source, qlaunch uses ::NsApplicationControlSource_Storage.
652 * @param[in] application_ids Input array of ApplicationIds.
653 * @param[in] count Size of the application_ids array in entries.
654 * @param buffer 0x1000-byte aligned buffer for TransferMemory. This buffer must not be accessed until the async operation finishes.
655 * @param[in] size 0x1000-byte aligned buffer size for TransferMemory. This must be at least: count*sizeof(\ref NacpLanguageEntry) + count*sizeof(u64) + count*sizeof(\ref NsApplicationControlData).
656 */
657Result nsListApplicationTitle(AsyncValue *a, NsApplicationControlSource source, const u64 *application_ids, s32 count, void* buffer, size_t size);
658
659/**
660 * @brief ListApplicationIcon
661 * @note The data available with \ref asyncValueGet is a s32 for the offset within the buffer where the output data is located, \ref asyncValueGetSize returns the total byte-size of the data located here. This data is: an u64 for total entries, an array of u64s for each icon size, then the icon JPEGs for the specified ApplicationIds.
662 * @note Only available on [8.0.0+].
663 * @param[out] a \ref AsyncValue
664 * @param[in] source Source.
665 * @param[in] application_ids Input array of ApplicationIds.
666 * @param[in] count Size of the application_ids array in entries.
667 * @param buffer 0x1000-byte aligned buffer for TransferMemory. This buffer must not be accessed until the async operation finishes.
668 * @param[in] size 0x1000-byte aligned buffer size for TransferMemory. This must be at least: 0x4 + count*sizeof(u64) + count*sizeof(\ref NsApplicationControlData::icon) + count*sizeof(u64) + sizeof(\ref NsApplicationControlData).
669 */
670Result nsListApplicationIcon(AsyncValue *a, NsApplicationControlSource source, const u64 *application_ids, s32 count, void* buffer, size_t size);
671
672/**
673 * @brief RequestCheckGameCardRegistration
674 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
675 * @note Only available on [2.0.0+].
676 * @param[out] a \ref AsyncResult
677 * @param[in] application_id ApplicationId.
678 */
680
681/**
682 * @brief RequestGameCardRegistrationGoldPoint
683 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
684 * @note Only available on [2.0.0+].
685 * @param[out] a \ref AsyncValue. The data that can be read from this is 4-bytes.
686 * @param[in] uid \ref AccountUid
687 * @param[in] application_id ApplicationId.
688 */
690
691/**
692 * @brief RequestRegisterGameCard
693 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
694 * @note Only available on [2.0.0+].
695 * @param[out] a \ref AsyncResult
696 * @param[in] uid \ref AccountUid
697 * @param[in] application_id ApplicationId.
698 * @param[in] inval Input value.
699 */
701
702/**
703 * @brief GetGameCardMountFailureEvent
704 * @note The Event must be closed by the user once finished with it.
705 * @note Only available on [3.0.0+].
706 * @param[out] out_event Output Event with autoclear=false.
707 */
709
710/**
711 * @brief IsGameCardInserted
712 * @note Only available on [3.0.0+].
713 * @param[out] out Output flag.
714 */
716
717/**
718 * @brief EnsureGameCardAccess
719 * @note Only available on [3.0.0+].
720 */
722
723/**
724 * @brief GetLastGameCardMountFailureResult
725 * @note Only available on [3.0.0+].
726 */
728
729/**
730 * @brief ListApplicationIdOnGameCard
731 * @note Only available on [5.0.0+].
732 * @param[out] application_ids Output array of ApplicationIds.
733 * @param[in] count Size of the application_ids array in entries.
734 * @param[out] total_out Total output entries.
735 */
736Result nsListApplicationIdOnGameCard(u64 *application_ids, s32 count, s32 *total_out);
737
738/**
739 * @brief TouchApplication
740 * @note Only available on [2.0.0+].
741 * @param[in] application_id ApplicationId.
742 */
744
745/**
746 * @brief IsApplicationUpdateRequested
747 * @note Only available on [2.0.0+].
748 * @param[in] application_id ApplicationId.
749 * @param[out] flag Output flag, indicating whether out is valid.
750 * @param[out] out Output value.
751 */
752Result nsIsApplicationUpdateRequested(u64 application_id, bool *flag, u32 *out);
753
754/**
755 * @brief WithdrawApplicationUpdateRequest
756 * @note Only available on [2.0.0+].
757 * @param[in] application_id ApplicationId.
758 */
760
761/**
762 * @brief RequestVerifyAddOnContentsRights
763 * @note Only available on [3.0.0-9.2.0].
764 * @param[out] a \ref NsProgressAsyncResult
765 * @param[in] application_id ApplicationId.
766 */
768
769/**
770 * @brief RequestVerifyApplication
771 * @note On pre-5.0.0 this uses cmd RequestVerifyApplicationDeprecated, otherwise cmd RequestVerifyApplication is used.
772 * @param[out] a \ref NsProgressAsyncResult. The data available with \ref nsProgressAsyncResultGetProgress is basically the same as \ref NsSystemUpdateProgress.
773 * @param[in] application_id ApplicationId.
774 * @param[in] unk Unknown. A default value of 0x7 can be used (which is what qlaunch uses). Only used on [5.0.0+].
775 * @param buffer 0x1000-byte aligned buffer for TransferMemory. This buffer must not be accessed until the async operation finishes.
776 * @param[in] size 0x1000-byte aligned buffer size for TransferMemory. qlaunch uses size 0x100000.
777 */
778Result nsRequestVerifyApplication(NsProgressAsyncResult *a, u64 application_id, u32 unk, void* buffer, size_t size);
779
780/**
781 * @brief IsAnyApplicationEntityInstalled
782 * @note Only available on [2.0.0+].
783 * @param[in] application_id ApplicationId.
784 * @param[out] out Output flag.
785 */
787
788/**
789 * @brief CleanupUnavailableAddOnContents
790 * @note Only available on [6.0.0+].
791 * @param[in] application_id ApplicationId.
792 * @param[in] uid \ref AccountUid
793 */
795
796/**
797 * @brief EstimateSizeToMove
798 * @note Only available on [10.0.0+].
799 * @param[in] storage_ids Array of u8 \ref NcmStorageId.
800 * @param[in] count Size of the storage_ids array in entries.
801 * @param[in] storage_id storage_id \ref NcmStorageId
802 * @param[in] flags Flags
803 * @param[in] application_id ApplicationId.
804 * @param[out] Out Output value.
805 */
806Result nsEstimateSizeToMove(u8 *storage_ids, s32 count, NcmStorageId storage_id, u32 flags, u64 application_id, s64 *out);
807
808/**
809 * @brief FormatSdCard
810 * @note Only available on [2.0.0+].
811 */
813
814/**
815 * @brief NeedsSystemUpdateToFormatSdCard
816 * @note Only available on [2.0.0+].
817 * @param[out] out Output flag.
818 */
820
821/**
822 * @brief GetLastSdCardFormatUnexpectedResult
823 * @note Only available on [2.0.0+].
824 */
826
827/**
828 * @brief GetApplicationView
829 * @note Only available on [3.0.0+], on prior system-versions use \ref nsGetApplicationViewDeprecated instead.
830 * @param[out] out Output array of \ref NsApplicationView.
831 * @param[in] application_ids Input array of ApplicationIds.
832 * @param[in] count Size of the input/output arrays in entries.
833 */
834Result nsGetApplicationView(NsApplicationView *views, const u64 *application_ids, s32 count);
835
836/**
837 * @brief GetApplicationViewDownloadErrorContext
838 * @note Only available on [4.0.0+].
839 * @param[in] application_id ApplicationId
840 * @param[out] context \ref ErrorContext
841 */
843
844/**
845 * @brief GetApplicationViewWithPromotionInfo
846 * @note Only available on [8.0.0+].
847 * @param[out] out Output array of \ref NsApplicationViewWithPromotionInfo.
848 * @param[in] application_ids Input array of ApplicationIds.
849 * @param[in] count Size of the input/output arrays in entries.
850 */
852
853/**
854 * @brief RequestDownloadApplicationPrepurchasedRights
855 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
856 * @note Only available on [4.0.0+].
857 * @param[out] a \ref AsyncResult
858 * @param[in] application_id ApplicationId.
859 */
861
862/**
863 * @brief Generates a \ref NsSystemDeliveryInfo using the currently installed SystemUpdate meta.
864 * @note Only available on [4.0.0+].
865 * @param[out] info \ref NsSystemDeliveryInfo
866 */
868
869/**
870 * @brief SelectLatestSystemDeliveryInfo
871 * @note This selects the \ref NsSystemDeliveryInfo with the latest version from sys_list, using minimum versions determined from app_list/state and base_info, etc.
872 * @note Only available on [4.0.0+].
873 * @param[in] sys_list Input array of \ref NsSystemDeliveryInfo.
874 * @param[in] sys_count Size of the sys_list array in entries.
875 * @param[in] base_info \ref NsSystemDeliveryInfo
876 * @param[in] app_list Input array of \ref NsApplicationDeliveryInfo. This can be NULL.
877 * @param[in] app_count Size of the app_list array in entries. This can be 0.
878 * @param[out] index Output index for the selected entry in sys_list, -1 if none found.
879 */
880Result nsSelectLatestSystemDeliveryInfo(const NsSystemDeliveryInfo *sys_list, s32 sys_count, const NsSystemDeliveryInfo *base_info, const NsApplicationDeliveryInfo *app_list, s32 app_count, s32 *index);
881
882/**
883 * @brief VerifyDeliveryProtocolVersion
884 * @note Only available on [4.0.0+].
885 * @param[in] info \ref NsSystemDeliveryInfo
886 */
888
889/**
890 * @brief Generates \ref NsApplicationDeliveryInfo for the specified ApplicationId.
891 * @note Only available on [4.0.0+].
892 * @param[out] info Output array of \ref NsApplicationDeliveryInfo.
893 * @param[in] count Size of the array in entries.
894 * @param[in] application_id ApplicationId
895 * @param[in] attr ApplicationDeliveryAttributeTag bitmask.
896 * @param[out] total_out Total output entries.
897 */
898Result nsGetApplicationDeliveryInfo(NsApplicationDeliveryInfo *info, s32 count, u64 application_id, u32 attr, s32 *total_out);
899
900/**
901 * @brief HasAllContentsToDeliver
902 * @note Only available on [4.0.0+].
903 * @param[in] info Input array of \ref NsApplicationDeliveryInfo.
904 * @param[in] count Size of the array in entries. Must be value 1.
905 * @param[out] out Output flag.
906 */
908
909/**
910 * @brief Both \ref NsApplicationDeliveryInfo are validated, then the application_version in the first/second \ref NsApplicationDeliveryInfo are compared.
911 * @note Only available on [4.0.0+].
912 * @param[in] info0 First input array of \ref NsApplicationDeliveryInfo.
913 * @param[in] count0 Size of the info0 array in entries. Must be value 1.
914 * @param[in] info1 Second input array of \ref NsApplicationDeliveryInfo.
915 * @param[in] count1 Size of the info1 array in entries. Must be value 1.
916 * @param[out] out Comparison result: -1 for less than, 0 for equal, and 1 for higher than.
917 */
919
920/**
921 * @brief CanDeliverApplication
922 * @note Only available on [4.0.0+].
923 * @param[in] info0 First input array of \ref NsApplicationDeliveryInfo.
924 * @param[in] count0 Size of the info0 array in entries. Must be value <=1, when 0 this will return 0 with out set to 0.
925 * @param[in] info1 Second input array of \ref NsApplicationDeliveryInfo.
926 * @param[in] count1 Size of the info1 array in entries. Must be value 1.
927 * @param[out] out Output flag.
928 */
929Result nsCanDeliverApplication(const NsApplicationDeliveryInfo *info0, s32 count0, const NsApplicationDeliveryInfo *info1, s32 count1, bool *out);
930
931/**
932 * @brief ListContentMetaKeyToDeliverApplication
933 * @note Only available on [4.0.0+].
934 * @param[out] meta Output array of \ref NcmContentMetaKey.
935 * @param[in] meta_count Size of the meta array in entries. Must be at least 1, only 1 entry will be returned.
936 * @param[in] meta_index Meta entry index. An output \ref NcmContentMetaKey will not be returned when this value is larger than 0.
937 * @param[in] info Input array of \ref NsApplicationDeliveryInfo.
938 * @param[in] info_count Size of the info array in entries. Must be value 1.
939 * @param[out] total_out Total output entries.
940 */
941Result nsListContentMetaKeyToDeliverApplication(NcmContentMetaKey *meta, s32 meta_count, s32 meta_index, const NsApplicationDeliveryInfo *info, s32 info_count, s32 *total_out);
942
943/**
944 * @brief After validation, this sets the output bool by comparing system-version fields in the \ref NsSystemDeliveryInfo / info-array and with a state field, etc.
945 * @note Only available on [4.0.0+].
946 * @param[in] info Input array of \ref NsApplicationDeliveryInfo.
947 * @param[in] count Size of the info array in entries. Must be value 1.
948 * @param[in] sys_info \ref NsSystemDeliveryInfo
949 * @param[out] out Output flag.
950 */
952
953/**
954 * @brief EstimateRequiredSize
955 * @note Only available on [4.0.0+].
956 * @param[in] meta Input array of \ref NcmContentMetaKey.
957 * @param[in] count Size of the meta array in entries. When less than 1, this will return 0 with out set to 0.
958 * @param[out] out Output size.
959 */
961
962/**
963 * @brief RequestReceiveApplication
964 * @note This is the Application version of \ref nssuControlRequestReceiveSystemUpdate, see the notes for that.
965 * @note Only available on [4.0.0+].
966 * @param[out] a \ref AsyncResult
967 * @param[in] addr Server IPv4 address.
968 * @param[in] port Socket port. qlaunch uses value 55556.
969 * @param[in] application_id ApplicationId
970 * @param[in] meta Input array of \ref NcmContentMetaKey. The ::NcmContentMetaType must match ::NcmContentMetaType_Patch.
971 * @param[in] count Size of the meta array in entries.
972 * @param[in] storage_id \ref NcmStorageId. qlaunch uses ::NcmStorageId_Any.
973 */
974Result nsRequestReceiveApplication(AsyncResult *a, u32 addr, u16 port, u64 application_id, const NcmContentMetaKey *meta, s32 count, NcmStorageId storage_id);
975
976/**
977 * @brief CommitReceiveApplication
978 * @note Only available on [4.0.0+].
979 * @param[in] application_id ApplicationId
980 */
982
983/**
984 * @brief GetReceiveApplicationProgress
985 * @note Only available on [4.0.0+].
986 * @param[in] application_id ApplicationId
987 * @param[out] out \ref NsReceiveApplicationProgress
988 */
990
991/**
992 * @brief RequestSendApplication
993 * @note This is the Application version of \ref nssuRequestSendSystemUpdate, see the notes for that.
994 * @note Only available on [4.0.0+].
995 * @param[out] a \ref AsyncResult
996 * @param[in] addr Client IPv4 address.
997 * @param[in] port Socket port. qlaunch uses value 55556.
998 * @param[in] application_id ApplicationId
999 * @param[in] meta Input array of \ref NcmContentMetaKey. The ::NcmContentMetaType must match ::NcmContentMetaType_Patch.
1000 * @param[in] count Size of the meta array in entries.
1001 */
1002Result nsRequestSendApplication(AsyncResult *a, u32 addr, u16 port, u64 application_id, const NcmContentMetaKey *meta, s32 count);
1003
1004/**
1005 * @brief GetSendApplicationProgress
1006 * @note Only available on [4.0.0+].
1007 * @param[in] application_id ApplicationId
1008 * @param[out] out \ref NsSendApplicationProgress
1009 */
1011
1012/**
1013 * @brief Both \ref NsSystemDeliveryInfo are validated, then the system_update_version in the first/second \ref NsSystemDeliveryInfo are compared.
1014 * @note Only available on [4.0.0+].
1015 * @param[in] info0 First \ref NsSystemDeliveryInfo.
1016 * @param[in] info1 Second \ref NsSystemDeliveryInfo.
1017 * @param[out] out Comparison result: -1 for less than, 0 for equal, and 1 for higher than.
1018 */
1020
1021/**
1022 * @brief ListNotCommittedContentMeta
1023 * @note Only available on [4.0.0+].
1024 * @param[out] meta Output array of \ref NcmContentMetaKey.
1025 * @param[in] count Size of the meta array in entries.
1026 * @param[in] application_id ApplicationId
1027 * @param[in] unk Unknown.
1028 * @param[out] total_out Total output entries.
1029 */
1030Result nsListNotCommittedContentMeta(NcmContentMetaKey *meta, s32 count, u64 application_id, s32 unk, s32 *total_out);
1031
1032/**
1033 * @brief This extracts data from the input array for hashing with SHA256, with validation being done when handling each entry.
1034 * @note Only available on [5.0.0+].
1035 * @param[in] info Input array of \ref NsApplicationDeliveryInfo.
1036 * @param[in] count Size of the array in entries.
1037 * @param[out] out_hash Output 0x20-byte SHA256 hash.
1038 */
1040
1041/**
1042 * @brief GetApplicationTerminateResult
1043 * @note Only available on [6.0.0+].
1044 * @param[in] application_id ApplicationId.
1045 * @param[out] res Output Result.
1046 */
1048
1049/**
1050 * @brief GetApplicationRightsOnClient
1051 * @note Only available on [6.0.0+].
1052 * @param[out] rights Output array of \ref NsApplicationRightsOnClient.
1053 * @param[in] count Size of the rights array in entries. qlaunch uses value 3 for this.
1054 * @param[in] application_id ApplicationId
1055 * @param[in] uid \ref AccountUid, can optionally be all-zero.
1056 * @param[in] flags Flags. Official sw hard-codes this to value 0x3.
1057 * @param[out] total_out Total output entries.
1058 */
1059Result nsGetApplicationRightsOnClient(NsApplicationRightsOnClient *rights, s32 count, u64 application_id, AccountUid uid, u32 flags, s32 *total_out);
1060
1061/**
1062 * @brief RequestNoDownloadRightsErrorResolution
1063 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
1064 * @note Only available on [9.0.0+].
1065 * @param[out] a \ref AsyncValue. The data that can be read from this is u8 NoDownloadRightsErrorResolution.
1066 * @param application_id ApplicationId.
1067 */
1069
1070/**
1071 * @brief RequestResolveNoDownloadRightsError
1072 * @note \ref nifmInitialize must be used prior to this. Before using the cmd, this calls \ref nifmIsAnyInternetRequestAccepted with the output from \ref nifmGetClientId, an error is returned when that returns false.
1073 * @note Only available on [9.0.0+].
1074 * @param[out] a \ref AsyncValue. The data that can be read from this is u8 NoDownloadRightsErrorResolution.
1075 * @param application_id ApplicationId.
1076 */
1078
1079/**
1080 * @brief GetPromotionInfo
1081 * @note Only available on [8.0.0+].
1082 * @param[out] promotion \ref NsPromotionInfo
1083 * @param application_id ApplicationId.
1084 * @param[in] uid \ref AccountUid
1085 */
1086Result nsGetPromotionInfo(NsPromotionInfo *promotion, u64 application_id, AccountUid uid);
1087
1088///@}
1089
1090///@name IDownloadTaskInterface
1091///@{
1092
1093/**
1094 * @brief ClearTaskStatusList
1095 * @note Uses \ref nsGetDownloadTaskInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1096 * @note Only available on [2.0.0+].
1097 */
1099
1100/**
1101 * @brief RequestDownloadTaskList
1102 * @note Uses \ref nsGetDownloadTaskInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1103 * @note Only available on [2.0.0+].
1104 */
1106
1107/**
1108 * @brief RequestEnsureDownloadTask
1109 * @note Uses \ref nsGetDownloadTaskInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1110 * @note Only available on [2.0.0+].
1111 * @param[out] a \ref AsyncResult
1112 */
1114
1115/**
1116 * @brief ListDownloadTaskStatus
1117 * @note Uses \ref nsGetDownloadTaskInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1118 * @note Only available on [2.0.0+].
1119 * @param[out] tasks Output array of \ref NsDownloadTaskStatus.
1120 * @param[in] count Size of the tasks array in entries. A maximum of 0x100 tasks can be stored in state.
1121 * @param[out] total_out Total output entries.
1122 */
1124
1125/**
1126 * @brief RequestDownloadTaskListData
1127 * @note Uses \ref nsGetDownloadTaskInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1128 * @note Only available on [2.0.0+].
1129 * @param[out] a \ref AsyncValue
1130 */
1132
1133/**
1134 * @brief TryCommitCurrentApplicationDownloadTask
1135 * @note Only available on [4.0.0+].
1136 */
1138
1139/**
1140 * @brief EnableAutoCommit
1141 * @note Only available on [4.0.0+].
1142 */
1144
1145/**
1146 * @brief DisableAutoCommit
1147 * @note Only available on [4.0.0+].
1148 */
1150
1151/**
1152 * @brief TriggerDynamicCommitEvent
1153 * @note Only available on [4.0.0+].
1154 */
1156
1157///@}
1158
1159///@name IContentManagementInterface
1160///@{
1161
1162/**
1163 * @brief CalculateApplicationOccupiedSize
1164 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1165 * @param[in] application_id ApplicationId.
1166 * @param[out] out \ref NsApplicationOccupiedSize
1167 */
1169
1170/**
1171 * @brief CheckSdCardMountStatus
1172 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1173 */
1175
1176/**
1177 * @brief Returns the total storage capacity (used + free) from content manager services.
1178 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1179 * @param[in] storage_id \ref NcmStorageId. Must be ::NcmStorageId_SdCard.
1180 * @param[out] size Pointer to output the total storage size to.
1181 */
1183
1184/**
1185 * @brief Returns the available storage capacity from content manager services.
1186 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1187 * @param[in] storage_id \ref NcmStorageId. Must be ::NcmStorageId_SdCard.
1188 * @param[out] size Pointer to output the free storage size to.
1189 */
1191
1192/**
1193 * @brief CountApplicationContentMeta
1194 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1195 * @note Only available on [2.0.0+].
1196 * @param[in] application_id ApplicationId.
1197 * @param[out] out Output count.
1198 */
1200
1201/**
1202 * @brief Gets an listing of \ref NsApplicationContentMetaStatus.
1203 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1204 * @note Only available on [2.0.0+].
1205 * @param[in] application_id ApplicationId.
1206 * @param[in] index Starting entry index.
1207 * @param[out] list Output array of \ref NsApplicationContentMetaStatus.
1208 * @param[in] count Size of the list array in entries.
1209 * @param[out] out_entrycount Total output entries.
1210 */
1211Result nsListApplicationContentMetaStatus(u64 application_id, s32 index, NsApplicationContentMetaStatus* list, s32 count, s32* out_entrycount);
1212
1213/**
1214 * @brief IsAnyApplicationRunning
1215 * @note Only available on [3.0.0+].
1216 * @param[out] out Output flag.
1217 */
1219
1220///@}
1221
1222///@name IRequestServerStopper
1223///@{
1224
1225/**
1226 * @brief Close a \ref NsRequestServerStopper.
1227 * @param r \ref NsRequestServerStopper
1228 */
1230
1231///@}
1232
1233///@name IProgressMonitorForDeleteUserSaveDataAll
1234///@{
1235
1236/**
1237 * @brief Close a \ref NsProgressMonitorForDeleteUserSaveDataAll. When initialized this will use \ref nsProgressMonitorForDeleteUserSaveDataAllIsFinished, throwing errors on failure / when the operation isn't finished (without closing the object).
1238 * @note Cancelling the operation before it's finished is not supported by \ref NsProgressMonitorForDeleteUserSaveDataAll.
1239 * @param p \ref NsProgressMonitorForDeleteUserSaveDataAll
1240 */
1242
1243/**
1244 * @brief GetSystemEvent
1245 * @note The Event must be closed by the user once finished with it.
1246 * @param[out] out_event Output Event with autoclear=false.
1247 */
1249
1250/**
1251 * @brief IsFinished
1252 * @param p \ref NsProgressMonitorForDeleteUserSaveDataAll
1253 * @param[out] out Whether the operation finished.
1254 */
1256
1257/**
1258 * @brief GetResult
1259 * @param p \ref NsProgressMonitorForDeleteUserSaveDataAll
1260 */
1262
1263/**
1264 * @brief GetProgress
1265 * @param p \ref NsProgressMonitorForDeleteUserSaveDataAll
1266 * @param[out] progress Output \ref NsProgressForDeleteUserSaveDataAll.
1267 */
1269
1270///@}
1271
1272///@name IProgressAsyncResult
1273///@{
1274
1275/**
1276 * @brief Close a \ref NsProgressAsyncResult.
1277 * @note When the object is initialized, this uses \ref nsProgressAsyncResultCancel then \ref nsProgressAsyncResultWait with timeout=UINT64_MAX.
1278 * @param a \ref NsProgressAsyncResult
1279 */
1281
1282/**
1283 * @brief Waits for the async operation to finish using the specified timeout.
1284 * @param a \ref NsProgressAsyncResult
1285 * @param[in] timeout Timeout in nanoseconds. UINT64_MAX for no timeout.
1286 */
1288
1289/**
1290 * @brief Gets the Result.
1291 * @note Prior to using the cmd, this uses \ref nsProgressAsyncResultWait with timeout=UINT64_MAX.
1292 * @param a \ref NsProgressAsyncResult
1293 */
1295
1296/**
1297 * @brief Cancels the async operation.
1298 * @note Used automatically by \ref nsProgressAsyncResultClose.
1299 * @param a \ref NsProgressAsyncResult
1300 */
1302
1303/**
1304 * @brief Gets the progress.
1305 * @param a \ref NsProgressAsyncResult
1306 * @param[out] buffer Output buffer.
1307 * @param[in] size Output buffer size.
1308 */
1310
1311/**
1312 * @brief GetDetailResult
1313 * @param a \ref NsProgressAsyncResult
1314 */
1316
1317/**
1318 * @brief Gets the \ref ErrorContext.
1319 * @note Only available on [4.0.0+].
1320 * @param a \ref NsProgressAsyncResult
1321 * @param[out] context \ref ErrorContext
1322 */
1324
1325///@}
1326
1327///@name ns:vm
1328///@{
1329
1330/// Initialize ns:vm. On pre-3.0.0 this must be used with \ref nsInitialize.
1332
1333/// Exit ns:vm.
1334void nsvmExit(void);
1335
1336/// Gets the Service object for ns:vm. This is only initialized on [3.0.0+].
1338
1339Result nsvmNeedsUpdateVulnerability(bool *out);
1341
1342///@}
1343
1344///@name ns:dev
1345///@{
1346
1347/// Initialize ns:dev.
1349
1350/// Initialize ns:dev.
1351void nsdevExit(void);
1352
1353/// Gets the Service object for ns:dev.
1355
1356Result nsdevLaunchProgram(u64* out_pid, const NsLaunchProperties* properties, u32 flags); ///< [1.0.0-9.2.0]
1357Result nsdevTerminateProcess(u64 pid);
1358Result nsdevTerminateProgram(u64 tid); ///< [1.0.0-9.2.0]
1359Result nsdevGetShellEvent(Event* out_event); ///< Autoclear for nsdevShellEvent is always true. [1.0.0-9.2.0]
1361Result nsdevTerminateApplication(void);
1362Result nsdevPrepareLaunchProgramFromHost(NsLaunchProperties* out, const char* path, size_t path_len); ///< [1.0.0-9.2.0]
1363Result nsdevLaunchApplicationForDevelop(u64* out_pid, u64 application_id, u32 flags); ///< [1.0.0-9.2.0]
1364Result nsdevLaunchApplicationFromHost(u64* out_pid, const char* path, size_t path_len, u32 flags); ///< [10.0.0-17.0.1]
1365Result nsdevLaunchApplicationWithStorageIdForDevelop(u64* out_pid, u64 application_id, u32 flags, u8 app_storage_id, u8 patch_storage_id); ///< [1.0.0-17.0.1]
1369
1370///@}
1371
1372///@name ns:su
1373///@{
1374
1375/// Initialize ns:su.
1377
1378/// Exit ns:su.
1379void nssuExit(void);
1380
1381/// Gets the Service object for ns:su.
1383
1384/**
1385 * @brief Gets the \ref NsBackgroundNetworkUpdateState.
1386 * @note Internally this uses nim commands ListSystemUpdateTask and GetSystemUpdateTaskInfo to determine the output state.
1387 * @param[out] out \ref NsBackgroundNetworkUpdateState
1388 */
1390
1391/**
1392 * @brief Opens a \ref NsSystemUpdateControl.
1393 * @note Only 1 \ref NsSystemUpdateControl can be open at a time.
1394 * @param[out] c \ref NsSystemUpdateControl
1395 */
1397
1398/**
1399 * @brief Uses nim ListSystemUpdateTask, then uses the task with DestroySystemUpdateTask if it exists. Then this runs ExFat handling, updates state, and sets the same state flag as \ref nssuRequestBackgroundNetworkUpdate.
1400 * @note Only usable when a \ref NsSystemUpdateControl isn't open.
1401 */
1403
1404/**
1405 * @brief ClearExFatDriverStatusForDebug
1406 */
1408
1409/**
1410 * @brief RequestBackgroundNetworkUpdate
1411 * @note Only usable when a \ref NsSystemUpdateControl isn't open.
1412 */
1414
1415/**
1416 * @brief This checks whether a sysupdate is needed with the input \ref NcmContentMetaKey using NCM commands, if not this will just return 0. Otherwise, this will then run code which is identical to \ref nssuRequestBackgroundNetworkUpdate.
1417 * @note Only usable when a \ref NsSystemUpdateControl isn't open.
1418 * @param[in] key \ref NcmContentMetaKey
1419 */
1421
1422/**
1423 * @brief NotifyExFatDriverDownloadedForDebug
1424 */
1426
1427/**
1428 * @brief Gets an Event which can be signaled by \ref nssuNotifySystemUpdateForContentDelivery.
1429 * @note The Event must be closed by the user once finished with it.
1430 * @param[out] out_event Output Event with autoclear=false.
1431 */
1433
1434/**
1435 * @brief Signals the event returned by \ref nssuGetSystemUpdateNotificationEventForContentDelivery.
1436 */
1438
1439/**
1440 * @brief This does shutdown preparation.
1441 * @note This is used by am-sysmodule, so generally there's no need to use this.
1442 * @note Only available on [3.0.0+].
1443 */
1445
1446/**
1447 * @brief This uses nim ListSystemUpdateTask, then when a task is returned uses it with DestroySystemUpdateTask.
1448 * @note Only available on [4.0.0+].
1449 */
1451
1452/**
1453 * @brief RequestSendSystemUpdate
1454 * @note addr/port are little-endian.
1455 * @note Only available on [4.0.0+].
1456 * @param[out] a \ref AsyncResult
1457 * @param[in] addr Client IPv4 address.
1458 * @param[in] port Socket port. qlaunch uses value 55556.
1459 * @param[in] info \ref NsSystemDeliveryInfo
1460 */
1462
1463/**
1464 * @brief GetSendSystemUpdateProgress
1465 * @note Only available on [4.0.0+].
1466 * @param[out] out \ref NsSystemUpdateProgress
1467 */
1469
1470///@}
1471
1472///@name ISystemUpdateControl
1473///@{
1474
1475/**
1476 * @brief Close a \ref NsSystemUpdateControl.
1477 * @param c \ref NsSystemUpdateControl
1478 */
1480
1481/**
1482 * @brief Gets whether a network sysupdate was downloaded, with install pending.
1483 * @param c \ref NsSystemUpdateControl
1484 * @param[out] out Output flag.
1485 */
1487
1488/**
1489 * @brief RequestCheckLatestUpdate
1490 * @param c \ref NsSystemUpdateControl
1491 * @param[out] a \ref AsyncValue. The data that can be read from this is u8 \ref NsLatestSystemUpdate.
1492 */
1494
1495/**
1496 * @brief RequestDownloadLatestUpdate
1497 * @param c \ref NsSystemUpdateControl
1498 * @param[out] a \ref AsyncResult
1499 */
1501
1502/**
1503 * @brief GetDownloadProgress
1504 * @param c \ref NsSystemUpdateControl
1505 * @param[out] out \ref NsSystemUpdateProgress
1506 */
1508
1509/**
1510 * @brief ApplyDownloadedUpdate
1511 * @param c \ref NsSystemUpdateControl
1512 */
1514
1515/**
1516 * @brief RequestPrepareCardUpdate
1517 * @param c \ref NsSystemUpdateControl
1518 * @param[out] a \ref AsyncResult
1519 */
1521
1522/**
1523 * @brief GetPrepareCardUpdateProgress
1524 * @note \ref nssuControlSetupCardUpdate / \ref nssuControlSetupCardUpdateViaSystemUpdater must have been used at some point prior to using this.
1525 * @param c \ref NsSystemUpdateControl
1526 * @param[out] out \ref NsSystemUpdateProgress
1527 */
1529
1530/**
1531 * @brief HasPreparedCardUpdate
1532 * @note \ref nssuControlSetupCardUpdate / \ref nssuControlSetupCardUpdateViaSystemUpdater must have been used at some point prior to using this.
1533 * @param c \ref NsSystemUpdateControl
1534 * @param[out] out Output flag.
1535 */
1537
1538/**
1539 * @brief ApplyCardUpdate
1540 * @note \ref nssuControlSetupCardUpdate / \ref nssuControlSetupCardUpdateViaSystemUpdater must have been used at some point prior to using this.
1541 * @param c \ref NsSystemUpdateControl
1542 */
1544
1545/**
1546 * @brief Gets the filesize for the specified DownloadedEulaData.
1547 * @note This mounts the Eula SystemData, then uses the file "<mountname>:/<input path>".
1548 * @param c \ref NsSystemUpdateControl
1549 * @param[in] path EulaData path.
1550 * @param[out] filesize Output filesize.
1551 */
1553
1554/**
1555 * @brief Gets the specified DownloadedEulaData.
1556 * @note See the note for \ref nssuControlGetDownloadedEulaDataSize.
1557 * @param c \ref NsSystemUpdateControl
1558 * @param[in] path EulaData path.
1559 * @param[out] buffer Output buffer.
1560 * @param[in] size Size of the output buffer, must be at least the output size from \ref nssuControlGetDownloadedEulaDataSize.
1561 * @param[out] filesize Output filesize.
1562 */
1563Result nssuControlGetDownloadedEulaData(NsSystemUpdateControl *c, const char* path, void* buffer, size_t size, u64 *filesize);
1564
1565/**
1566 * @brief SetupCardUpdate
1567 * @param c \ref NsSystemUpdateControl
1568 * @param[in] buffer TransferMemory buffer, when NULL this is automatically allocated.
1569 * @param[in] size TransferMemory buffer size, see \ref NSSU_CARDUPDATE_TMEM_SIZE_DEFAULT.
1570 */
1572
1573/**
1574 * @brief Gets the filesize for the specified PreparedCardUpdateEulaData.
1575 * @note See the note for \ref nssuControlGetDownloadedEulaDataSize.
1576 * @param c \ref NsSystemUpdateControl
1577 * @param[in] path EulaData path.
1578 * @param[out] filesize Output filesize.
1579 */
1581
1582/**
1583 * @brief Gets the specified PreparedCardUpdateEulaData.
1584 * @note See the note for \ref nssuControlGetDownloadedEulaDataSize.
1585 * @param c \ref NsSystemUpdateControl
1586 * @param[in] path EulaData path.
1587 * @param[out] buffer Output buffer.
1588 * @param[in] size Size of the output buffer, must be at least the output size from \ref nssuControlGetPreparedCardUpdateEulaDataSize.
1589 * @param[out] filesize Output filesize.
1590 */
1591Result nssuControlGetPreparedCardUpdateEulaData(NsSystemUpdateControl *c, const char* path, void* buffer, size_t size, u64 *filesize);
1592
1593/**
1594 * @brief SetupCardUpdateViaSystemUpdater
1595 * @note Same as \ref nssuControlSetupCardUpdate, except this doesn't run the code for fs cmds GetGameCardHandle/GetGameCardUpdatePartitionInfo, and uses fs OpenRegisteredUpdatePartition instead of OpenGameCardFileSystem.
1596 * @note Only available on [4.0.0+].
1597 * @param c \ref NsSystemUpdateControl
1598 * @param[in] buffer TransferMemory buffer, when NULL this is automatically allocated.
1599 * @param[in] size TransferMemory buffer size, see \ref NSSU_CARDUPDATE_TMEM_SIZE_DEFAULT.
1600 */
1602
1603/**
1604 * @brief HasReceived
1605 * @note Only available on [4.0.0+].
1606 * @param c \ref NsSystemUpdateControl
1607 * @param[out] out Output flag.
1608 */
1610
1611/**
1612 * @brief RequestReceiveSystemUpdate
1613 * @note addr/port are little-endian.
1614 * @note Only available on [4.0.0+].
1615 * @param c \ref NsSystemUpdateControl
1616 * @param[out] a \ref AsyncResult
1617 * @param[in] addr Server IPv4 address.
1618 * @param[in] port Socket port. qlaunch uses value 55556.
1619 * @param[in] info \ref NsSystemDeliveryInfo
1620 */
1622
1623/**
1624 * @brief GetReceiveProgress
1625 * @note Only available on [4.0.0+].
1626 * @param c \ref NsSystemUpdateControl
1627 * @param[out] out \ref NsSystemUpdateProgress
1628 */
1630
1631/**
1632 * @brief ApplyReceivedUpdate
1633 * @note Only available on [4.0.0+].
1634 * @param c \ref NsSystemUpdateControl
1635 */
1637
1638/**
1639 * @brief Gets the filesize for the specified ReceivedEulaData.
1640 * @note See the note for \ref nssuControlGetDownloadedEulaDataSize.
1641 * @note Only available on [4.0.0+].
1642 * @param c \ref NsSystemUpdateControl
1643 * @param[in] path EulaData path.
1644 * @param[out] filesize Output filesize.
1645 */
1647
1648/**
1649 * @brief Gets the specified ReceivedEulaData.
1650 * @note See the note for \ref nssuControlGetDownloadedEulaDataSize.
1651 * @note Only available on [4.0.0+].
1652 * @param c \ref NsSystemUpdateControl
1653 * @param[in] path EulaData path.
1654 * @param[out] buffer Output buffer.
1655 * @param[in] size Size of the output buffer, must be at least the output size from \ref nssuControlGetReceivedEulaDataSize.
1656 * @param[out] filesize Output filesize.
1657 */
1658Result nssuControlGetReceivedEulaData(NsSystemUpdateControl *c, const char* path, void* buffer, size_t size, u64 *filesize);
1659
1660/**
1661 * @brief Does setup for ReceiveSystemUpdate by using the same nim cmds as \ref nssuDestroySystemUpdateTask.
1662 * @note qlaunch uses this before \ref nssuControlRequestReceiveSystemUpdate.
1663 * @note Only available on [4.0.0+].
1664 * @param c \ref NsSystemUpdateControl
1665 */
1667
1668/**
1669 * @brief RequestCheckLatestUpdateIncludesRebootlessUpdate
1670 * @note Only available on [6.0.0+].
1671 * @param c \ref NsSystemUpdateControl
1672 * @param[out] a \ref AsyncValue
1673 */
1675
1676///@}
1677
FsSaveDataSpaceId
SaveDataSpaceId.
Definition fs.h:205
NcmStorageId
StorageId.
Definition ncm_types.h:12
Result nsResetToFactorySettingsWithPlatformRegionAuthentication(void)
ResetToFactorySettingsWithPlatformRegionAuthentication.
Result nssuControlGetPrepareCardUpdateProgress(NsSystemUpdateControl *c, NsSystemUpdateProgress *out)
GetPrepareCardUpdateProgress.
void nsdevExit(void)
Initialize ns:dev.
Result nsGetApplicationView(NsApplicationView *views, const u64 *application_ids, s32 count)
GetApplicationView.
Result nsRequestVerifyAddOnContentsRights(NsProgressAsyncResult *a, u64 application_id)
RequestVerifyAddOnContentsRights.
Result nsdevLaunchApplicationWithStorageIdForDevelop(u64 *out_pid, u64 application_id, u32 flags, u8 app_storage_id, u8 patch_storage_id)
[1.0.0-17.0.1]
Result nsEnsureGameCardAccess(void)
EnsureGameCardAccess.
Result nsIsApplicationUpdateRequested(u64 application_id, bool *flag, u32 *out)
IsApplicationUpdateRequested.
Result nssuControlGetDownloadProgress(NsSystemUpdateControl *c, NsSystemUpdateProgress *out)
GetDownloadProgress.
Result nsGetStorageSize(NcmStorageId storage_id, s64 *total_space_size, s64 *free_space_size)
Temporarily mounts the specified fs ContentStorage, then uses fs GetTotalSpaceSize/GetFreeSpaceSize w...
Result nssuInitialize(void)
Initialize ns:su.
void nssuControlClose(NsSystemUpdateControl *c)
Close a NsSystemUpdateControl.
Result nsIsAnyApplicationRunning(bool *out)
IsAnyApplicationRunning.
Result nssuControlSetupToReceiveSystemUpdate(NsSystemUpdateControl *c)
Does setup for ReceiveSystemUpdate by using the same nim cmds as nssuDestroySystemUpdateTask.
Result nssuControlApplyDownloadedUpdate(NsSystemUpdateControl *c)
ApplyDownloadedUpdate.
Service * nsGetServiceSession_GetterInterface(void)
Gets the Service object for the actual ns:* service session. Only initialized on [3....
Result nssuGetSendSystemUpdateProgress(NsSystemUpdateProgress *out)
GetSendSystemUpdateProgress.
Result nsRequestDownloadTaskList(void)
RequestDownloadTaskList.
Result nsGetReceiveApplicationProgress(u64 application_id, NsReceiveApplicationProgress *out)
GetReceiveApplicationProgress.
Result nsRequestVerifyApplication(NsProgressAsyncResult *a, u64 application_id, u32 unk, void *buffer, size_t size)
RequestVerifyApplication.
Result nsGetSendApplicationProgress(u64 application_id, NsSendApplicationProgress *out)
GetSendApplicationProgress.
Result nsGetReadOnlyApplicationRecordInterface(Service *srv_out)
Gets the Service object for IReadOnlyApplicationRecordInterface via the cmd for that.
Result nssuControlGetReceivedEulaData(NsSystemUpdateControl *c, const char *path, void *buffer, size_t size, u64 *filesize)
Gets the specified ReceivedEulaData.
Result nsRequestRegisterGameCard(AsyncResult *a, AccountUid uid, u64 application_id, s32 inval)
RequestRegisterGameCard.
Result nsdevGetShellEventInfo(NsShellEventInfo *out)
[1.0.0-9.2.0]
Result nsGetApplicationControlData2(NsApplicationControlSource source, u64 application_id, NsApplicationControlData *buffer, size_t size, u8 flag1, u8 flag2, u64 *actual_size, u32 *unk)
Gets the NsApplicationControlData for the specified application.
Result nsCleanupUnavailableAddOnContents(u64 application_id, AccountUid uid)
CleanupUnavailableAddOnContents.
Result nsGetSystemDeliveryInfo(NsSystemDeliveryInfo *info)
Generates a NsSystemDeliveryInfo using the currently installed SystemUpdate meta.
Result nsListApplicationIcon(AsyncValue *a, NsApplicationControlSource source, const u64 *application_ids, s32 count, void *buffer, size_t size)
ListApplicationIcon.
NsSystemUpdateProgress NsReceiveApplicationProgress
ReceiveApplicationProgress. Same as NsSystemUpdateProgress, except cmds which return this will return...
Definition ns.h:175
Result nsGetApplicationDeliveryInfo(NsApplicationDeliveryInfo *info, s32 count, u64 application_id, u32 attr, s32 *total_out)
Generates NsApplicationDeliveryInfo for the specified ApplicationId.
Result nsClearTaskStatusList(void)
ClearTaskStatusList.
Result nsRequestLinkDevice(AsyncResult *a, AccountUid uid)
RequestLinkDevice.
Result nsResetToFactorySettingsWithPlatformRegion(void)
ResetToFactorySettingsWithPlatformRegion.
Result nsCompareSystemDeliveryInfo(const NsSystemDeliveryInfo *info0, const NsSystemDeliveryInfo *info1, s32 *out)
Both NsSystemDeliveryInfo are validated, then the system_update_version in the first/second NsSystemD...
Result nssuControlGetPreparedCardUpdateEulaData(NsSystemUpdateControl *c, const char *path, void *buffer, size_t size, u64 *filesize)
Gets the specified PreparedCardUpdateEulaData.
Result nsResumeAll(void)
ResumeAll.
Result nsCountApplicationContentMeta(u64 application_id, s32 *out)
CountApplicationContentMeta.
Result nssuControlRequestCheckLatestUpdate(NsSystemUpdateControl *c, AsyncValue *a)
RequestCheckLatestUpdate.
Result nsMoveApplicationEntity(u64 application_id, NcmStorageId storage_id)
MoveApplicationEntity.
Result nsResumeApplicationDownload(u64 application_id)
ResumeApplicationDownload.
Result nssuNotifySystemUpdateForContentDelivery(void)
Signals the event returned by nssuGetSystemUpdateNotificationEventForContentDelivery.
Result nsdevTerminateProgram(u64 tid)
[1.0.0-9.2.0]
Result nsGetGameCardUpdateDetectionEvent(Event *out_event)
GetGameCardUpdateDetectionEvent.
Result nsRequestNoDownloadRightsErrorResolution(AsyncValue *a, u64 application_id)
RequestNoDownloadRightsErrorResolution.
Result nsIsAnyApplicationEntityInstalled(u64 application_id, bool *out)
IsAnyApplicationEntityInstalled.
Result nsDeleteSaveData(FsSaveDataSpaceId save_data_space_id, u64 save_data_id)
DeleteSaveData.
Result nsCleanupSdCard(void)
CleanupSdCard.
Result nsGetApplicationManagerInterface(Service *srv_out)
Gets the Service object for IApplicationManagerInterface via the cmd for that.
Result nsProgressAsyncResultCancel(NsProgressAsyncResult *a)
Cancels the async operation.
Result nsCheckSdCardMountStatus(void)
CheckSdCardMountStatus.
Result nsUnregisterNetworkServiceAccountWithUserSaveDataDeletion(AccountUid uid)
UnregisterNetworkServiceAccountWithUserSaveDataDeletion.
Service * nssuGetServiceSession(void)
Gets the Service object for ns:su.
Result nsCalculateApplicationOccupiedSize(u64 application_id, NsApplicationOccupiedSize *out)
CalculateApplicationOccupiedSize.
void nsProgressAsyncResultClose(NsProgressAsyncResult *a)
Close a NsProgressAsyncResult.
Result nsGetApplicationRecordUpdateSystemEvent(Event *out_event)
GetApplicationRecordUpdateSystemEvent.
Result nssuControlApplyReceivedUpdate(NsSystemUpdateControl *c)
ApplyReceivedUpdate.
void nsExit(void)
Exit ns services.
Result nsGetLastSdCardMountUnexpectedResult(void)
GetLastSdCardMountUnexpectedResult.
Result nsdevGetRunningApplicationProcessIdForDevelop(u64 *out_pid)
[6.0.0+]
NsApplicationControlSource
ApplicationControlSource.
Definition ns.h:29
@ NsApplicationControlSource_Storage
Returns data from storage if not present in cache.
Definition ns.h:31
@ NsApplicationControlSource_CacheOnly
Returns data from cache.
Definition ns.h:30
@ NsApplicationControlSource_StorageOnly
Returns data from storage without using cache.
Definition ns.h:32
Result nsProgressAsyncResultGet(NsProgressAsyncResult *a)
Gets the Result.
Result nssuDestroySystemUpdateTask(void)
This uses nim ListSystemUpdateTask, then when a task is returned uses it with DestroySystemUpdateTask...
Result nsdevSetCurrentApplicationRightsEnvironmentCanBeActiveForDevelop(bool can_be_active)
[6.0.0+]
Result nsDeleteRedundantApplicationEntity(void)
DeleteRedundantApplicationEntity.
Result nssuControlRequestPrepareCardUpdate(NsSystemUpdateControl *c, AsyncResult *a)
RequestPrepareCardUpdate.
Result nsProgressAsyncResultGetProgress(NsProgressAsyncResult *a, void *buffer, size_t size)
Gets the progress.
Result nsDeleteUserSaveDataAll(NsProgressMonitorForDeleteUserSaveDataAll *p, AccountUid uid)
DeleteUserSaveDataAll.
Result nsGetApplicationDesiredLanguage(NacpStruct *nacp, NacpLanguageEntry **langentry)
GetApplicationDesiredLanguage.
NsBackgroundNetworkUpdateState
BackgroundNetworkUpdateState.
Definition ns.h:36
@ NsBackgroundNetworkUpdateState_None
No sysupdate task exists.
Definition ns.h:37
@ NsBackgroundNetworkUpdateState_Downloading
Sysupdate download in progress.
Definition ns.h:38
@ NsBackgroundNetworkUpdateState_Ready
Sysupdate ready, pending install.
Definition ns.h:39
Result nssuControlGetReceiveProgress(NsSystemUpdateControl *c, NsSystemUpdateProgress *out)
GetReceiveProgress.
Result nsIsApplicationEntityMovable(u64 application_id, NcmStorageId storage_id, bool *out)
IsApplicationEntityMovable.
Result nsGetApplicationViewDeprecated(NsApplicationViewDeprecated *views, const u64 *application_ids, s32 count)
GetApplicationViewDeprecated.
Result nsvmInitialize(void)
Initialize ns:vm. On pre-3.0.0 this must be used with nsInitialize.
Result nsSelectLatestSystemDeliveryInfo(const NsSystemDeliveryInfo *sys_list, s32 sys_count, const NsSystemDeliveryInfo *base_info, const NsApplicationDeliveryInfo *app_list, s32 app_count, s32 *index)
SelectLatestSystemDeliveryInfo.
Result nsProgressMonitorForDeleteUserSaveDataAllGetResult(NsProgressMonitorForDeleteUserSaveDataAll *p)
GetResult.
Result nsProgressAsyncResultGetErrorContext(NsProgressAsyncResult *a, ErrorContext *context)
Gets the ErrorContext.
Result nsListDownloadTaskStatus(NsDownloadTaskStatus *tasks, s32 count, s32 *total_out)
ListDownloadTaskStatus.
Result nsNeedsSystemUpdateToDeliverApplication(const NsApplicationDeliveryInfo *info, s32 count, const NsSystemDeliveryInfo *sys_info, bool *out)
After validation, this sets the output bool by comparing system-version fields in the NsSystemDeliver...
Result nssuControlSetupCardUpdate(NsSystemUpdateControl *c, void *buffer, size_t size)
SetupCardUpdate.
Result nsListNotCommittedContentMeta(NcmContentMetaKey *meta, s32 count, u64 application_id, s32 unk, s32 *total_out)
ListNotCommittedContentMeta.
Result nsProgressMonitorForDeleteUserSaveDataAllGetProgress(NsProgressMonitorForDeleteUserSaveDataAll *p, NsProgressForDeleteUserSaveDataAll *progress)
GetProgress.
Result nsCanDeliverApplication(const NsApplicationDeliveryInfo *info0, s32 count0, const NsApplicationDeliveryInfo *info1, s32 count1, bool *out)
CanDeliverApplication.
Result nssuControlHasReceived(NsSystemUpdateControl *c, bool *out)
HasReceived.
Result nsCancelApplicationDownload(u64 application_id)
CancelApplicationDownload.
Result nsGetLastGameCardMountFailureResult(void)
GetLastGameCardMountFailureResult.
NsShellEvent
ShellEvent.
Definition ns.h:20
@ NsShellEvent_Debug
Debug.
Definition ns.h:25
@ NsShellEvent_Crash
Crash.
Definition ns.h:24
@ NsShellEvent_Exit
Exit.
Definition ns.h:22
@ NsShellEvent_Start
Start.
Definition ns.h:23
@ NsShellEvent_None
None.
Definition ns.h:21
Result nsRequestGameCardRegistrationGoldPoint(AsyncValue *a, AccountUid uid, u64 application_id)
RequestGameCardRegistrationGoldPoint.
Result nssuControlRequestCheckLatestUpdateIncludesRebootlessUpdate(NsSystemUpdateControl *c, AsyncValue *a)
RequestCheckLatestUpdateIncludesRebootlessUpdate.
Result nsGetReadOnlyApplicationControlDataInterface(Service *srv_out)
Gets the Service object for IReadOnlyApplicationControlDataInterface via the cmd for that.
Result nsResetToFactorySettingsWithoutUserSaveData(void)
ResetToFactorySettingsWithoutUserSaveData.
Result nsHasAllContentsToDeliver(const NsApplicationDeliveryInfo *info, s32 count, bool *out)
HasAllContentsToDeliver.
NsSystemUpdateProgress NsSendApplicationProgress
SendApplicationProgress. Same as NsSystemUpdateProgress, except cmds which return this will return ac...
Definition ns.h:178
Result nsClearApplicationTerminateResult(u64 application_id)
ClearApplicationTerminateResult.
Result nsGetDocumentInterface(Service *srv_out)
Gets the Service object for IDocumentInterface via the cmd for that.
Result nsGetApplicationDeliveryInfoHash(const NsApplicationDeliveryInfo *info, s32 count, u8 *out_hash)
This extracts data from the input array for hashing with SHA256, with validation being done when hand...
Result nsGetApplicationVersionInterface(Service *srv_out)
Gets the Service object for IApplicationVersionInterface via the cmd for that.
Result nssuNotifyBackgroundNetworkUpdate(const NcmContentMetaKey *key)
This checks whether a sysupdate is needed with the input NcmContentMetaKey using NCM commands,...
Result nsRequestEnsureDownloadTask(AsyncResult *a)
RequestEnsureDownloadTask.
Result nsGetFreeSpaceSize(NcmStorageId storage_id, s64 *size)
Returns the available storage capacity from content manager services.
Result nsdevLaunchProgram(u64 *out_pid, const NsLaunchProperties *properties, u32 flags)
[1.0.0-9.2.0]
Result nssuControlGetPreparedCardUpdateEulaDataSize(NsSystemUpdateControl *c, const char *path, u64 *filesize)
Gets the filesize for the specified PreparedCardUpdateEulaData.
Result nssuControlGetReceivedEulaDataSize(NsSystemUpdateControl *c, const char *path, u64 *filesize)
Gets the filesize for the specified ReceivedEulaData.
Service * nsdevGetServiceSession(void)
Gets the Service object for ns:dev.
Result nsGetFactoryResetInterface(Service *srv_out)
Gets the Service object for IFactoryResetInterface via the cmd for that.
Result nsGetLastSdCardFormatUnexpectedResult(void)
GetLastSdCardFormatUnexpectedResult.
Result nsGetECommerceInterface(Service *srv_out)
Gets the Service object for IECommerceInterface via the cmd for that.
Result nsListApplicationRecord(NsApplicationRecord *records, s32 count, s32 entry_offset, s32 *out_entrycount)
Gets an listing of NsApplicationRecord.
Result nsGetTotalSpaceSize(NcmStorageId storage_id, s64 *size)
Returns the total storage capacity (used + free) from content manager services.
Result nsCalculateApplicationDownloadRequiredSize(u64 application_id, NcmStorageId *storage_id, s64 *size)
CalculateApplicationApplyDeltaRequiredSize.
Result nsvmGetSafeSystemVersion(NcmContentMetaKey *out)
[4.0.0+]
Result nsRequestCheckGameCardRegistration(AsyncResult *a, u64 application_id)
RequestCheckGameCardRegistration.
Result nsEnableAutoCommit(void)
EnableAutoCommit.
Result nsRequestUnlinkDevice(AsyncResult *a, AccountUid uid)
RequestUnlinkDevice.
Result nsGetDownloadTaskInterface(Service *srv_out)
Gets the Service object for IDownloadTaskInterface via the cmd for that.
Result nsRequestDownloadApplicationControlData(AsyncResult *a, u64 application_id)
RequestDownloadApplicationControlData.
Result nsDeleteApplicationCompletely(u64 application_id)
DeleteApplicationCompletely.
Service * nsGetServiceSession_ApplicationManagerInterface(void)
Gets the Service object for IApplicationManagerInterface. Only initialized on pre-3....
Result nsDisableAutoCommit(void)
DisableAutoCommit.
Result nsListContentMetaKeyToDeliverApplication(NcmContentMetaKey *meta, s32 meta_count, s32 meta_index, const NsApplicationDeliveryInfo *info, s32 info_count, s32 *total_out)
ListContentMetaKeyToDeliverApplication.
Result nsProgressMonitorForDeleteUserSaveDataAllClose(NsProgressMonitorForDeleteUserSaveDataAll *p)
Close a NsProgressMonitorForDeleteUserSaveDataAll.
Result nsResetToFactorySettings(void)
ResetToFactorySettings.
Result nssuControlRequestReceiveSystemUpdate(NsSystemUpdateControl *c, AsyncResult *a, u32 addr, u16 port, NsSystemDeliveryInfo *info)
RequestReceiveSystemUpdate.
Result nssuOpenSystemUpdateControl(NsSystemUpdateControl *c)
Opens a NsSystemUpdateControl.
Result nssuControlSetupCardUpdateViaSystemUpdater(NsSystemUpdateControl *c, void *buffer, size_t size)
SetupCardUpdateViaSystemUpdater.
Result nsResetToFactorySettingsForRefurbishment(void)
ResetToFactorySettingsForRefurbishment.
Result nsListApplicationTitle(AsyncValue *a, NsApplicationControlSource source, const u64 *application_ids, s32 count, void *buffer, size_t size)
ListApplicationTitle.
Result nsDeleteApplicationEntity(u64 application_id)
DeleteApplicationEntity.
Result nsGetAccountProxyInterface(Service *srv_out)
Gets the Service object for IAccountProxyInterface via the cmd for that.
Result nsEnableApplicationAutoDelete(u64 application_id)
EnableApplicationAutoDelete.
Result nsDisableApplicationAutoDelete(u64 application_id)
DisableApplicationAutoDelete.
Result nssuRequestBackgroundNetworkUpdate(void)
RequestBackgroundNetworkUpdate.
Result nsRequestDownloadTaskListData(AsyncValue *a)
RequestDownloadTaskListData.
void nsvmExit(void)
Exit ns:vm.
Result nssuRequestSendSystemUpdate(AsyncResult *a, u32 addr, u16 port, NsSystemDeliveryInfo *info)
RequestSendSystemUpdate.
Result nsCompareApplicationDeliveryInfo(const NsApplicationDeliveryInfo *info0, s32 count0, const NsApplicationDeliveryInfo *info1, s32 count1, s32 *out)
Both NsApplicationDeliveryInfo are validated, then the application_version in the first/second NsAppl...
Result nsResumeApplicationApplyDelta(u64 application_id)
ResumeApplicationApplyDelta.
Result nsRequestApplicationUpdateInfo(AsyncValue *a, u64 application_id)
RequestApplicationUpdateInfo.
Result nsRequestDownloadApplicationPrepurchasedRights(AsyncResult *a, u64 application_id)
RequestDownloadApplicationPrepurchasedRights.
Result nsGetSdCardMountStatusChangedEvent(Event *out_event)
GetSdCardMountStatusChangedEvent.
Result nsFormatSdCard(void)
FormatSdCard.
Result nssuPrepareShutdown(void)
This does shutdown preparation.
Result nsGetGameCardMountFailureEvent(Event *out_event)
GetGameCardMountFailureEvent.
Result nsDeleteUserSystemSaveData(AccountUid uid, u64 system_save_data_id)
DeleteUserSystemSaveData.
Result nsdevIsSystemMemoryResourceLimitBoosted(bool *out)
[6.0.0-8.1.0]
Result nsCommitReceiveApplication(u64 application_id)
CommitReceiveApplication.
Result nssuControlGetDownloadedEulaDataSize(NsSystemUpdateControl *c, const char *path, u64 *filesize)
Gets the filesize for the specified DownloadedEulaData.
void nsRequestServerStopperClose(NsRequestServerStopper *r)
Close a NsRequestServerStopper.
Result nsInitialize(void)
Initialize ns services. Uses ns:am on pre-3.0.0, ns:am2 on [3.0.0+].
Result nsListApplicationIdOnGameCard(u64 *application_ids, s32 count, s32 *total_out)
ListApplicationIdOnGameCard.
Result nsGetPromotionInfo(NsPromotionInfo *promotion, u64 application_id, AccountUid uid)
GetPromotionInfo.
Result nsCancelApplicationApplyDelta(u64 application_id)
CancelApplicationApplyDelta.
Result nssuControlHasDownloaded(NsSystemUpdateControl *c, bool *out)
Gets whether a network sysupdate was downloaded, with install pending.
Result nsTouchApplication(u64 application_id)
TouchApplication.
Result nsRequestReceiveApplication(AsyncResult *a, u32 addr, u16 port, u64 application_id, const NcmContentMetaKey *meta, s32 count, NcmStorageId storage_id)
RequestReceiveApplication.
Result nssuControlRequestDownloadLatestUpdate(NsSystemUpdateControl *c, AsyncResult *a)
RequestDownloadLatestUpdate.
Result nssuNotifyExFatDriverDownloadedForDebug(void)
NotifyExFatDriverDownloadedForDebug.
Result nssuControlApplyCardUpdate(NsSystemUpdateControl *c)
ApplyCardUpdate.
Result nsSetApplicationTerminateResult(u64 application_id, Result res)
SetApplicationTerminateResult.
Result nsGetApplicationControlData(NsApplicationControlSource source, u64 application_id, NsApplicationControlData *buffer, size_t size, u64 *actual_size)
Gets the NsApplicationControlData for the specified application.
Result nsEstimateSizeToMove(u8 *storage_ids, s32 count, NcmStorageId storage_id, u32 flags, u64 application_id, s64 *out)
EstimateSizeToMove.
Result nssuNotifyExFatDriverRequired(void)
Uses nim ListSystemUpdateTask, then uses the task with DestroySystemUpdateTask if it exists.
Result nssuControlHasPreparedCardUpdate(NsSystemUpdateControl *c, bool *out)
HasPreparedCardUpdate.
Result nsProgressAsyncResultGetDetailResult(NsProgressAsyncResult *a)
GetDetailResult.
Result nsdevLaunchApplicationForDevelop(u64 *out_pid, u64 application_id, u32 flags)
[1.0.0-9.2.0]
Result nsEstimateRequiredSize(const NcmContentMetaKey *meta, s32 count, s64 *out)
EstimateRequiredSize.
Result nsTryCommitCurrentApplicationDownloadTask(void)
TryCommitCurrentApplicationDownloadTask.
Result nsTriggerDynamicCommitEvent(void)
TriggerDynamicCommitEvent.
Result nsdevGetShellEvent(Event *out_event)
Autoclear for nsdevShellEvent is always true. [1.0.0-9.2.0].
Result nsWithdrawApplicationUpdateRequest(u64 application_id)
WithdrawApplicationUpdateRequest.
Result nsUnregisterNetworkServiceAccount(AccountUid uid)
UnregisterNetworkServiceAccount.
NsLatestSystemUpdate
LatestSystemUpdate.
Definition ns.h:43
@ NsLatestSystemUpdate_UpToDate
UpToDate.
Definition ns.h:44
@ NsLatestSystemUpdate_NeedsDownload
NeedsDownload.
Definition ns.h:46
@ NsLatestSystemUpdate_Downloaded
Downloaded.
Definition ns.h:45
Result nsGetApplicationViewDownloadErrorContext(u64 application_id, ErrorContext *context)
GetApplicationViewDownloadErrorContext.
Result nsIsGameCardInserted(bool *out)
IsGameCardInserted.
Result nsListApplicationContentMetaStatus(u64 application_id, s32 index, NsApplicationContentMetaStatus *list, s32 count, s32 *out_entrycount)
Gets an listing of NsApplicationContentMetaStatus.
Result nsProgressAsyncResultWait(NsProgressAsyncResult *a, u64 timeout)
Waits for the async operation to finish using the specified timeout.
Result nsGetApplicationViewWithPromotionInfo(NsApplicationViewWithPromotionInfo *out, const u64 *application_ids, s32 count)
GetApplicationViewWithPromotionInfo.
Result nsProgressMonitorForDeleteUserSaveDataAllIsFinished(NsProgressMonitorForDeleteUserSaveDataAll *p, bool *out)
IsFinished.
Result nsGetApplicationTerminateResult(u64 application_id, Result *res)
GetApplicationTerminateResult.
Result nssuGetBackgroundNetworkUpdateState(NsBackgroundNetworkUpdateState *out)
Gets the NsBackgroundNetworkUpdateState.
Result nsRequestResolveNoDownloadRightsError(AsyncValue *a, u64 application_id)
RequestResolveNoDownloadRightsError.
Result nsRequestSendApplication(AsyncResult *a, u32 addr, u16 port, u64 application_id, const NcmContentMetaKey *meta, s32 count)
RequestSendApplication.
Service * nsvmGetServiceSession(void)
Gets the Service object for ns:vm. This is only initialized on [3.0.0+].
Result nsdevInitialize(void)
Initialize ns:dev.
Result nsNeedsSystemUpdateToFormatSdCard(bool *out)
NeedsSystemUpdateToFormatSdCard.
Result nsGetContentManagementInterface(Service *srv_out)
Gets the Service object for IContentManagementInterface via the cmd for that.
Result nsRequestUpdateApplication2(AsyncResult *a, u64 application_id)
RequestUpdateApplication2.
void nssuExit(void)
Exit ns:su.
Result nsCalculateApplicationApplyDeltaRequiredSize(u64 application_id, NcmStorageId *storage_id, s64 *size)
CalculateApplicationApplyDeltaRequiredSize.
Result nsGetRequestServerStopper(NsRequestServerStopper *r)
Opens a NsRequestServerStopper.
Result nssuControlGetDownloadedEulaData(NsSystemUpdateControl *c, const char *path, void *buffer, size_t size, u64 *filesize)
Gets the specified DownloadedEulaData.
Result nssuGetSystemUpdateNotificationEventForContentDelivery(Event *out_event)
Gets an Event which can be signaled by nssuNotifySystemUpdateForContentDelivery.
Result nsRequestSyncRights(AsyncResult *a)
RequestSyncRights.
Result nsCheckApplicationLaunchVersion(u64 application_id)
CheckApplicationLaunchVersion.
Result nsdevPrepareLaunchProgramFromHost(NsLaunchProperties *out, const char *path, size_t path_len)
[1.0.0-9.2.0]
Result nsProgressMonitorForDeleteUserSaveDataAllGetSystemEvent(NsProgressMonitorForDeleteUserSaveDataAll *p, Event *out_event)
GetSystemEvent.
Result nsVerifyDeliveryProtocolVersion(const NsSystemDeliveryInfo *info)
VerifyDeliveryProtocolVersion.
Result nsGetApplicationRightsOnClient(NsApplicationRightsOnClient *rights, s32 count, u64 application_id, AccountUid uid, u32 flags, s32 *total_out)
GetApplicationRightsOnClient.
Result nssuClearExFatDriverStatusForDebug(void)
ClearExFatDriverStatusForDebug.
Result nsdevLaunchApplicationFromHost(u64 *out_pid, const char *path, size_t path_len, u32 flags)
[10.0.0-17.0.1]
Result nsGetDynamicRightsInterface(Service *srv_out)
Gets the Service object for IDynamicRightsInterface via the cmd for that.
Account UserId.
Definition acc.h:25
AsyncResult.
Definition async.h:20
AsyncValue.
Definition async.h:14
Error context.
Definition error.h:38
Kernel-mode event structure.
Definition event.h:13
Language entry. These strings are UTF-8.
Definition nacp.h:10
ns ApplicationControlProperty
Definition nacp.h:34
ContentMetaKey.
Definition ncm_types.h:79
NsApplicationContentMetaStatus.
Definition ns.h:83
u8 storageID
NcmStorageId
Definition ns.h:85
u64 application_id
ApplicationId.
Definition ns.h:89
u32 version
Application version.
Definition ns.h:88
u8 rights_check
RightsCheck.
Definition ns.h:86
u8 meta_type
NcmContentMetaType
Definition ns.h:84
u8 reserved
Reserved.
Definition ns.h:87
ApplicationControlData.
Definition ns.h:72
NacpStruct nacp
NacpStruct
Definition ns.h:73
ApplicationDeliveryInfo.
Definition ns.h:207
u32 required_system_version
RequiredSystemVersion.
Definition ns.h:214
u32 application_version
ApplicationVersion.
Definition ns.h:212
u8 proper_program_exists
[20.0.0+] ProperProgramExists.
Definition ns.h:217
u32 required_application_version
RequiredApplicationVersion.
Definition ns.h:213
u8 platform
[20.0.0+] NcmContentMetaPlatform
Definition ns.h:216
u32 application_delivery_protocol_version
ApplicationDeliveryProtocolVersion.
Definition ns.h:209
u64 application_id
ApplicationId.
Definition ns.h:211
u32 attributes
Bitfield of ApplicationDeliveryAttributeTag.
Definition ns.h:215
ApplicationOccupiedSize.
Definition ns.h:78
ApplicationRecord.
Definition ns.h:93
u8 attributes
Attributes.
Definition ns.h:96
u64 last_updated
LastUpdated.
Definition ns.h:98
u8 last_event
LastEvent.
Definition ns.h:95
u64 application_id
ApplicationId.
Definition ns.h:94
NsApplicationRightsOnClient.
Definition ns.h:224
AccountUid uid
AccountUid
Definition ns.h:226
u64 application_id
ApplicationId.
Definition ns.h:225
u8 flags_x18
qlaunch uses bit0-bit4 and bit7 from here.
Definition ns.h:227
u8 flags_x19
qlaunch uses bit0 from here.
Definition ns.h:228
ApplicationViewDeprecated. The below comments are for the NsApplicationView to NsApplicationViewDepre...
Definition ns.h:107
u16 unk_x24
Same as NsApplicationView::unk_x24.
Definition ns.h:113
u32 unk_x38
Same as NsApplicationView::unk_x40.
Definition ns.h:116
u32 flags
Same as NsApplicationView::flags.
Definition ns.h:110
u64 application_id
Same as NsApplicationView::application_id.
Definition ns.h:108
u32 unk_x20
Same as NsApplicationView::unk_x20.
Definition ns.h:112
u8 unk_x3c
Same as NsApplicationView::unk_x44.
Definition ns.h:117
NsApplicationViewWithPromotionInfo.
Definition ns.h:148
NsApplicationView view
NsApplicationView
Definition ns.h:149
NsPromotionInfo promotion
NsPromotionInfo
Definition ns.h:150
ApplicationView.
Definition ns.h:122
u16 unk_x24
Unknown.
Definition ns.h:128
u8 unk_x44
Unknown.
Definition ns.h:133
u32 unk_x20
Unknown.
Definition ns.h:127
u64 application_id
ApplicationId.
Definition ns.h:123
u32 flags
Flags.
Definition ns.h:125
u32 unk_x40
Unknown.
Definition ns.h:132
DownloadTaskStatus.
Definition ns.h:233
EulaDataPath.
Definition ns.h:181
LaunchProperties.
Definition ns.h:154
u8 storageID
NcmStorageId
Definition ns.h:157
u32 version
Program version.
Definition ns.h:156
u8 index
Index.
Definition ns.h:158
u64 program_id
program_id.
Definition ns.h:155
u8 is_application
Whether this is an Application.
Definition ns.h:159
ProgressAsyncResult.
Definition ns.h:60
Event event
Event with autoclear=false.
Definition ns.h:62
Service s
IProgressAsyncResult.
Definition ns.h:61
ProgressForDeleteUserSaveDataAll.
Definition ns.h:102
ProgressMonitorForDeleteUserSaveDataAll.
Definition ns.h:55
Service s
IProgressMonitorForDeleteUserSaveDataAll.
Definition ns.h:56
NsPromotionInfo.
Definition ns.h:138
u64 end_timestamp
POSIX timestamp for the promotion end.
Definition ns.h:140
u64 start_timestamp
POSIX timestamp for the promotion start.
Definition ns.h:139
s64 remaining_time
Remaining time until the promotion ends, in nanoseconds ({end_timestamp - current_time} converted to ...
Definition ns.h:141
u8 flags
Flags. Bit0: whether the PromotionInfo is valid (including bit1). Bit1 clear: remaining_time is set.
Definition ns.h:143
RequestServerStopper.
Definition ns.h:50
Service s
IRequestServerStopper.
Definition ns.h:51
ShellEventInfo.
Definition ns.h:163
u64 process_id
processID.
Definition ns.h:165
NsShellEvent event
NsShellEvent
Definition ns.h:164
SystemDeliveryInfo.
Definition ns.h:186
u64 old_system_update_id
OldSystemUpdateId.
Definition ns.h:193
u8 system_update_id_flag
[20.0.0+] SystemUpdateIdFlag. When non-zero, SystemUpdateId is used instead of OldSystemUpdateId.
Definition ns.h:198
u64 system_update_id
[20.0.0+] SystemUpdateId.
Definition ns.h:200
u8 has_exfat
HasExFat.
Definition ns.h:190
u8 firmware_variation_id
FirmwareVariationId.
Definition ns.h:194
u32 system_update_version
SystemUpdateVersion.
Definition ns.h:192
u8 platform_region
PlatformRegion.
Definition ns.h:196
u8 updatable_firmware_group_id
UpdatableFirmwareGroupId.
Definition ns.h:195
u32 application_delivery_protocol_version
ApplicationDeliveryProtocolVersion.
Definition ns.h:189
u8 system_delivery_info_platform
[20.0.0+] SystemDeliveryInfoPlatform.
Definition ns.h:197
u32 system_delivery_protocol_version
SystemDeliveryProtocolVersion.
Definition ns.h:188
SystemUpdateControl.
Definition ns.h:66
TransferMemory tmem
TransferMemory for SetupCardUpdate/SetupCardUpdateViaSystemUpdater.
Definition ns.h:68
Service s
ISystemUpdateControl.
Definition ns.h:67
SystemUpdateProgress. Commands which have this as output will return 0 with the output cleared,...
Definition ns.h:169
s64 total_size
Total size, this field is only valid when >0.
Definition ns.h:171
s64 current_size
Current size. This value can be larger than total_size when the async operation is finishing....
Definition ns.h:170
Service object structure.
Definition service.h:14
Transfer memory information structure.
Definition tmem.h:13
int64_t s64
64-bit signed integer.
Definition types.h:28
uint64_t u64
64-bit unsigned integer.
Definition types.h:22
uint8_t u8
8-bit unsigned integer.
Definition types.h:19
uint16_t u16
16-bit unsigned integer.
Definition types.h:20
u32 Result
Function error code result type.
Definition types.h:44
int32_t s32
32-bit signed integer.
Definition types.h:27
uint32_t u32
32-bit unsigned integer.
Definition types.h:21