Changes

give all the functions prototypes
Line 41: Line 41:  
  ios_ioctlv( fd, 0x05, 1, 0, vec); // ES_AddContentFinish(u32 cid)
 
  ios_ioctlv( fd, 0x05, 1, 0, vec); // ES_AddContentFinish(u32 cid)
 
  ios_ioctlv( fd, 0x06, 0, 0, vec); // ES_AddTitleFinish(void)
 
  ios_ioctlv( fd, 0x06, 0, 0, vec); // ES_AddTitleFinish(void)
  ios_ioctlv( fd, 0x07, 0, 1, vec); // ES_GetDeviceID
+
  ios_ioctlv( fd, 0x07, 0, 1, vec); // ES_GetDeviceID(u32 *id)
 
  ios_ioctlvReboot(fd, 0x08, 2, 0, vec); // ES_LaunchTitle(u64 titleID, const tikview *view)
 
  ios_ioctlvReboot(fd, 0x08, 2, 0, vec); // ES_LaunchTitle(u64 titleID, const tikview *view)
 
  ios_ioctlv( fd, 0x09, 1, 0, vec);  // ES_OpenContent(u16 index)
 
  ios_ioctlv( fd, 0x09, 1, 0, vec);  // ES_OpenContent(u16 index)
 
  ios_ioctlv( fd, 0x0A, 1, 1, vec); // ES_ReadContent(s32 cfd, u8 *data, u32 data_size)
 
  ios_ioctlv( fd, 0x0A, 1, 1, vec); // ES_ReadContent(s32 cfd, u8 *data, u32 data_size)
 
  ios_ioctlv( fd, 0x0B, 1, 0, vec); // ES_CloseContent(s32 cfd)
 
  ios_ioctlv( fd, 0x0B, 1, 0, vec); // ES_CloseContent(s32 cfd)
  ios_ioctlv( fd, 0x0C, 0, 1, vec); // ES_GetOwnedTitlesCount
+
  ios_ioctlv( fd, 0x0C, 0, 1, vec); // ES_GetOwnedTitlesCount(u32 *count)
  ios_ioctlv( fd, 0x0D, 1, 1, vec); // ES_GetOwnedTitles
+
  ios_ioctlv( fd, 0x0D, 1, 1, vec); // ES_GetOwnedTitles(u64 *titles, u32 count)
  ios_ioctlv( fd, 0x0E, 0, 1, vec); // ES_GetTitlesCount
+
  ios_ioctlv( fd, 0x0E, 0, 1, vec); // ES_GetTitlesCount(u32 *count)
  ios_ioctlv( fd, 0x0F, 1, 1, vec); // ES_GetTitles
+
  ios_ioctlv( fd, 0x0F, 1, 1, vec); // ES_GetTitles(u64 *titles)
  ios_ioctlv( fd, 0x10, 1, 1, vec); // ES_GetTitleContentsCount
+
  ios_ioctlv( fd, 0x10, 1, 1, vec); // ES_GetTitleContentsCount(u64 titleID, u32 *count)
  ios_ioctlv( fd, 0x11, 2, 1, vec); // ES_GetTitleContent
+
  ios_ioctlv( fd, 0x11, 2, 1, vec); // ES_GetTitleContent(u64 titleID, u32 *contents, u32 count)
 
  ios_ioctlv( fd, 0x12, 1, 1, vec); // ES_GetNumTicketViews(u64 titleID, u32 *cnt)
 
  ios_ioctlv( fd, 0x12, 1, 1, vec); // ES_GetNumTicketViews(u64 titleID, u32 *cnt)
 
  ios_ioctlv( fd, 0x13, 2, 1, vec); // ES_GetTicketViews(u64 titleID, tikview *views, u32 cnt)
 
  ios_ioctlv( fd, 0x13, 2, 1, vec); // ES_GetTicketViews(u64 titleID, tikview *views, u32 cnt)
  ios_ioctlv( fd, 0x14, 1, 1, vec); // ES_GetTmdViewSize
+
  ios_ioctlv( fd, 0x14, 1, 1, vec); // ES_GetTmdViewSize(u64 titleID, u32 *size)
  ios_ioctlv( fd, 0x15, 2, 1, vec); // ES_GetTmdView
+
  ios_ioctlv( fd, 0x15, 2, 1, vec); // ES_GetTmdView(u64 titleID, tmdview *view, u32 size)
  ios_ioctlv( fd, 0x16, 1, 2, vec); // ES_GetConsumption
+
  ios_ioctlv( fd, 0x16, 1, 2, vec); // ES_GetConsumption(u64 ticketID, tiklimit *limits, u32 max);
  ios_ioctlv( fd, 0x17, 1, 0, vec); // ES_DeleteTitle
