#include <3ds/svc.h>
#include <3ds/srv.h>
#include <3ds/services/fs.h>
+#include <3ds/ipc.h>
/*! @internal
*
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08010002;
- cmdbuf[1] = 0x20;
+ cmdbuf[0] = IPC_MakeHeader(0x801,0,2); // 0x8010002
+ cmdbuf[1] = IPC_Desc_CurProcessHandle();
Result ret = 0;
if((ret = svcSendSyncRequest(handle)))
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x080201C2;
+ cmdbuf[0] = IPC_MakeHeader(0x802,7,2); // 0x80201C2
cmdbuf[1] = 0;
cmdbuf[2] = archive.handleLow;
cmdbuf[3] = archive.handleHigh;
cmdbuf[5] = fileLowPath.size;
cmdbuf[6] = openFlags;
cmdbuf[7] = attributes;
- cmdbuf[8] = (fileLowPath.size << 14) | 0x2;
+ cmdbuf[8] = IPC_Desc_StaticBuffer(fileLowPath.size,0);
cmdbuf[9] = (u32)fileLowPath.data;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[ 0] = 0x08030204;
+ cmdbuf[ 0] = IPC_MakeHeader(0x803,8,4); // 0x8030204
cmdbuf[ 1] = 0;
cmdbuf[ 2] = archive.id;
cmdbuf[ 3] = archive.lowPath.type;
cmdbuf[ 6] = fileLowPath.size;
cmdbuf[ 7] = openFlags;
cmdbuf[ 8] = attributes;
- cmdbuf[ 9] = (archive.lowPath.size << 14) | 0x802;
+ cmdbuf[ 9] = IPC_Desc_StaticBuffer(archive.lowPath.size,2);
cmdbuf[10] = (u32)archive.lowPath.data;
- cmdbuf[11] = (fileLowPath.size << 14) | 0x2;
+ cmdbuf[11] = IPC_Desc_StaticBuffer(fileLowPath.size,0);
cmdbuf[12] = (u32)fileLowPath.data;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08040142;
+ cmdbuf[0] = IPC_MakeHeader(0x804,5,2); // 0x8040142
cmdbuf[1] = 0;
cmdbuf[2] = archive.handleLow;
cmdbuf[3] = archive.handleHigh;
cmdbuf[4] = fileLowPath.type;
cmdbuf[5] = fileLowPath.size;
- cmdbuf[6] = (fileLowPath.size << 14) | 0x2;
+ cmdbuf[6] = IPC_Desc_StaticBuffer(fileLowPath.size ,0);
cmdbuf[7] = (u32)fileLowPath.data;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08050244;
+ cmdbuf[0] = IPC_MakeHeader(0x805,9,4); // 0x8050244
cmdbuf[1] = 0;
cmdbuf[2] = srcArchive.handleLow;
cmdbuf[3] = srcArchive.handleHigh;
cmdbuf[7] = destArchive.handleHigh;
cmdbuf[8] = destFileLowPath.type;
cmdbuf[9] = destFileLowPath.size;
- cmdbuf[10] = (srcFileLowPath.size << 14) | 0x402;
+ cmdbuf[10] = IPC_Desc_StaticBuffer(srcFileLowPath.size,1);
cmdbuf[11] = (u32)srcFileLowPath.data;
- cmdbuf[12] = (destFileLowPath.size << 14) | 0x802;
+ cmdbuf[12] = IPC_Desc_StaticBuffer(destFileLowPath.size,2);
cmdbuf[13] = (u32)destFileLowPath.data;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08060142;
+ cmdbuf[0] = IPC_MakeHeader(0x806,5,2); // 0x8060142
cmdbuf[1] = 0;
cmdbuf[2] = archive.handleLow;
cmdbuf[3] = archive.handleHigh;
cmdbuf[4] = dirLowPath.type;
cmdbuf[5] = dirLowPath.size;
- cmdbuf[6] = (dirLowPath.size << 14) | 0x2;
+ cmdbuf[6] = IPC_Desc_StaticBuffer(dirLowPath.size,0);
cmdbuf[7] = (u32)dirLowPath.data;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08070142;
+ cmdbuf[0] = IPC_MakeHeader(0x807,5,2); // 0x8070142
cmdbuf[1] = 0;
cmdbuf[2] = archive.handleLow;
cmdbuf[3] = archive.handleHigh;
cmdbuf[4] = dirLowPath.type;
cmdbuf[5] = dirLowPath.size;
- cmdbuf[6] = (dirLowPath.size << 14) | 0x2;
+ cmdbuf[6] = IPC_Desc_StaticBuffer(dirLowPath.size,0);
cmdbuf[7] = (u32)dirLowPath.data;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08080202;
+ cmdbuf[0] = IPC_MakeHeader(0x808,8,2); // 0x8080202
cmdbuf[1] = 0;
cmdbuf[2] = archive.handleLow;
cmdbuf[3] = archive.handleHigh;
cmdbuf[6] = 0;
cmdbuf[7] = fileSize;
cmdbuf[8] = 0;
- cmdbuf[9] = (fileLowPath.size << 14) | 0x2;
+ cmdbuf[9] = IPC_Desc_StaticBuffer(fileLowPath.size,0);
cmdbuf[10] = (u32)fileLowPath.data;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08090182;
+ cmdbuf[0] = IPC_MakeHeader(0x809,6,2); // 0x8090182
cmdbuf[1] = 0;
cmdbuf[2] = archive.handleLow;
cmdbuf[3] = archive.handleHigh;
cmdbuf[4] = dirLowPath.type;
cmdbuf[5] = dirLowPath.size;
cmdbuf[6] = 0;
- cmdbuf[7] = (dirLowPath.size << 14) | 0x2;
+ cmdbuf[7] = IPC_Desc_StaticBuffer(dirLowPath.size,0);
cmdbuf[8] = (u32)dirLowPath.data;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x080A0244;
+ cmdbuf[0] = IPC_MakeHeader(0x80A,9,4); // 0x80A0244
cmdbuf[1] = 0;
cmdbuf[2] = srcArchive.handleLow;
cmdbuf[3] = srcArchive.handleHigh;
cmdbuf[7] = destArchive.handleHigh;
cmdbuf[8] = destDirLowPath.type;
cmdbuf[9] = destDirLowPath.size;
- cmdbuf[10] = (srcDirLowPath.size << 14) | 0x402;
+ cmdbuf[10] = IPC_Desc_StaticBuffer(srcDirLowPath.size,1);
cmdbuf[11] = (u32)srcDirLowPath.data;
- cmdbuf[12] = (destDirLowPath.size << 14) | 0x802;
+ cmdbuf[12] = IPC_Desc_StaticBuffer(destDirLowPath.size,2);
cmdbuf[13] = (u32)destDirLowPath.data;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x080B0102;
+ cmdbuf[0] = IPC_MakeHeader(0x80B,4,2); // 0x80B0102
cmdbuf[1] = archive.handleLow;
cmdbuf[2] = archive.handleHigh;
cmdbuf[3] = dirLowPath.type;
cmdbuf[4] = dirLowPath.size;
- cmdbuf[5] = (dirLowPath.size << 14) | 0x2;
+ cmdbuf[5] = IPC_Desc_StaticBuffer(dirLowPath.size,0);
cmdbuf[6] = (u32)dirLowPath.data;
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x080C00C2;
+ cmdbuf[0] = IPC_MakeHeader(0x80C,3,2); // 0x80C00C2
cmdbuf[1] = archive->id;
cmdbuf[2] = archive->lowPath.type;
cmdbuf[3] = archive->lowPath.size;
- cmdbuf[4] = (archive->lowPath.size << 14) | 0x2;
+ cmdbuf[4] = IPC_Desc_StaticBuffer(archive->lowPath.size,0);
cmdbuf[5] = (u32)archive->lowPath.data;
Result ret = 0;
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x080E0080;
+ cmdbuf[0] = IPC_MakeHeader(0x80E,2,0); // 0x80E0080
cmdbuf[1] = archive->handleLow;
cmdbuf[2] = archive->handleHigh;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08140000;
+ cmdbuf[0] = IPC_MakeHeader(0x814,0,0); // 0x8140000
Result ret = 0;
if((ret = svcSendSyncRequest(fsuHandle)))
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08150000;
+ cmdbuf[0] = IPC_MakeHeader(0x815,0,0); // 0x8150000
Result ret = 0;
if((ret = svcSendSyncRequest(fsuHandle)))
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08170000;
+ cmdbuf[0] = IPC_MakeHeader(0x817,0,0); // 0x8170000
Result ret = 0;
if((ret = svcSendSyncRequest(fsuHandle)))
{
u32* cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08680000;
+ cmdbuf[0] = IPC_MakeHeader(0x868,0,0); // 0x8680000
Result ret = 0;
if((ret = svcSendSyncRequest(fsuHandle)))
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08180000;
+ cmdbuf[0] = IPC_MakeHeader(0x818,0,0); // 0x8180000
Result ret = 0;
if((ret = svcSendSyncRequest(fsuHandle)))
{
u32* cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08080000;
+ cmdbuf[0] = IPC_MakeHeader(0x808,0,0); // 0x8080000
Result ret = 0;
if((ret = svcSendSyncRequest(handle)))
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x080200C2;
+ cmdbuf[0] = IPC_MakeHeader(0x802,3,2); // 0x80200C2
cmdbuf[1] = (u32)offset;
cmdbuf[2] = (u32)(offset >> 32);
cmdbuf[3] = size;
- cmdbuf[4] = (size << 4) | 0xC;
+ cmdbuf[4] = IPC_Desc_Buffer(size,IPC_BUFFER_W);
cmdbuf[5] = (u32)buffer;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08030102;
+ cmdbuf[0] = IPC_MakeHeader(0x803,4,2); // 0x8030102
cmdbuf[1] = (u32)offset;
cmdbuf[2] = (u32)(offset >> 32);
cmdbuf[3] = size;
cmdbuf[4] = flushFlags;
- cmdbuf[5] = (size << 4) | 0xA;
+ cmdbuf[5] = IPC_Desc_Buffer(size,IPC_BUFFER_R);
cmdbuf[6] = (u32)buffer;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08040000;
+ cmdbuf[0] = IPC_MakeHeader(0x804,0,0); // 0x8040000
Result ret = 0;
if((ret = svcSendSyncRequest(handle)))
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08050080;
+ cmdbuf[0] = IPC_MakeHeader(0x805,2,0); // 0x8050080
cmdbuf[1] = (u32)size;
cmdbuf[2] = (u32)(size >> 32);
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08060000;
+ cmdbuf[0] = IPC_MakeHeader(0x806,0,0); // 0x8060000
Result ret = 0;
if((ret = svcSendSyncRequest(handle)))
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08070040;
+ cmdbuf[0] = IPC_MakeHeader(0x807,1,0); // 0x8070040
cmdbuf[1] = attributes;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08090000;
+ cmdbuf[0] = IPC_MakeHeader(0x809,0,0); // 0x8090000
Result ret = 0;
if((ret = svcSendSyncRequest(handle)))
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08010042;
+ cmdbuf[0] = IPC_MakeHeader(0x801,1,2); // 0x8010042
cmdbuf[1] = entryCount;
- cmdbuf[2] = ((entryCount*0x228) << 4) | 0xC;
+ cmdbuf[2] = IPC_Desc_Buffer(entryCount*0x228,IPC_BUFFER_W);
cmdbuf[3] = (u32)buffer;
Result ret = 0;
{
u32 *cmdbuf = getThreadCommandBuffer();
- cmdbuf[0] = 0x08020000;
+ cmdbuf[0] = IPC_MakeHeader(0x802,0,0); // 0x8020000
Result ret = 0;
if((ret = svcSendSyncRequest(handle)))