libnx v4.10.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 GetApplicationDesiredLanguage. Selects a \ref NacpLanguageEntry to use from the specified \ref NacpStruct.
317 * @note Uses \ref nsGetReadOnlyApplicationControlDataInterface on [5.1.0+], otherwise IApplicationManagerInterface is used.
318 * @param[in] nacp \ref NacpStruct
319 * @param[out] langentry \ref NacpLanguageEntry
320 */
322
323///@}
324
325///@name IECommerceInterface
326///@{
327
328/**
329 * @brief RequestLinkDevice
330 * @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.
331 * @note Only available on [4.0.0+].
332 * @param[out] a \ref AsyncResult
333 * @param[in] uid \ref AccountUid
334 */
336
337/**
338 * @brief RequestSyncRights
339 * @note Only available on [6.0.0+].
340 * @param[out] a \ref AsyncResult
341 */
343
344/**
345 * @brief RequestUnlinkDevice
346 * @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.
347 * @note Only available on [6.0.0+].
348 * @param[out] a \ref AsyncResult
349 * @param[in] uid \ref AccountUid
350 */
352
353///@}
354
355///@name IFactoryResetInterface
356///@{
357
358/**
359 * @brief ResetToFactorySettings
360 * @note Uses \ref nsGetFactoryResetInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
361 */
363
364/**
365 * @brief ResetToFactorySettingsWithoutUserSaveData
366 * @note Uses \ref nsGetFactoryResetInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
367 */
369
370/**
371 * @brief ResetToFactorySettingsForRefurbishment
372 * @note Uses \ref nsGetFactoryResetInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
373 * @note Only available on [2.0.0+].
374 */
376
377/**
378 * @brief ResetToFactorySettingsWithPlatformRegion
379 * @note Only available on [9.1.0+].
380 */
382
383/**
384 * @brief ResetToFactorySettingsWithPlatformRegionAuthentication
385 * @note Only available on [9.1.0+].
386 */
388
389///@}
390
391///@name IApplicationManagerInterface
392///@{
393
394/**
395 * @brief Gets an listing of \ref NsApplicationRecord.
396 * @param[out] records Output array of \ref NsApplicationRecord.
397 * @param[in] count Size of the records array in entries.
398 * @param[in] entry_offset Starting entry offset.
399 * @param[out] out_entrycount Total output entries.
400 */
401Result nsListApplicationRecord(NsApplicationRecord* records, s32 count, s32 entry_offset, s32* out_entrycount);
402
403/**
404 * @brief GetApplicationRecordUpdateSystemEvent
405 * @note The Event must be closed by the user once finished with it.
406 * @param[out] out_event Output Event with autoclear=true.
407 */
409
410/**
411 * @brief GetApplicationViewDeprecated
412 * @note On [3.0.0+] you should generally use \ref nsGetApplicationView instead.
413 * @param[out] out Output array of \ref NsApplicationViewDeprecated.
414 * @param[in] application_ids Input array of ApplicationIds.
415 * @param[in] count Size of the input/output arrays in entries.
416 */
418
419/**
420 * @brief DeleteApplicationEntity
421 * @param[in] application_id ApplicationId.
422 */
424
425/**
426 * @brief DeleteApplicationCompletely
427 * @param[in] application_id ApplicationId.
428 */
430
431/**
432 * @brief DeleteRedundantApplicationEntity
433 */
435
436/**
437 * @brief IsApplicationEntityMovable
438 * @param[in] application_id ApplicationId.
439 * @param[in] storage_id \ref NcmStorageId
440 * @param[out] out Output flag.
441 */
442Result nsIsApplicationEntityMovable(u64 application_id, NcmStorageId storage_id, bool *out);
443
444/**
445 * @brief MoveApplicationEntity
446 * @note Only available on [1.0.0-9.2.0].
447 * @param[in] application_id ApplicationId.
448 * @param[in] storage_id \ref NcmStorageId
449 */
450Result nsMoveApplicationEntity(u64 application_id, NcmStorageId storage_id);
451
452/**
453 * @brief RequestApplicationUpdateInfo
454 * @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.
455 * @param[out] a \ref AsyncValue. The data that can be read from this is u8 ApplicationUpdateInfo. qlaunch just checks whether this is 0.
456 * @param application_id ApplicationId.
457 */
459
460/**
461 * @brief CancelApplicationDownload
462 * @param[in] application_id ApplicationId.
463 */
465
466/**
467 * @brief ResumeApplicationDownload
468 * @param[in] application_id ApplicationId.
469 */
471
472/**
473 * @brief CheckApplicationLaunchVersion
474 * @param[in] application_id ApplicationId.
475 */
477
478/**
479 * @brief CalculateApplicationApplyDeltaRequiredSize
480 * @param[in] application_id ApplicationId.
481 * @param[out] storage_id Output \ref NcmStorageId.
482 * @param[out] size Output size.
483 */
485
486/**
487 * @brief CleanupSdCard
488 */
490
491/**
492 * @brief GetSdCardMountStatusChangedEvent
493 * @note The Event must be closed by the user once finished with it.
494 * @param[out] out_event Output Event with autoclear=false.
495 */
497
498/**
499 * @brief GetGameCardUpdateDetectionEvent
500 * @note The Event must be closed by the user once finished with it.
501 * @param[out] out_event Output Event with autoclear=false.
502 */
504
505/**
506 * @brief DisableApplicationAutoDelete
507 * @param[in] application_id ApplicationId.
508 */
510
511/**
512 * @brief EnableApplicationAutoDelete
513 * @param[in] application_id ApplicationId.
514 */
516
517/**
518 * @brief SetApplicationTerminateResult
519 * @param[in] application_id ApplicationId.
520 * @param[in] res Result.
521 */
523
524/**
525 * @brief ClearApplicationTerminateResult
526 * @param[in] application_id ApplicationId.
527 */
529
530/**
531 * @brief GetLastSdCardMountUnexpectedResult
532 */
534
535/**
536 * @brief Opens a \ref NsRequestServerStopper.
537 * @note Only available on [2.0.0+].
538 * @param[out] r \ref NsRequestServerStopper
539 */
541
542/**
543 * @brief CancelApplicationApplyDelta
544 * @note Only available on [3.0.0+].
545 * @param[in] application_id ApplicationId.
546 */
548
549/**
550 * @brief ResumeApplicationApplyDelta
551 * @note Only available on [3.0.0+].
552 * @param[in] application_id ApplicationId.
553 */
555
556/**
557 * @brief CalculateApplicationApplyDeltaRequiredSize
558 * @note Only available on [3.0.0+].
559 * @param[in] application_id ApplicationId.
560 * @param[out] storage_id Output \ref NcmStorageId.
561 * @param[out] size Output size.
562 */
564
565/**
566 * @brief ResumeAll
567 * @note Only available on [3.0.0+].
568 */
570
571/**
572 * @brief Temporarily mounts the specified fs ContentStorage, then uses fs GetTotalSpaceSize/GetFreeSpaceSize with that mounted ContentStorage.
573 * @note Only available on [3.0.0+].
574 * @param[in] storage_id \ref NcmStorageId, must be ::NcmStorageId_BuiltInUser or ::NcmStorageId_SdCard.
575 * @param[out] total_space_size Output from GetTotalSpaceSize.
576 * @param[out] free_space_size Output from GetFreeSpaceSize.
577 */
578Result nsGetStorageSize(NcmStorageId storage_id, s64 *total_space_size, s64 *free_space_size);
579
580/**
581 * @brief RequestUpdateApplication2
582 * @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.
583 * @note Only available on [4.0.0+].
584 * @param[out] a \ref AsyncResult
585 * @param[in] application_id ApplicationId.
586 */
588
589/**
590 * @brief DeleteUserSaveDataAll
591 * @param[in] p \ref NsProgressMonitorForDeleteUserSaveDataAll
592 * @param[in] uid \ref AccountUid
593 */
595
596/**
597 * @brief DeleteUserSystemSaveData
598 * @param[in] uid \ref AccountUid
599 * @param[in] system_save_data_id SystemSaveDataId
600 */
602
603/**
604 * @brief DeleteSaveData
605 * @note Only available on [6.0.0+].
606 * @param[in] save_data_space_id \ref FsSaveDataSpaceId
607 * @param[in] save_data_id SaveDataId
608 */
609Result nsDeleteSaveData(FsSaveDataSpaceId save_data_space_id, u64 save_data_id);
610
611/**
612 * @brief UnregisterNetworkServiceAccount
613 * @param[in] uid \ref AccountUid
614 */
616
617/**
618 * @brief UnregisterNetworkServiceAccountWithUserSaveDataDeletion
619 * @note Only available on [6.0.0+].
620 * @param[in] uid \ref AccountUid
621 */
623
624/**
625 * @brief RequestDownloadApplicationControlData
626 * @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.
627 * @param[out] a \ref AsyncResult
628 * @param[in] application_id ApplicationId.
629 */
631
632/**
633 * @brief ListApplicationTitle
634 * @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.
635 * @note Only available on [8.0.0+].
636 * @param[out] a \ref AsyncValue
637 * @param[in] source Source, qlaunch uses ::NsApplicationControlSource_Storage.
638 * @param[in] application_ids Input array of ApplicationIds.
639 * @param[in] count Size of the application_ids array in entries.
640 * @param buffer 0x1000-byte aligned buffer for TransferMemory. This buffer must not be accessed until the async operation finishes.
641 * @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).
642 */
643Result nsListApplicationTitle(AsyncValue *a, NsApplicationControlSource source, const u64 *application_ids, s32 count, void* buffer, size_t size);
644
645/**
646 * @brief ListApplicationIcon
647 * @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.
648 * @note Only available on [8.0.0+].
649 * @param[out] a \ref AsyncValue
650 * @param[in] source Source.
651 * @param[in] application_ids Input array of ApplicationIds.
652 * @param[in] count Size of the application_ids array in entries.
653 * @param buffer 0x1000-byte aligned buffer for TransferMemory. This buffer must not be accessed until the async operation finishes.
654 * @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).
655 */
656Result nsListApplicationIcon(AsyncValue *a, NsApplicationControlSource source, const u64 *application_ids, s32 count, void* buffer, size_t size);
657
658/**
659 * @brief RequestCheckGameCardRegistration
660 * @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.
661 * @note Only available on [2.0.0+].
662 * @param[out] a \ref AsyncResult
663 * @param[in] application_id ApplicationId.
664 */
666
667/**
668 * @brief RequestGameCardRegistrationGoldPoint
669 * @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.
670 * @note Only available on [2.0.0+].
671 * @param[out] a \ref AsyncValue. The data that can be read from this is 4-bytes.
672 * @param[in] uid \ref AccountUid
673 * @param[in] application_id ApplicationId.
674 */
676
677/**
678 * @brief RequestRegisterGameCard
679 * @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.
680 * @note Only available on [2.0.0+].
681 * @param[out] a \ref AsyncResult
682 * @param[in] uid \ref AccountUid
683 * @param[in] application_id ApplicationId.
684 * @param[in] inval Input value.
685 */
687
688/**
689 * @brief GetGameCardMountFailureEvent
690 * @note The Event must be closed by the user once finished with it.
691 * @note Only available on [3.0.0+].
692 * @param[out] out_event Output Event with autoclear=false.
693 */
695
696/**
697 * @brief IsGameCardInserted
698 * @note Only available on [3.0.0+].
699 * @param[out] out Output flag.
700 */
702
703/**
704 * @brief EnsureGameCardAccess
705 * @note Only available on [3.0.0+].
706 */
708
709/**
710 * @brief GetLastGameCardMountFailureResult
711 * @note Only available on [3.0.0+].
712 */
714
715/**
716 * @brief ListApplicationIdOnGameCard
717 * @note Only available on [5.0.0+].
718 * @param[out] application_ids Output array of ApplicationIds.
719 * @param[in] count Size of the application_ids array in entries.
720 * @param[out] total_out Total output entries.
721 */
722Result nsListApplicationIdOnGameCard(u64 *application_ids, s32 count, s32 *total_out);
723
724/**
725 * @brief TouchApplication
726 * @note Only available on [2.0.0+].
727 * @param[in] application_id ApplicationId.
728 */
730
731/**
732 * @brief IsApplicationUpdateRequested
733 * @note Only available on [2.0.0+].
734 * @param[in] application_id ApplicationId.
735 * @param[out] flag Output flag, indicating whether out is valid.
736 * @param[out] out Output value.
737 */
738Result nsIsApplicationUpdateRequested(u64 application_id, bool *flag, u32 *out);
739
740/**
741 * @brief WithdrawApplicationUpdateRequest
742 * @note Only available on [2.0.0+].
743 * @param[in] application_id ApplicationId.
744 */
746
747/**
748 * @brief RequestVerifyAddOnContentsRights
749 * @note Only available on [3.0.0-9.2.0].
750 * @param[out] a \ref NsProgressAsyncResult
751 * @param[in] application_id ApplicationId.
752 */
754
755/**
756 * @brief RequestVerifyApplication
757 * @note On pre-5.0.0 this uses cmd RequestVerifyApplicationDeprecated, otherwise cmd RequestVerifyApplication is used.
758 * @param[out] a \ref NsProgressAsyncResult. The data available with \ref nsProgressAsyncResultGetProgress is basically the same as \ref NsSystemUpdateProgress.
759 * @param[in] application_id ApplicationId.
760 * @param[in] unk Unknown. A default value of 0x7 can be used (which is what qlaunch uses). Only used on [5.0.0+].
761 * @param buffer 0x1000-byte aligned buffer for TransferMemory. This buffer must not be accessed until the async operation finishes.
762 * @param[in] size 0x1000-byte aligned buffer size for TransferMemory. qlaunch uses size 0x100000.
763 */
764Result nsRequestVerifyApplication(NsProgressAsyncResult *a, u64 application_id, u32 unk, void* buffer, size_t size);
765
766/**
767 * @brief IsAnyApplicationEntityInstalled
768 * @note Only available on [2.0.0+].
769 * @param[in] application_id ApplicationId.
770 * @param[out] out Output flag.
771 */
773
774/**
775 * @brief CleanupUnavailableAddOnContents
776 * @note Only available on [6.0.0+].
777 * @param[in] application_id ApplicationId.
778 * @param[in] uid \ref AccountUid
779 */
781
782/**
783 * @brief EstimateSizeToMove
784 * @note Only available on [10.0.0+].
785 * @param[in] storage_ids Array of u8 \ref NcmStorageId.
786 * @param[in] count Size of the storage_ids array in entries.
787 * @param[in] storage_id storage_id \ref NcmStorageId
788 * @param[in] flags Flags
789 * @param[in] application_id ApplicationId.
790 * @param[out] Out Output value.
791 */
792Result nsEstimateSizeToMove(u8 *storage_ids, s32 count, NcmStorageId storage_id, u32 flags, u64 application_id, s64 *out);
793
794/**
795 * @brief FormatSdCard
796 * @note Only available on [2.0.0+].
797 */
799
800/**
801 * @brief NeedsSystemUpdateToFormatSdCard
802 * @note Only available on [2.0.0+].
803 * @param[out] out Output flag.
804 */
806
807/**
808 * @brief GetLastSdCardFormatUnexpectedResult
809 * @note Only available on [2.0.0+].
810 */
812
813/**
814 * @brief GetApplicationView
815 * @note Only available on [3.0.0+], on prior system-versions use \ref nsGetApplicationViewDeprecated instead.
816 * @param[out] out Output array of \ref NsApplicationView.
817 * @param[in] application_ids Input array of ApplicationIds.
818 * @param[in] count Size of the input/output arrays in entries.
819 */
820Result nsGetApplicationView(NsApplicationView *views, const u64 *application_ids, s32 count);
821
822/**
823 * @brief GetApplicationViewDownloadErrorContext
824 * @note Only available on [4.0.0+].
825 * @param[in] application_id ApplicationId
826 * @param[out] context \ref ErrorContext
827 */
829
830/**
831 * @brief GetApplicationViewWithPromotionInfo
832 * @note Only available on [8.0.0+].
833 * @param[out] out Output array of \ref NsApplicationViewWithPromotionInfo.
834 * @param[in] application_ids Input array of ApplicationIds.
835 * @param[in] count Size of the input/output arrays in entries.
836 */
838
839/**
840 * @brief RequestDownloadApplicationPrepurchasedRights
841 * @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.
842 * @note Only available on [4.0.0+].
843 * @param[out] a \ref AsyncResult
844 * @param[in] application_id ApplicationId.
845 */
847
848/**
849 * @brief Generates a \ref NsSystemDeliveryInfo using the currently installed SystemUpdate meta.
850 * @note Only available on [4.0.0+].
851 * @param[out] info \ref NsSystemDeliveryInfo
852 */
854
855/**
856 * @brief SelectLatestSystemDeliveryInfo
857 * @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.
858 * @note Only available on [4.0.0+].
859 * @param[in] sys_list Input array of \ref NsSystemDeliveryInfo.
860 * @param[in] sys_count Size of the sys_list array in entries.
861 * @param[in] base_info \ref NsSystemDeliveryInfo
862 * @param[in] app_list Input array of \ref NsApplicationDeliveryInfo. This can be NULL.
863 * @param[in] app_count Size of the app_list array in entries. This can be 0.
864 * @param[out] index Output index for the selected entry in sys_list, -1 if none found.
865 */
866Result nsSelectLatestSystemDeliveryInfo(const NsSystemDeliveryInfo *sys_list, s32 sys_count, const NsSystemDeliveryInfo *base_info, const NsApplicationDeliveryInfo *app_list, s32 app_count, s32 *index);
867
868/**
869 * @brief VerifyDeliveryProtocolVersion
870 * @note Only available on [4.0.0+].
871 * @param[in] info \ref NsSystemDeliveryInfo
872 */
874
875/**
876 * @brief Generates \ref NsApplicationDeliveryInfo for the specified ApplicationId.
877 * @note Only available on [4.0.0+].
878 * @param[out] info Output array of \ref NsApplicationDeliveryInfo.
879 * @param[in] count Size of the array in entries.
880 * @param[in] application_id ApplicationId
881 * @param[in] attr ApplicationDeliveryAttributeTag bitmask.
882 * @param[out] total_out Total output entries.
883 */
884Result nsGetApplicationDeliveryInfo(NsApplicationDeliveryInfo *info, s32 count, u64 application_id, u32 attr, s32 *total_out);
885
886/**
887 * @brief HasAllContentsToDeliver
888 * @note Only available on [4.0.0+].
889 * @param[in] info Input array of \ref NsApplicationDeliveryInfo.
890 * @param[in] count Size of the array in entries. Must be value 1.
891 * @param[out] out Output flag.
892 */
894
895/**
896 * @brief Both \ref NsApplicationDeliveryInfo are validated, then the application_version in the first/second \ref NsApplicationDeliveryInfo are compared.
897 * @note Only available on [4.0.0+].
898 * @param[in] info0 First input array of \ref NsApplicationDeliveryInfo.
899 * @param[in] count0 Size of the info0 array in entries. Must be value 1.
900 * @param[in] info1 Second input array of \ref NsApplicationDeliveryInfo.
901 * @param[in] count1 Size of the info1 array in entries. Must be value 1.
902 * @param[out] out Comparison result: -1 for less than, 0 for equal, and 1 for higher than.
903 */
905
906/**
907 * @brief CanDeliverApplication
908 * @note Only available on [4.0.0+].
909 * @param[in] info0 First input array of \ref NsApplicationDeliveryInfo.
910 * @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.
911 * @param[in] info1 Second input array of \ref NsApplicationDeliveryInfo.
912 * @param[in] count1 Size of the info1 array in entries. Must be value 1.
913 * @param[out] out Output flag.
914 */
915Result nsCanDeliverApplication(const NsApplicationDeliveryInfo *info0, s32 count0, const NsApplicationDeliveryInfo *info1, s32 count1, bool *out);
916
917/**
918 * @brief ListContentMetaKeyToDeliverApplication
919 * @note Only available on [4.0.0+].
920 * @param[out] meta Output array of \ref NcmContentMetaKey.
921 * @param[in] meta_count Size of the meta array in entries. Must be at least 1, only 1 entry will be returned.
922 * @param[in] meta_index Meta entry index. An output \ref NcmContentMetaKey will not be returned when this value is larger than 0.
923 * @param[in] info Input array of \ref NsApplicationDeliveryInfo.
924 * @param[in] info_count Size of the info array in entries. Must be value 1.
925 * @param[out] total_out Total output entries.
926 */
927Result nsListContentMetaKeyToDeliverApplication(NcmContentMetaKey *meta, s32 meta_count, s32 meta_index, const NsApplicationDeliveryInfo *info, s32 info_count, s32 *total_out);
928
929/**
930 * @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.
931 * @note Only available on [4.0.0+].
932 * @param[in] info Input array of \ref NsApplicationDeliveryInfo.
933 * @param[in] count Size of the info array in entries. Must be value 1.
934 * @param[in] sys_info \ref NsSystemDeliveryInfo
935 * @param[out] out Output flag.
936 */
938
939/**
940 * @brief EstimateRequiredSize
941 * @note Only available on [4.0.0+].
942 * @param[in] meta Input array of \ref NcmContentMetaKey.
943 * @param[in] count Size of the meta array in entries. When less than 1, this will return 0 with out set to 0.
944 * @param[out] out Output size.
945 */
947
948/**
949 * @brief RequestReceiveApplication
950 * @note This is the Application version of \ref nssuControlRequestReceiveSystemUpdate, see the notes for that.
951 * @note Only available on [4.0.0+].
952 * @param[out] a \ref AsyncResult
953 * @param[in] addr Server IPv4 address.
954 * @param[in] port Socket port. qlaunch uses value 55556.
955 * @param[in] application_id ApplicationId
956 * @param[in] meta Input array of \ref NcmContentMetaKey. The ::NcmContentMetaType must match ::NcmContentMetaType_Patch.
957 * @param[in] count Size of the meta array in entries.
958 * @param[in] storage_id \ref NcmStorageId. qlaunch uses ::NcmStorageId_Any.
959 */
960Result nsRequestReceiveApplication(AsyncResult *a, u32 addr, u16 port, u64 application_id, const NcmContentMetaKey *meta, s32 count, NcmStorageId storage_id);
961
962/**
963 * @brief CommitReceiveApplication
964 * @note Only available on [4.0.0+].
965 * @param[in] application_id ApplicationId
966 */
968
969/**
970 * @brief GetReceiveApplicationProgress
971 * @note Only available on [4.0.0+].
972 * @param[in] application_id ApplicationId
973 * @param[out] out \ref NsReceiveApplicationProgress
974 */
976
977/**
978 * @brief RequestSendApplication
979 * @note This is the Application version of \ref nssuRequestSendSystemUpdate, see the notes for that.
980 * @note Only available on [4.0.0+].
981 * @param[out] a \ref AsyncResult
982 * @param[in] addr Client IPv4 address.
983 * @param[in] port Socket port. qlaunch uses value 55556.
984 * @param[in] application_id ApplicationId
985 * @param[in] meta Input array of \ref NcmContentMetaKey. The ::NcmContentMetaType must match ::NcmContentMetaType_Patch.
986 * @param[in] count Size of the meta array in entries.
987 */
988Result nsRequestSendApplication(AsyncResult *a, u32 addr, u16 port, u64 application_id, const NcmContentMetaKey *meta, s32 count);
989
990/**
991 * @brief GetSendApplicationProgress
992 * @note Only available on [4.0.0+].
993 * @param[in] application_id ApplicationId
994 * @param[out] out \ref NsSendApplicationProgress
995 */
997
998/**
999 * @brief Both \ref NsSystemDeliveryInfo are validated, then the system_update_version in the first/second \ref NsSystemDeliveryInfo are compared.
1000 * @note Only available on [4.0.0+].
1001 * @param[in] info0 First \ref NsSystemDeliveryInfo.
1002 * @param[in] info1 Second \ref NsSystemDeliveryInfo.
1003 * @param[out] out Comparison result: -1 for less than, 0 for equal, and 1 for higher than.
1004 */
1006
1007/**
1008 * @brief ListNotCommittedContentMeta
1009 * @note Only available on [4.0.0+].
1010 * @param[out] meta Output array of \ref NcmContentMetaKey.
1011 * @param[in] count Size of the meta array in entries.
1012 * @param[in] application_id ApplicationId
1013 * @param[in] unk Unknown.
1014 * @param[out] total_out Total output entries.
1015 */
1016Result nsListNotCommittedContentMeta(NcmContentMetaKey *meta, s32 count, u64 application_id, s32 unk, s32 *total_out);
1017
1018/**
1019 * @brief This extracts data from the input array for hashing with SHA256, with validation being done when handling each entry.
1020 * @note Only available on [5.0.0+].
1021 * @param[in] info Input array of \ref NsApplicationDeliveryInfo.
1022 * @param[in] count Size of the array in entries.
1023 * @param[out] out_hash Output 0x20-byte SHA256 hash.
1024 */
1026
1027/**
1028 * @brief GetApplicationTerminateResult
1029 * @note Only available on [6.0.0+].
1030 * @param[in] application_id ApplicationId.
1031 * @param[out] res Output Result.
1032 */
1034
1035/**
1036 * @brief GetApplicationRightsOnClient
1037 * @note Only available on [6.0.0+].
1038 * @param[out] rights Output array of \ref NsApplicationRightsOnClient.
1039 * @param[in] count Size of the rights array in entries. qlaunch uses value 3 for this.
1040 * @param[in] application_id ApplicationId
1041 * @param[in] uid \ref AccountUid, can optionally be all-zero.
1042 * @param[in] flags Flags. Official sw hard-codes this to value 0x3.
1043 * @param[out] total_out Total output entries.
1044 */
1045Result nsGetApplicationRightsOnClient(NsApplicationRightsOnClient *rights, s32 count, u64 application_id, AccountUid uid, u32 flags, s32 *total_out);
1046
1047/**
1048 * @brief RequestNoDownloadRightsErrorResolution
1049 * @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.
1050 * @note Only available on [9.0.0+].
1051 * @param[out] a \ref AsyncValue. The data that can be read from this is u8 NoDownloadRightsErrorResolution.
1052 * @param application_id ApplicationId.
1053 */
1055
1056/**
1057 * @brief RequestResolveNoDownloadRightsError
1058 * @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.
1059 * @note Only available on [9.0.0+].
1060 * @param[out] a \ref AsyncValue. The data that can be read from this is u8 NoDownloadRightsErrorResolution.
1061 * @param application_id ApplicationId.
1062 */
1064
1065/**
1066 * @brief GetPromotionInfo
1067 * @note Only available on [8.0.0+].
1068 * @param[out] promotion \ref NsPromotionInfo
1069 * @param application_id ApplicationId.
1070 * @param[in] uid \ref AccountUid
1071 */
1072Result nsGetPromotionInfo(NsPromotionInfo *promotion, u64 application_id, AccountUid uid);
1073
1074///@}
1075
1076///@name IDownloadTaskInterface
1077///@{
1078
1079/**
1080 * @brief ClearTaskStatusList
1081 * @note Uses \ref nsGetDownloadTaskInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1082 * @note Only available on [2.0.0+].
1083 */
1085
1086/**
1087 * @brief RequestDownloadTaskList
1088 * @note Uses \ref nsGetDownloadTaskInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1089 * @note Only available on [2.0.0+].
1090 */
1092
1093/**
1094 * @brief RequestEnsureDownloadTask
1095 * @note Uses \ref nsGetDownloadTaskInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1096 * @note Only available on [2.0.0+].
1097 * @param[out] a \ref AsyncResult
1098 */
1100
1101/**
1102 * @brief ListDownloadTaskStatus
1103 * @note Uses \ref nsGetDownloadTaskInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1104 * @note Only available on [2.0.0+].
1105 * @param[out] tasks Output array of \ref NsDownloadTaskStatus.
1106 * @param[in] count Size of the tasks array in entries. A maximum of 0x100 tasks can be stored in state.
1107 * @param[out] total_out Total output entries.
1108 */
1110
1111/**
1112 * @brief RequestDownloadTaskListData
1113 * @note Uses \ref nsGetDownloadTaskInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1114 * @note Only available on [2.0.0+].
1115 * @param[out] a \ref AsyncValue
1116 */
1118
1119/**
1120 * @brief TryCommitCurrentApplicationDownloadTask
1121 * @note Only available on [4.0.0+].
1122 */
1124
1125/**
1126 * @brief EnableAutoCommit
1127 * @note Only available on [4.0.0+].
1128 */
1130
1131/**
1132 * @brief DisableAutoCommit
1133 * @note Only available on [4.0.0+].
1134 */
1136
1137/**
1138 * @brief TriggerDynamicCommitEvent
1139 * @note Only available on [4.0.0+].
1140 */
1142
1143///@}
1144
1145///@name IContentManagementInterface
1146///@{
1147
1148/**
1149 * @brief CalculateApplicationOccupiedSize
1150 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1151 * @param[in] application_id ApplicationId.
1152 * @param[out] out \ref NsApplicationOccupiedSize
1153 */
1155
1156/**
1157 * @brief CheckSdCardMountStatus
1158 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1159 */
1161
1162/**
1163 * @brief Returns the total storage capacity (used + free) from content manager services.
1164 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1165 * @param[in] storage_id \ref NcmStorageId. Must be ::NcmStorageId_SdCard.
1166 * @param[out] size Pointer to output the total storage size to.
1167 */
1169
1170/**
1171 * @brief Returns the available storage capacity from content manager services.
1172 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1173 * @param[in] storage_id \ref NcmStorageId. Must be ::NcmStorageId_SdCard.
1174 * @param[out] size Pointer to output the free storage size to.
1175 */
1177
1178/**
1179 * @brief CountApplicationContentMeta
1180 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1181 * @note Only available on [2.0.0+].
1182 * @param[in] application_id ApplicationId.
1183 * @param[out] out Output count.
1184 */
1186
1187/**
1188 * @brief Gets an listing of \ref NsApplicationContentMetaStatus.
1189 * @note Uses \ref nsGetContentManagementInterface on [3.0.0+], otherwise IApplicationManagerInterface is used.
1190 * @note Only available on [2.0.0+].
1191 * @param[in] application_id ApplicationId.
1192 * @param[in] index Starting entry index.
1193 * @param[out] list Output array of \ref NsApplicationContentMetaStatus.
1194 * @param[in] count Size of the list array in entries.
1195 * @param[out] out_entrycount Total output entries.
1196 */
1197Result nsListApplicationContentMetaStatus(u64 application_id, s32 index, NsApplicationContentMetaStatus* list, s32 count, s32* out_entrycount);
1198
1199/**
1200 * @brief IsAnyApplicationRunning
1201 * @note Only available on [3.0.0+].
1202 * @param[out] out Output flag.
1203 */
1205
1206///@}
1207
1208///@name IRequestServerStopper
1209///@{
1210
1211/**
1212 * @brief Close a \ref NsRequestServerStopper.
1213 * @param r \ref NsRequestServerStopper
1214 */
1216
1217///@}
1218
1219///@name IProgressMonitorForDeleteUserSaveDataAll
1220///@{
1221
1222/**
1223 * @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).
1224 * @note Cancelling the operation before it's finished is not supported by \ref NsProgressMonitorForDeleteUserSaveDataAll.
1225 * @param p \ref NsProgressMonitorForDeleteUserSaveDataAll
1226 */
1228
1229/**
1230 * @brief GetSystemEvent
1231 * @note The Event must be closed by the user once finished with it.
1232 * @param[out] out_event Output Event with autoclear=false.
1233 */
1235
1236/**
1237 * @brief IsFinished
1238 * @param p \ref NsProgressMonitorForDeleteUserSaveDataAll
1239 * @param[out] out Whether the operation finished.
1240 */
1242
1243/**
1244 * @brief GetResult
1245 * @param p \ref NsProgressMonitorForDeleteUserSaveDataAll
1246 */
1248
1249/**
1250 * @brief GetProgress
1251 * @param p \ref NsProgressMonitorForDeleteUserSaveDataAll
1252 * @param[out] progress Output \ref NsProgressForDeleteUserSaveDataAll.
1253 */
1255
1256///@}
1257
1258///@name IProgressAsyncResult
1259///@{
1260
1261/**
1262 * @brief Close a \ref NsProgressAsyncResult.
1263 * @note When the object is initialized, this uses \ref nsProgressAsyncResultCancel then \ref nsProgressAsyncResultWait with timeout=UINT64_MAX.
1264 * @param a \ref NsProgressAsyncResult
1265 */
1267
1268/**
1269 * @brief Waits for the async operation to finish using the specified timeout.
1270 * @param a \ref NsProgressAsyncResult
1271 * @param[in] timeout Timeout in nanoseconds. UINT64_MAX for no timeout.
1272 */
1274
1275/**
1276 * @brief Gets the Result.
1277 * @note Prior to using the cmd, this uses \ref nsProgressAsyncResultWait with timeout=UINT64_MAX.
1278 * @param a \ref NsProgressAsyncResult
1279 */
1281
1282/**
1283 * @brief Cancels the async operation.
1284 * @note Used automatically by \ref nsProgressAsyncResultClose.
1285 * @param a \ref NsProgressAsyncResult
1286 */
1288
1289/**
1290 * @brief Gets the progress.
1291 * @param a \ref NsProgressAsyncResult
1292 * @param[out] buffer Output buffer.
1293 * @param[in] size Output buffer size.
1294 */
1296
1297/**
1298 * @brief GetDetailResult
1299 * @param a \ref NsProgressAsyncResult
1300 */
1302
1303/**
1304 * @brief Gets the \ref ErrorContext.
1305 * @note Only available on [4.0.0+].
1306 * @param a \ref NsProgressAsyncResult
1307 * @param[out] context \ref ErrorContext
1308 */
1310
1311///@}
1312
1313///@name ns:vm
1314///@{
1315
1316/// Initialize ns:vm. On pre-3.0.0 this must be used with \ref nsInitialize.
1318
1319/// Exit ns:vm.
1320void nsvmExit(void);
1321
1322/// Gets the Service object for ns:vm. This is only initialized on [3.0.0+].
1324
1325Result nsvmNeedsUpdateVulnerability(bool *out);
1327
1328///@}
1329
1330///@name ns:dev
1331///@{
1332
1333/// Initialize ns:dev.
1335
1336/// Initialize ns:dev.
1337void nsdevExit(void);
1338
1339/// Gets the Service object for ns:dev.
1341
1342Result nsdevLaunchProgram(u64* out_pid, const NsLaunchProperties* properties, u32 flags); ///< [1.0.0-9.2.0]
1343Result nsdevTerminateProcess(u64 pid);
1344Result nsdevTerminateProgram(u64 tid); ///< [1.0.0-9.2.0]
1345Result nsdevGetShellEvent(Event* out_event); ///< Autoclear for nsdevShellEvent is always true. [1.0.0-9.2.0]
1347Result nsdevTerminateApplication(void);
1348Result nsdevPrepareLaunchProgramFromHost(NsLaunchProperties* out, const char* path, size_t path_len); ///< [1.0.0-9.2.0]
1349Result nsdevLaunchApplicationForDevelop(u64* out_pid, u64 application_id, u32 flags); ///< [1.0.0-9.2.0]
1350Result nsdevLaunchApplicationFromHost(u64* out_pid, const char* path, size_t path_len, u32 flags); ///< [10.0.0-17.0.1]
1351Result nsdevLaunchApplicationWithStorageIdForDevelop(u64* out_pid, u64 application_id, u32 flags, u8 app_storage_id, u8 patch_storage_id); ///< [1.0.0-17.0.1]
1355
1356///@}
1357
1358///@name ns:su
1359///@{
1360
1361/// Initialize ns:su.
1363
1364/// Exit ns:su.
1365void nssuExit(void);
1366
1367/// Gets the Service object for ns:su.
1369
1370/**
1371 * @brief Gets the \ref NsBackgroundNetworkUpdateState.
1372 * @note Internally this uses nim commands ListSystemUpdateTask and GetSystemUpdateTaskInfo to determine the output state.
1373 * @param[out] out \ref NsBackgroundNetworkUpdateState
1374 */
1376
1377/**
1378 * @brief Opens a \ref NsSystemUpdateControl.
1379 * @note Only 1 \ref NsSystemUpdateControl can be open at a time.
1380 * @param[out] c \ref NsSystemUpdateControl
1381 */
1383
1384/**
1385 * @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.
1386 * @note Only usable when a \ref NsSystemUpdateControl isn't open.
1387 */
1389
1390/**
1391 * @brief ClearExFatDriverStatusForDebug
1392 */
1394
1395/**
1396 * @brief RequestBackgroundNetworkUpdate
1397 * @note Only usable when a \ref NsSystemUpdateControl isn't open.
1398 */
1400
1401/**
1402 * @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.
1403 * @note Only usable when a \ref NsSystemUpdateControl isn't open.
1404 * @param[in] key \ref NcmContentMetaKey
1405 */
1407
1408/**
1409 * @brief NotifyExFatDriverDownloadedForDebug
1410 */
1412
1413/**
1414 * @brief Gets an Event which can be signaled by \ref nssuNotifySystemUpdateForContentDelivery.
1415 * @note The Event must be closed by the user once finished with it.
1416 * @param[out] out_event Output Event with autoclear=false.
1417 */
1419
1420/**
1421 * @brief Signals the event returned by \ref nssuGetSystemUpdateNotificationEventForContentDelivery.
1422 */
1424
1425/**
1426 * @brief This does shutdown preparation.
1427 * @note This is used by am-sysmodule, so generally there's no need to use this.
1428 * @note Only available on [3.0.0+].
1429 */
1431
1432/**
1433 * @brief This uses nim ListSystemUpdateTask, then when a task is returned uses it with DestroySystemUpdateTask.
1434 * @note Only available on [4.0.0+].
1435 */
1437
1438/**
1439 * @brief RequestSendSystemUpdate
1440 * @note addr/port are little-endian.
1441 * @note Only available on [4.0.0+].
1442 * @param[out] a \ref AsyncResult
1443 * @param[in] addr Client IPv4 address.
1444 * @param[in] port Socket port. qlaunch uses value 55556.
1445 * @param[in] info \ref NsSystemDeliveryInfo
1446 */
1448
1449/**
1450 * @brief GetSendSystemUpdateProgress
1451 * @note Only available on [4.0.0+].
1452 * @param[out] out \ref NsSystemUpdateProgress
1453 */
1455
1456///@}
1457
1458///@name ISystemUpdateControl
1459///@{
1460
1461/**
1462 * @brief Close a \ref NsSystemUpdateControl.
1463 * @param c \ref NsSystemUpdateControl
1464 */
1466
1467/**
1468 * @brief Gets whether a network sysupdate was downloaded, with install pending.
1469 * @param c \ref NsSystemUpdateControl
1470 * @param[out] out Output flag.
1471 */
1473
1474/**
1475 * @brief RequestCheckLatestUpdate
1476 * @param c \ref NsSystemUpdateControl
1477 * @param[out] a \ref AsyncValue. The data that can be read from this is u8 \ref NsLatestSystemUpdate.
1478 */
1480
1481/**
1482 * @brief RequestDownloadLatestUpdate
1483 * @param c \ref NsSystemUpdateControl
1484 * @param[out] a \ref AsyncResult
1485 */
1487
1488/**
1489 * @brief GetDownloadProgress
1490 * @param c \ref NsSystemUpdateControl
1491 * @param[out] out \ref NsSystemUpdateProgress
1492 */
1494
1495/**
1496 * @brief ApplyDownloadedUpdate
1497 * @param c \ref NsSystemUpdateControl
1498 */
1500
1501/**
1502 * @brief RequestPrepareCardUpdate
1503 * @param c \ref NsSystemUpdateControl
1504 * @param[out] a \ref AsyncResult
1505 */
1507
1508/**
1509 * @brief GetPrepareCardUpdateProgress
1510 * @note \ref nssuControlSetupCardUpdate / \ref nssuControlSetupCardUpdateViaSystemUpdater must have been used at some point prior to using this.
1511 * @param c \ref NsSystemUpdateControl
1512 * @param[out] out \ref NsSystemUpdateProgress
1513 */
1515
1516/**
1517 * @brief HasPreparedCardUpdate
1518 * @note \ref nssuControlSetupCardUpdate / \ref nssuControlSetupCardUpdateViaSystemUpdater must have been used at some point prior to using this.
1519 * @param c \ref NsSystemUpdateControl
1520 * @param[out] out Output flag.
1521 */
1523
1524/**
1525 * @brief ApplyCardUpdate
1526 * @note \ref nssuControlSetupCardUpdate / \ref nssuControlSetupCardUpdateViaSystemUpdater must have been used at some point prior to using this.
1527 * @param c \ref NsSystemUpdateControl
1528 */
1530
1531/**
1532 * @brief Gets the filesize for the specified DownloadedEulaData.
1533 * @note This mounts the Eula SystemData, then uses the file "<mountname>:/<input path>".
1534 * @param c \ref NsSystemUpdateControl
1535 * @param[in] path EulaData path.
1536 * @param[out] filesize Output filesize.
1537 */
1539
1540/**
1541 * @brief Gets the specified DownloadedEulaData.
1542 * @note See the note for \ref nssuControlGetDownloadedEulaDataSize.
1543 * @param c \ref NsSystemUpdateControl
1544 * @param[in] path EulaData path.
1545 * @param[out] buffer Output buffer.
1546 * @param[in] size Size of the output buffer, must be at least the output size from \ref nssuControlGetDownloadedEulaDataSize.
1547 * @param[out] filesize Output filesize.
1548 */
1549Result nssuControlGetDownloadedEulaData(NsSystemUpdateControl *c, const char* path, void* buffer, size_t size, u64 *filesize);
1550
1551/**
1552 * @brief SetupCardUpdate
1553 * @param c \ref NsSystemUpdateControl
1554 * @param[in] buffer TransferMemory buffer, when NULL this is automatically allocated.
1555 * @param[in] size TransferMemory buffer size, see \ref NSSU_CARDUPDATE_TMEM_SIZE_DEFAULT.
1556 */
1558
1559/**
1560 * @brief Gets the filesize for the specified PreparedCardUpdateEulaData.
1561 * @note See the note for \ref nssuControlGetDownloadedEulaDataSize.
1562 * @param c \ref NsSystemUpdateControl
1563 * @param[in] path EulaData path.
1564 * @param[out] filesize Output filesize.
1565 */
1567
1568/**
1569 * @brief Gets the specified PreparedCardUpdateEulaData.
1570 * @note See the note for \ref nssuControlGetDownloadedEulaDataSize.
1571 * @param c \ref NsSystemUpdateControl
1572 * @param[in] path EulaData path.
1573 * @param[out] buffer Output buffer.
1574 * @param[in] size Size of the output buffer, must be at least the output size from \ref nssuControlGetPreparedCardUpdateEulaDataSize.
1575 * @param[out] filesize Output filesize.
1576 */
1577Result nssuControlGetPreparedCardUpdateEulaData(NsSystemUpdateControl *c, const char* path, void* buffer, size_t size, u64 *filesize);
1578
1579/**
1580 * @brief SetupCardUpdateViaSystemUpdater
1581 * @note Same as \ref nssuControlSetupCardUpdate, except this doesn't run the code for fs cmds GetGameCardHandle/GetGameCardUpdatePartitionInfo, and uses fs OpenRegisteredUpdatePartition instead of OpenGameCardFileSystem.
1582 * @note Only available on [4.0.0+].
1583 * @param c \ref NsSystemUpdateControl
1584 * @param[in] buffer TransferMemory buffer, when NULL this is automatically allocated.
1585 * @param[in] size TransferMemory buffer size, see \ref NSSU_CARDUPDATE_TMEM_SIZE_DEFAULT.
1586 */
1588
1589/**
1590 * @brief HasReceived
1591 * @note Only available on [4.0.0+].
1592 * @param c \ref NsSystemUpdateControl
1593 * @param[out] out Output flag.
1594 */
1596
1597/**
1598 * @brief RequestReceiveSystemUpdate
1599 * @note addr/port are little-endian.
1600 * @note Only available on [4.0.0+].
1601 * @param c \ref NsSystemUpdateControl
1602 * @param[out] a \ref AsyncResult
1603 * @param[in] addr Server IPv4 address.
1604 * @param[in] port Socket port. qlaunch uses value 55556.
1605 * @param[in] info \ref NsSystemDeliveryInfo
1606 */
1608
1609/**
1610 * @brief GetReceiveProgress
1611 * @note Only available on [4.0.0+].
1612 * @param c \ref NsSystemUpdateControl
1613 * @param[out] out \ref NsSystemUpdateProgress
1614 */
1616
1617/**
1618 * @brief ApplyReceivedUpdate
1619 * @note Only available on [4.0.0+].
1620 * @param c \ref NsSystemUpdateControl
1621 */
1623
1624/**
1625 * @brief Gets the filesize for the specified ReceivedEulaData.
1626 * @note See the note for \ref nssuControlGetDownloadedEulaDataSize.
1627 * @note Only available on [4.0.0+].
1628 * @param c \ref NsSystemUpdateControl
1629 * @param[in] path EulaData path.
1630 * @param[out] filesize Output filesize.
1631 */
1633
1634/**
1635 * @brief Gets the specified ReceivedEulaData.
1636 * @note See the note for \ref nssuControlGetDownloadedEulaDataSize.
1637 * @note Only available on [4.0.0+].
1638 * @param c \ref NsSystemUpdateControl
1639 * @param[in] path EulaData path.
1640 * @param[out] buffer Output buffer.
1641 * @param[in] size Size of the output buffer, must be at least the output size from \ref nssuControlGetReceivedEulaDataSize.
1642 * @param[out] filesize Output filesize.
1643 */
1644Result nssuControlGetReceivedEulaData(NsSystemUpdateControl *c, const char* path, void* buffer, size_t size, u64 *filesize);
1645
1646/**
1647 * @brief Does setup for ReceiveSystemUpdate by using the same nim cmds as \ref nssuDestroySystemUpdateTask.
1648 * @note qlaunch uses this before \ref nssuControlRequestReceiveSystemUpdate.
1649 * @note Only available on [4.0.0+].
1650 * @param c \ref NsSystemUpdateControl
1651 */
1653
1654/**
1655 * @brief RequestCheckLatestUpdateIncludesRebootlessUpdate
1656 * @note Only available on [6.0.0+].
1657 * @param c \ref NsSystemUpdateControl
1658 * @param[out] a \ref AsyncValue
1659 */
1661
1662///@}
1663
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 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