Added bossDeleteNsData() and bossReadNsData().
This commit is contained in:
parent
435fad724b
commit
7ccfe71e45
@ -73,13 +73,30 @@ Result bossRegisterTask(const char *taskID, u8 unk0, u8 unk1);
|
|||||||
Result bossSendProperty(u16 PropertyID, const void* buf, u32 size);
|
Result bossSendProperty(u16 PropertyID, const void* buf, u32 size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief ?
|
* @brief Deletes the content file for the specified NsDataId.
|
||||||
|
* @param NsDataId NsDataId
|
||||||
|
*/
|
||||||
|
Result bossDeleteNsData(u32 NsDataId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Reads data from the content for the specified NsDataId.
|
||||||
|
* @param NsDataId NsDataId
|
||||||
|
* @param offset Offset in the content.
|
||||||
|
* @param buffer Output buffer.
|
||||||
|
* @param size Output buffer size.
|
||||||
|
* @param transfer_total Optional output actual read size, can be NULL.
|
||||||
|
* @param unk_out Optional unknown output, can be NULL.
|
||||||
|
*/
|
||||||
|
Result bossReadNsData(u32 NsDataId, u64 offset, void* buffer, u32 size, u32 *transfer_total, u32 *unk_out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Starts a task soon after running this command.
|
||||||
* @param taskID BOSS taskID.
|
* @param taskID BOSS taskID.
|
||||||
*/
|
*/
|
||||||
Result bossStartTaskImmediate(const char *taskID);
|
Result bossStartTaskImmediate(const char *taskID);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief ?
|
* @brief Similar to bossStartTaskImmediate?
|
||||||
* @param taskID BOSS taskID.
|
* @param taskID BOSS taskID.
|
||||||
*/
|
*/
|
||||||
Result bossStartBgImmediate(const char *taskID);
|
Result bossStartBgImmediate(const char *taskID);
|
||||||
|
@ -195,6 +195,43 @@ Result bossGetTaskState(const char *taskID, s8 inval, u8 *status, u32 *out1, u8
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result bossDeleteNsData(u32 NsDataId)
|
||||||
|
{
|
||||||
|
Result ret = 0;
|
||||||
|
u32 *cmdbuf = getThreadCommandBuffer();
|
||||||
|
|
||||||
|
cmdbuf[0] = IPC_MakeHeader(0x26,1,0); // 0x260040
|
||||||
|
cmdbuf[1] = NsDataId;
|
||||||
|
|
||||||
|
if(R_FAILED(ret = svcSendSyncRequest(bossHandle)))return ret;
|
||||||
|
|
||||||
|
return (Result)cmdbuf[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
Result bossReadNsData(u32 NsDataId, u64 offset, void* buffer, u32 size, u32 *transfer_total, u32 *unk_out)
|
||||||
|
{
|
||||||
|
Result ret = 0;
|
||||||
|
u32 *cmdbuf = getThreadCommandBuffer();
|
||||||
|
|
||||||
|
cmdbuf[0] = IPC_MakeHeader(0x28,4,2); // 0x280102
|
||||||
|
cmdbuf[1] = NsDataId;
|
||||||
|
cmdbuf[2] = (u32) offset;
|
||||||
|
cmdbuf[3] = (u32) (offset >> 32);
|
||||||
|
cmdbuf[4] = size;
|
||||||
|
cmdbuf[5] = IPC_Desc_Buffer(size, IPC_BUFFER_W);
|
||||||
|
cmdbuf[6] = (u32)buffer;
|
||||||
|
|
||||||
|
if(R_FAILED(ret = svcSendSyncRequest(bossHandle)))return ret;
|
||||||
|
|
||||||
|
if(R_SUCCEEDED(ret))
|
||||||
|
{
|
||||||
|
if(transfer_total)*transfer_total = cmdbuf[2];
|
||||||
|
if(unk_out)*unk_out = cmdbuf[3];
|
||||||
|
}
|
||||||
|
|
||||||
|
return (Result)cmdbuf[1];
|
||||||
|
}
|
||||||
|
|
||||||
Result bossStartBgImmediate(const char *taskID)
|
Result bossStartBgImmediate(const char *taskID)
|
||||||
{
|
{
|
||||||
Result ret = 0;
|
Result ret = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user