aboutsummaryrefslogtreecommitdiff
path: root/ctru-sys/src/services/am.rs
blob: 9f7a4459c13f24df6fe7f16a0d3e0129bae806d0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
/* automatically generated by rust-bindgen */

#![allow(dead_code,
         non_camel_case_types,
         non_upper_case_globals,
         non_snake_case)]
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct AM_TitleEntry {
    pub titleID: u64_,
    pub size: u64_,
    pub version: u16_,
    pub unk: [u8_; 6usize],
}
impl ::core::default::Default for AM_TitleEntry {
    fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
#[derive(Copy, Clone)]
#[repr(u32)]
#[derive(Debug)]
pub enum Enum_Unnamed1 {
    AM_STATUS_MASK_INSTALLING = 1,
    AM_STATUS_MASK_AWAITING_FINALIZATION = 2,
}
#[derive(Copy, Clone)]
#[repr(u32)]
#[derive(Debug)]
pub enum AM_InstallStatus {
    AM_STATUS_ABORTED = 2,
    AM_STATUS_SAVED = 3,
    AM_STATUS_INSTALL_IN_PROGRESS = 2050,
    AM_STATUS_AWAITING_FINALIZATION = 2051,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct AM_PendingTitleEntry {
    pub titleId: u64_,
    pub version: u16_,
    pub status: u16_,
    pub titleType: u32_,
    pub unk: [u8_; 8usize],
}
impl ::core::default::Default for AM_PendingTitleEntry {
    fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
#[derive(Copy, Clone)]
#[repr(u32)]
#[derive(Debug)]
pub enum Enum_Unnamed2 {
    AM_DELETE_PENDING_NON_SYSTEM = 1,
    AM_DELETE_PENDING_SYSTEM = 2,
}
#[repr(C)]
#[derive(Copy, Clone)]
#[derive(Debug)]
pub struct AM_TWLPartitionInfo {
    pub capacity: u64_,
    pub freeSpace: u64_,
    pub titlesCapacity: u64_,
    pub titlesFreeSpace: u64_,
}
impl ::core::default::Default for AM_TWLPartitionInfo {
    fn default() -> Self { unsafe { ::core::mem::zeroed() } }
}
extern "C" {
    pub fn amInit() -> Result;
    pub fn amAppInit() -> Result;
    pub fn amExit();
    pub fn amGetSessionHandle() -> *mut Handle;
    pub fn AM_GetTitleCount(mediatype: FS_MediaType, count: *mut u32_)
     -> Result;
    pub fn AM_GetTitleList(titlesRead: *mut u32_, mediatype: FS_MediaType,
                           titleCount: u32_, titleIds: *mut u64_) -> Result;
    pub fn AM_GetTitleInfo(mediatype: FS_MediaType, titleCount: u32_,
                           titleIds: *mut u64_, titleInfo: *mut AM_TitleEntry)
     -> Result;
    pub fn AM_GetTicketCount(count: *mut u32_) -> Result;
    pub fn AM_GetTicketList(ticketsRead: *mut u32_, ticketCount: u32_,
                            skip: u32_, ticketIds: *mut u64_) -> Result;
    pub fn AM_GetPendingTitleCount(count: *mut u32_, mediatype: FS_MediaType,
                                   statusMask: u32_) -> Result;
    pub fn AM_GetPendingTitleList(titlesRead: *mut u32_, titleCount: u32_,
                                  mediatype: FS_MediaType, statusMask: u32_,
                                  titleIds: *mut u64_) -> Result;
    pub fn AM_GetPendingTitleInfo(titleCount: u32_, mediatype: FS_MediaType,
                                  titleIds: *mut u64_,
                                  titleInfo: *mut AM_PendingTitleEntry)
     -> Result;
    pub fn AM_GetDeviceId(deviceID: *mut u32_) -> Result;
    pub fn AM_ExportTwlBackup(titleID: u64_, operation: u8_,
                              workbuf: *mut ::libc::c_void,
                              workbuf_size: u32_,
                              filepath: *const ::libc::c_char) -> Result;
    pub fn AM_ImportTwlBackup(filehandle: Handle, operation: u8_,
                              buffer: *mut ::libc::c_void, size: u32_)
     -> Result;
    pub fn AM_ReadTwlBackupInfo(filehandle: Handle,
                                outinfo: *mut ::libc::c_void,
                                outinfo_size: u32_,
                                workbuf: *mut ::libc::c_void,
                                workbuf_size: u32_,
                                banner: *mut ::libc::c_void,
                                banner_size: u32_) -> Result;
    pub fn AM_GetTWLPartitionInfo(info: *mut AM_TWLPartitionInfo) -> Result;
    pub fn AM_StartCiaInstall(mediatype: FS_MediaType, ciaHandle: *mut Handle)
     -> Result;
    pub fn AM_StartDlpChildCiaInstall(ciaHandle: *mut Handle) -> Result;
    pub fn AM_CancelCIAInstall(ciaHandle: Handle) -> Result;
    pub fn AM_FinishCiaInstall(ciaHandle: Handle) -> Result;
    pub fn AM_DeleteTitle(mediatype: FS_MediaType, titleID: u64_) -> Result;
    pub fn AM_DeleteAppTitle(mediatype: FS_MediaType, titleID: u64_)
     -> Result;
    pub fn AM_DeleteTicket(ticketId: u64_) -> Result;
    pub fn AM_DeletePendingTitle(mediatype: FS_MediaType, titleId: u64_)
     -> Result;
    pub fn AM_DeletePendingTitles(mediatype: FS_MediaType, flags: u32_)
     -> Result;
    pub fn AM_DeleteAllPendingTitles(mediatype: FS_MediaType) -> Result;
    pub fn AM_InstallNativeFirm() -> Result;
    pub fn AM_InstallFirm(titleID: u64_) -> Result;
    pub fn AM_GetTitleProductCode(mediatype: FS_MediaType, titleId: u64_,
                                  productCode: *mut ::libc::c_char) -> Result;
    pub fn AM_GetTitleExtDataId(extDataId: *mut u64_, mediatype: FS_MediaType,
                                titleId: u64_) -> Result;
    pub fn AM_GetCiaFileInfo(mediatype: FS_MediaType,
                             titleEntry: *mut AM_TitleEntry,
                             fileHandle: Handle) -> Result;
    pub fn AM_GetCiaIcon(icon: *mut ::libc::c_void, fileHandle: Handle)
     -> Result;
    pub fn AM_GetCiaDependencies(dependencies: *mut u64_, fileHandle: Handle)
     -> Result;
    pub fn AM_GetCiaMetaOffset(metaOffset: *mut u64_, fileHandle: Handle)
     -> Result;
    pub fn AM_GetCiaCoreVersion(coreVersion: *mut u32_, fileHandle: Handle)
     -> Result;
    pub fn AM_GetCiaRequiredSpace(requiredSpace: *mut u64_,
                                  mediaType: FS_MediaType, fileHandle: Handle)
     -> Result;
    pub fn AM_GetCiaMetaSection(meta: *mut ::libc::c_void, size: u32_,
                                fileHandle: Handle) -> Result;
    pub fn AM_InitializeExternalTitleDatabase(overwrite: u8) -> Result;
    pub fn AM_QueryAvailableExternalTitleDatabase(available: *mut u8)
     -> Result;
    pub fn AM_InstallTicketBegin(ticketHandle: *mut Handle) -> Result;
    pub fn AM_InstallTicketAbort(ticketHandle: Handle) -> Result;
    pub fn AM_InstallTicketFinish(ticketHandle: Handle) -> Result;
    pub fn AM_InstallTitleBegin(mediaType: FS_MediaType, titleId: u64_,
                                unk: u8) -> Result;
    pub fn AM_InstallTitleStop() -> Result;
    pub fn AM_InstallTitleResume(mediaType: FS_MediaType, titleId: u64_)
     -> Result;
    pub fn AM_InstallTitleAbort() -> Result;
    pub fn AM_InstallTitleFinish() -> Result;
    pub fn AM_CommitImportTitles(mediaType: FS_MediaType, titleCount: u32_,
                                 temp: u8, titleIds: *mut u64_) -> Result;
    pub fn AM_InstallTmdBegin(tmdHandle: *mut Handle) -> Result;
    pub fn AM_InstallTmdAbort(tmdHandle: Handle) -> Result;
    pub fn AM_InstallTmdFinish(tmdHandle: Handle, unk: u8) -> Result;
    pub fn AM_CreateImportContentContexts(contentCount: u32_,
                                          contentIndices: *mut u16_)
     -> Result;
    pub fn AM_InstallContentBegin(contentHandle: *mut Handle, index: u16_)
     -> Result;
    pub fn AM_InstallContentStop(contentHandle: Handle) -> Result;
    pub fn AM_InstallContentResume(contentHandle: *mut Handle,
                                   resumeOffset: *mut u64_, index: u16_)
     -> Result;
    pub fn AM_InstallContentCancel(contentHandle: Handle) -> Result;
    pub fn AM_InstallContentFinish(contentHandle: Handle) -> Result;
    pub fn AM_ImportCertificates(cert1Size: u32_, cert1: *mut ::libc::c_void,
                                 cert2Size: u32_, cert2: *mut ::libc::c_void,
                                 cert3Size: u32_, cert3: *mut ::libc::c_void,
                                 cert4Size: u32_, cert4: *mut ::libc::c_void)
     -> Result;
    pub fn AM_ImportCertificate(certSize: u32_, cert: *mut ::libc::c_void)
     -> Result;
    pub fn AM_CommitImportTitlesAndUpdateFirmwareAuto(mediaType: FS_MediaType,
                                                      titleCount: u32_,
                                                      temp: u8,
                                                      titleIds: *mut u64_)
     -> Result;
}
use ::types::*;
use super::fs::FS_MediaType;