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);
|
||||
|
||||
/**
|
||||
* @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.
|
||||
*/
|
||||
Result bossStartTaskImmediate(const char *taskID);
|
||||
|
||||
/**
|
||||
* @brief ?
|
||||
* @brief Similar to bossStartTaskImmediate?
|
||||
* @param taskID BOSS taskID.
|
||||
*/
|
||||
Result bossStartBgImmediate(const char *taskID);
|
||||
|
@ -195,6 +195,43 @@ Result bossGetTaskState(const char *taskID, s8 inval, u8 *status, u32 *out1, u8
|
||||
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 ret = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user