+
  ios_ioctlv( fd, 0x17, 1, 0, vec); // ES_DeleteTitle(u64 titleID)
  ios_ioctlv( fd, 0x18, 1, 0, vec); // ES_DeleteTicket
+
  ios_ioctlv( fd, 0x18, 1, 0, vec); // ES_DeleteTicket(const tikview *view)
  ios_ioctlv( fd, 0x19, 1, 1, vec); // ES_DIGetTmdViewSize( u8 *TMD, u32 *TMDViewSize )
+
  ios_ioctlv( fd, 0x19, 1, 1, vec); // ES_DIGetTmdViewSize(const TMD *tmd, u32 *size)
  ios_ioctlv( fd, 0x1A, 2, 1, vec); // ES_DiGetTmdView
+
  ios_ioctlv( fd, 0x1A, 2, 1, vec); // ES_DiGetTmdView(const TMD *tmd, tmdview *view, u32 size)
  ios_ioctlv( fd, 0x1B, 1, 1, vec); // ES_DiGetTicketView
+
  ios_ioctlv( fd, 0x1B, 1, 1, vec); // ES_DiGetTicketView(const Ticket *ticket, tikview *view)
  ios_ioctlv( fd, 0x1C, 4, 2, vec); // ES_DiVerify
+
  ios_ioctlv( fd, 0x1C, 4, 2, vec); // ES_DiVerify(const signed_blob *certificates, u32 certificates_size, const void *crl, u32 crl_size, const Ticket *ticket, const TMD *tmd, u32 tmd_size, u32 *key_handle, sha1 *hashes);
  ios_ioctlv( fd, 0x1D, 1, 1, vec); // ES_GetDataDir
+
  ios_ioctlv( fd, 0x1D, 1, 1, vec); // ES_GetDataDir(u64 titleID, char *out)
  ios_ioctlv( fd, 0x1E, 0, 1, vec); // ES_GetDeviceCert(u8 *outbuf)
+
  ios_ioctlv( fd, 0x1E, 0, 1, vec); // ES_GetDeviceCert(signed_blob *out)
  ios_ioctlv( fd, 0x1F, 6, 0, vec); // ES_ImportBoot( const signed_blob *tik, u32 tik_size, const signed_blob *tik_certs, u32 tik_certs_size, const signed_blob *tmd, u32 tmd_size, const signed_blob *tmd_certs, u32 tmd_certs_size, const u8 *content, u32 content_size )
+
  ios_ioctlv( fd, 0x1F, 6, 0, vec); // ES_ImportBoot(const signed_blob *tik, u32 tik_size, const signed_blob *tik_certs, u32 tik_certs_size, const signed_blob *tmd, u32 tmd_size, const signed_blob *tmd_certs, u32 tmd_certs_size, const u8 *content, u32 content_size)
  ios_ioctlv( fd, 0x20, 0, 1, vec); // ES_GetTitleId
+
  ios_ioctlv( fd, 0x20, 0, 1, vec); // ES_GetTitleId(u64 *out)
  ios_ioctlv( fd, 0x21, 1, 0, vec); // ES_SetUid
+
  ios_ioctlv( fd, 0x21, 1, 0, vec); // ES_SetUid(u64 titleID)
  ios_ioctlv( fd, 0x22, 1, 0, vec); // ES_DeleteTitleContent(u64 titleID) - deletes all files containing 'app' in a /title/xxxxxxxx/yyyyyyyy/content
+
  ios_ioctlv( fd, 0x22, 1, 0, vec); // ES_DeleteTitleContents(u64 titleID) - deletes all files containing 'app' in a /title/xxxxxxxx/yyyyyyyy/content
  ios_ioctlv( fd, 0x23, 3, 0, vec); // ES_SeekContent
+
  ios_ioctlv( fd, 0x23, 3, 0, vec); // ES_SeekContent(int cfd, int where, int whence)
 
  ios_ioctlv( fd, 0x24, 3, 0, vec); // ES_OpenTitleContent(u64 titleID, const tikview *view, u16 index)
 
  ios_ioctlv( fd, 0x24, 3, 0, vec); // ES_OpenTitleContent(u64 titleID, const tikview *view, u16 index)
 
  ios_ioctlv( fd, 0x25, 0, 0, vec); // ES_LaunchBC(void)
 
  ios_ioctlv( fd, 0x25, 0, 0, vec); // ES_LaunchBC(void)
  ios_ioctlv( fd, 0x26, 1, 1, vec); // ES_ExportTitleInit
+
  ios_ioctlv( fd, 0x26, 1, 1, vec); // ES_ExportTitleInit(TMD *tmd_out, u32 tmd_size)
  ios_ioctlv( fd, 0x27, 2, 0, vec); // ES_ExportContentBegin
