#include <3ds/svc.h>
#include <3ds/srv.h>
#include <3ds/services/httpc.h>
+#include <3ds/ipc.h>
Handle __httpc_servhandle = 0;
{
u32* cmdbuf=getThreadCommandBuffer();
- cmdbuf[0]=0x10044; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0x1,1,4); // 0x10044
cmdbuf[1]=0x1000; //unk
- cmdbuf[2]=0x20;//processID header, following word is set to processID by the arm11kernel.
- cmdbuf[4]=0;
+ cmdbuf[2]=IPC_Desc_CurProcessHandle();
+ cmdbuf[4]=IPC_Desc_SharedHandles(1);
cmdbuf[5]=0;//Some sort of handle.
Result ret=0;
u32* cmdbuf=getThreadCommandBuffer();
u32 l=strlen(url)+1;
- cmdbuf[0]=0x20082; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0x2,2,2); // 0x20082
cmdbuf[1]=l;
cmdbuf[2]=0x01; //unk
- cmdbuf[3]=(l<<4)|0xA;
+ cmdbuf[3]=IPC_Desc_Buffer(l,IPC_BUFFER_R);
cmdbuf[4]=(u32)url;
Result ret=0;
{
u32* cmdbuf=getThreadCommandBuffer();
- cmdbuf[0]=0x80042; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0x8,1,2); // 0x80042
cmdbuf[1]=contextHandle;
- cmdbuf[2]=0x20; //unk, constant afaict
+ cmdbuf[2]=IPC_Desc_CurProcessHandle();
Result ret=0;
if((ret=svcSendSyncRequest(handle)))return ret;
{
u32* cmdbuf=getThreadCommandBuffer();
- cmdbuf[0]=0xe0040; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0xE,1,0); // 0xE0040
cmdbuf[1]=contextHandle;
Result ret=0;
{
u32* cmdbuf=getThreadCommandBuffer();
- cmdbuf[0]=0x30040; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0x3,1,0); // 0x30040
cmdbuf[1]=contextHandle;
Result ret=0;
int name_len=strlen(name)+1;
int value_len=strlen(value)+1;
- cmdbuf[0]=0x1100c4; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0x11,3,4); // 0x1100C4
cmdbuf[1]=contextHandle;
cmdbuf[2]=name_len;
cmdbuf[3]=value_len;
- cmdbuf[4]=(name_len<<14)|0xC02;
+ cmdbuf[4]=IPC_Desc_StaticBuffer(name_len,3);
cmdbuf[5]=(u32)name;
- cmdbuf[6]=(value_len<<4)|0xA;
+ cmdbuf[6]=IPC_Desc_Buffer(value_len,IPC_BUFFER_R);
cmdbuf[7]=(u32)value;
Result ret=0;
{
u32* cmdbuf=getThreadCommandBuffer();
- cmdbuf[0]=0x90040; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0x9,1,0); // 0x90040
cmdbuf[1]=contextHandle;
Result ret=0;
{
u32* cmdbuf=getThreadCommandBuffer();
- cmdbuf[0]=0xB0082; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0xB,2,2); // 0xB0082
cmdbuf[1]=contextHandle;
cmdbuf[2]=size;
- cmdbuf[3]=(size<<4)|12;
+ cmdbuf[3]=IPC_Desc_Buffer(size,IPC_BUFFER_W);
cmdbuf[4]=(u32)buffer;
Result ret=0;
{
u32* cmdbuf=getThreadCommandBuffer();
- cmdbuf[0]=0x50040; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0x5,1,0); // 0x50040
cmdbuf[1]=contextHandle;
Result ret=0;
{
u32* cmdbuf=getThreadCommandBuffer();
- cmdbuf[0]=0x60040; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0x6,1,0); // 0x60040
cmdbuf[1]=contextHandle;
Result ret=0;
{
u32* cmdbuf=getThreadCommandBuffer();
- cmdbuf[0]=0x220040; //request header code
+ cmdbuf[0]=IPC_MakeHeader(0x22,1,0); // 0x220040
cmdbuf[1]=contextHandle;
Result ret=0;