+
  ios_ioctlv( fd, 0x27, 2, 0, vec); // ES_ExportContentBegin(u64 titleID, u32 cid)
  ios_ioctlv( fd, 0x28, 1, 1, vec); // ES_ExportContentData
+
  ios_ioctlv( fd, 0x28, 1, 1, vec); // ES_ExportContentData(s32 cfd, void *data, u32 data_size)
  ios_ioctlv( fd, 0x29, 1, 0, vec); // ES_ExportContentEnd
+
  ios_ioctlv( fd, 0x29, 1, 0, vec); // ES_ExportContentEnd(s32 cfd)
 
  ios_ioctlv( fd, 0x2A, 0, 0, vec); // ES_ExportTitleDone(void)
 
  ios_ioctlv( fd, 0x2A, 0, 0, vec); // ES_ExportTitleDone(void)
  ios_ioctlv( fd, 0x2B, 1, 0, vec); // ES_AddTmd
+
  ios_ioctlv( fd, 0x2B, 1, 0, vec); // ES_ReimportTitleInit(const TMD *tmd, u32 tmd_size)
  ios_ioctlv( fd, 0x2C, 3, 2, vec); // ES_Encrypt(u32 keynum, u8 *iv, u8 *source, u32 size, u8 *dest)
+
  ios_ioctlv( fd, 0x2C, 3, 2, vec); // ES_Encrypt(u32 keynum, u32 *iv, const void *source, u32 size, void *dest)
  ios_ioctlv( fd, 0x2D, 3, 2, vec); // ES_Decrypt(u32 keynum, u8 *iv, u8 *source, u32 size, u8 *dest)
+
  ios_ioctlv( fd, 0x2D, 3, 2, vec); // ES_Decrypt(u32 keynum, u32 *iv, const void *source, u32 size, void *dest)
 
  ios_ioctlv( fd, 0x2E, 0, 1, vec); // ES_GetBoot2Version(u32 *version)
 
  ios_ioctlv( fd, 0x2E, 0, 1, vec); // ES_GetBoot2Version(u32 *version)
 
  ios_ioctlv( fd, 0x2F, 0, 0, vec); // ES_AddTitleCancel(void)
 
  ios_ioctlv( fd, 0x2F, 0, 0, vec); // ES_AddTitleCancel(void)
  ios_ioctlv( fd, 0x30, 1, 2, vec); // ES_Sign(u8 *source, u32 size, u8 *sig, u8 *certs)
+
  ios_ioctlv( fd, 0x30, 1, 2, vec); // ES_Sign(const void *data, u32 size, u8 *ap_signature, u8 *ap_certificate)
  ios_ioctlv( fd, 0x31, 3, 0, vec); // ES_VerifySign
+
  ios_ioctlv( fd, 0x31, 3, 0, vec); // ES_VerifySign(const void *data, u32 size, const u8 *ap_signature, const signed_blob* certificates, u32 certificates_size)
 
  // the following functions are only available in IOS28+
 
  // the following functions are only available in IOS28+
  ios_ioctlv( fd, 0x32, 1, 1, vec); // ES_GetStoredContentCount
+
  ios_ioctlv( fd, 0x32, 1, 1, vec); // ES_GetStoredContentCount(const TMD *tmd, u32 *count)
  ios_ioctlv( fd, 0x33, 2, 1, vec); // ES_GetStoredContent
+
  ios_ioctlv( fd, 0x33, 2, 1, vec); // ES_GetStoredContent(const TMD* tmd, u32 *contents, u32 count)
  ios_ioctlv( fd, 0x34, 1, 1, vec); // ES_GetStoredTmdSize
+
  ios_ioctlv( fd, 0x34, 1, 1, vec); // ES_GetStoredTmdSize(u64 titleID, u32 *size)
  ios_ioctlv( fd, 0x35, 2, 1, vec); // ES_GetStoredTmd
+
  ios_ioctlv( fd, 0x35, 2, 1, vec); // ES_GetStoredTmd(u64 titlteID, TMD *tmd);
  ios_ioctlv( fd, 0x36, 0, 1, vec); // ES_GetSharedContentCount
+
  ios_ioctlv( fd, 0x36, 0, 1, vec); // ES_GetSharedContentCount(u32 *count)
  ios_ioctlv( fd, 0x37, 1, 1, vec); // ES_GetSharedContents
+
  ios_ioctlv( fd, 0x37, 1, 1, vec); // ES_GetSharedContents(sha1 *contents, u32 count)
  ios_ioctlv( fd, 0x38, 1, 0, vec); // ES_DeleteSharedContent
+
  ios_ioctlv( fd, 0x38, 1, 0, vec); // ES_DeleteSharedContent(sha1 hash)
  ios_ioctlv( fd, 0x39, 0, 1, vec); // ES_GetDiTmdSize
+
  ios_ioctlv( fd, 0x39, 0, 1, vec); // ES_GetDiTmdSize(u32 *size)
  ios_ioctlv( fd, 0x3A, 1, 1, vec); // ES_GetDiTmd
+
  ios_ioctlv( fd, 0x3A, 1, 1, vec); // ES_GetDiTmd(TMD *tmd, u32 size)
  ios_ioctlv( fd, 0x3B, 4, 2, vec); // ES_DiVerifyWithTicketView (DI only; takes a ticket view instead of a ticket and calls ES_DiVerify)
+
  ios_ioctlv( fd, 0x3B, 4, 2, vec); // ES_DiVerifyWithTicketView(const signed_blob *certificates, u32 certificates_size, const void *crl, u32 crl_size, const tikview *view, const TMD *tmd, u32 tmd_size, u32 *key_handle, sha1 *hashes)
  ios_ioctlv( fd, 0x3C, 2, 1, vec); // ES_SetupStreamKey(TicketView* ticket_view, TMD* tmd, u32 tmd_size, int* key_handle) (WFS only, only usable for some title types and UIDs)
+
  ios_ioctlv( fd, 0x3C, 2, 1, vec); // ES_SetupStreamKey(const tikview *ticket_view, const TMD *tmd, u32 tmd_size, u32 *key_handle) (WFS only, only usable for some title types and UIDs)
  ios_ioctlv( fd, 0x3D, 0, 1, vec); // ES_DeleteStreamKey (calls IOSC_DeleteObject)
+
  ios_ioctlv( fd, 0x3D, 0, 1, vec); // ES_DeleteStreamKey(u32 *key_handle) (calls IOSC_DeleteObject, without any second thought...?)
 
  // the following functions are only available in IOS37+ but not in IOS38
 
  // the following functions are only available in IOS37+ but not in IOS38
  ios_ioctlv( fd, 0x3E, 2, 0, vec); // Unknown ... Deletes a content from a title's private directory
+
  ios_ioctlv( fd, 0x3E, 2, 0, vec); // ES_DeleteTitleContent(u64 titleID, u32 cid)
 
  // the following functions are only available in IOS37v3609+ but not in IOS38
 
  // the following functions are only available in IOS37v3609+ but not in IOS38
 
  ios_ioctlv( fd, 0x3F, ?, ?, vec); // non-existant ioctl why? ... because.
 
  ios_ioctlv( fd, 0x3F, ?, ?, vec); // non-existant ioctl why? ... because.
  ios_ioctlv( fd, 0x40, 1, 1, vec); // ES_GetV0TicketFromView(const u8* ticket_view, u8* ticket)
+
  ios_ioctlv( fd, 0x40, 1, 1, vec); // ES_GetV0TicketFromView(const tikview* ticket_view, Ticket* ticket)
 
  // the following functions are only available in IOS56+
 
  // the following functions are only available in IOS56+
  ios_ioctlv( fd, 0x41, 1, 1, vec); // Unknown -- retrieves a key?
+
  ios_ioctlv( fd, 0x41, 1, 1, vec); // forwarder for GetProcessPriorities (syscall 0x79)
  ios_ioctlv( fd, 0x42, 2, 0, vec); // Unknown -- something with a key?
+
  ios_ioctlv( fd, 0x42, 2, 0, vec); // forwarder for SetProcessPriorities (syscall 0x78)
 
  // the following functions are only available in IOS56v5405+/IOS57v5661+/IOS61v5405+/IOS70+ Please check (I thought it was a rule never add new functions existing IOS)
 
  // the following functions are only available in IOS56v5405+/IOS57v5661+/IOS61v5405+/IOS70+ Please check (I thought it was a rule never add new functions existing IOS)
  ios_ioctlv( fd, 0x43, 1, 1, vec); // ES_GetTicketFromView(const u8* ticket_view, u8* ticket, u32* ticket_size) -- used to get the ticket size from a view (internally called with ticket = nullptr)
+
  ios_ioctlv( fd, 0x43, 1, 1, vec); // ES_GetTicketSizeFromView(const tikview* view, u32* ticket_size) -- used to get the ticket size from a view (internally called with ticket = nullptr)
  ios_ioctlv( fd, 0x44, 2, 1, vec); // ES_GetTicketFromView(const u8* ticket_view, u8* ticket, u32* ticket_size) -- used to get a ticket from a view
+
  ios_ioctlv( fd, 0x44, 2, 1, vec); // ES_GetTicketFromView(const tikview* view, Ticket *ticket, u32 ticket_size) -- used to get a ticket from a view
  ios_ioctlv( fd, 0x45, 0, 0, vec); // Unknown ... korean-common-key check
+
  ios_ioctlv( fd, 0x45, 0, 0, vec); // "ES_CheckHasKoreanKey"
    
== /dev/es IOS_Ioctlv ==
 
== /dev/es IOS_Ioctlv ==