Renamed svc_camelCase to svcCamelCase.
This commit is contained in:
parent
baffd53020
commit
15d2dc765d
@ -1,8 +1,8 @@
|
|||||||
CC = arm-none-eabi-gcc
|
CC = arm-none-eabi-gcc
|
||||||
LINK = arm-none-eabi-ld
|
LINK = arm-none-eabi-ld
|
||||||
OBJCOPY = arm-none-eabi-objcopy
|
OBJCOPY = arm-none-eabi-objcopy
|
||||||
CTRULIB = ../libctru
|
CTRULIB = ../../libctru
|
||||||
CFLAGS += -Wall -std=c99 -march=armv6 -O3 -I"$(CTRULIB)/include" -I$(DEVKITPRO)/libnds/include
|
CFLAGS += -Wall -std=c99 -march=armv6 -O3 -I"$(CTRULIB)/include"
|
||||||
LDFLAGS += --script=ccd00.ld -L"$(DEVKITARM)/arm-none-eabi/lib" -L"$(CTRULIB)/lib"
|
LDFLAGS += --script=ccd00.ld -L"$(DEVKITARM)/arm-none-eabi/lib" -L"$(CTRULIB)/lib"
|
||||||
|
|
||||||
CFILES = $(wildcard source/*.c)
|
CFILES = $(wildcard source/*.c)
|
||||||
|
@ -38,15 +38,15 @@ void gspGpuInit()
|
|||||||
|
|
||||||
//setup our gsp shared mem section
|
//setup our gsp shared mem section
|
||||||
u8 threadID;
|
u8 threadID;
|
||||||
svc_createEvent(&gspEvent, 0x0);
|
svcCreateEvent(&gspEvent, 0x0);
|
||||||
GSPGPU_RegisterInterruptRelayQueue(NULL, gspEvent, 0x1, &gspSharedMemHandle, &threadID);
|
GSPGPU_RegisterInterruptRelayQueue(NULL, gspEvent, 0x1, &gspSharedMemHandle, &threadID);
|
||||||
svc_mapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
|
svcMapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
|
||||||
|
|
||||||
//map GSP heap
|
//map GSP heap
|
||||||
svc_controlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
|
svcControlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
|
||||||
|
|
||||||
//wait until we can write stuff to it
|
//wait until we can write stuff to it
|
||||||
svc_waitSynchronization1(gspEvent, 0x55bcb0);
|
svcWaitSynchronization1(gspEvent, 0x55bcb0);
|
||||||
|
|
||||||
//GSP shared mem : 0x2779F000
|
//GSP shared mem : 0x2779F000
|
||||||
gxCmdBuf=(u32*)(0x10002000+0x800+threadID*0x200);
|
gxCmdBuf=(u32*)(0x10002000+0x800+threadID*0x200);
|
||||||
@ -59,14 +59,14 @@ void gspGpuExit()
|
|||||||
GSPGPU_UnregisterInterruptRelayQueue(NULL);
|
GSPGPU_UnregisterInterruptRelayQueue(NULL);
|
||||||
|
|
||||||
//unmap GSP shared mem
|
//unmap GSP shared mem
|
||||||
svc_unmapMemoryBlock(gspSharedMemHandle, 0x10002000);
|
svcUnmapMemoryBlock(gspSharedMemHandle, 0x10002000);
|
||||||
svc_closeHandle(gspSharedMemHandle);
|
svcCloseHandle(gspSharedMemHandle);
|
||||||
svc_closeHandle(gspEvent);
|
svcCloseHandle(gspEvent);
|
||||||
|
|
||||||
gspExit();
|
gspExit();
|
||||||
|
|
||||||
//free GSP heap
|
//free GSP heap
|
||||||
svc_controlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
|
svcControlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void swapBuffers()
|
void swapBuffers()
|
||||||
@ -147,12 +147,12 @@ int main()
|
|||||||
{
|
{
|
||||||
aptWaitStatusEvent();
|
aptWaitStatusEvent();
|
||||||
}
|
}
|
||||||
svc_sleepThread(16666666);
|
svcSleepThread(16666666);
|
||||||
}
|
}
|
||||||
|
|
||||||
hidExit();
|
hidExit();
|
||||||
gspGpuExit();
|
gspGpuExit();
|
||||||
aptExit();
|
aptExit();
|
||||||
svc_exitProcess();
|
svcExitProcess();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -42,15 +42,15 @@ void gspGpuInit()
|
|||||||
|
|
||||||
//setup our gsp shared mem section
|
//setup our gsp shared mem section
|
||||||
u8 threadID;
|
u8 threadID;
|
||||||
svc_createEvent(&gspEvent, 0x0);
|
svcCreateEvent(&gspEvent, 0x0);
|
||||||
GSPGPU_RegisterInterruptRelayQueue(NULL, gspEvent, 0x1, &gspSharedMemHandle, &threadID);
|
GSPGPU_RegisterInterruptRelayQueue(NULL, gspEvent, 0x1, &gspSharedMemHandle, &threadID);
|
||||||
svc_mapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
|
svcMapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
|
||||||
|
|
||||||
//map GSP heap
|
//map GSP heap
|
||||||
svc_controlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
|
svcControlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
|
||||||
|
|
||||||
//wait until we can write stuff to it
|
//wait until we can write stuff to it
|
||||||
svc_waitSynchronization1(gspEvent, 0x55bcb0);
|
svcWaitSynchronization1(gspEvent, 0x55bcb0);
|
||||||
|
|
||||||
//GSP shared mem : 0x2779F000
|
//GSP shared mem : 0x2779F000
|
||||||
gxCmdBuf=(u32*)(0x10002000+0x800+threadID*0x200);
|
gxCmdBuf=(u32*)(0x10002000+0x800+threadID*0x200);
|
||||||
@ -63,14 +63,14 @@ void gspGpuExit()
|
|||||||
GSPGPU_UnregisterInterruptRelayQueue(NULL);
|
GSPGPU_UnregisterInterruptRelayQueue(NULL);
|
||||||
|
|
||||||
//unmap GSP shared mem
|
//unmap GSP shared mem
|
||||||
svc_unmapMemoryBlock(gspSharedMemHandle, 0x10002000);
|
svcUnmapMemoryBlock(gspSharedMemHandle, 0x10002000);
|
||||||
svc_closeHandle(gspSharedMemHandle);
|
svcCloseHandle(gspSharedMemHandle);
|
||||||
svc_closeHandle(gspEvent);
|
svcCloseHandle(gspEvent);
|
||||||
|
|
||||||
gspExit();
|
gspExit();
|
||||||
|
|
||||||
//free GSP heap
|
//free GSP heap
|
||||||
svc_controlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
|
svcControlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void swapBuffers()
|
void swapBuffers()
|
||||||
@ -136,12 +136,12 @@ int main()
|
|||||||
{
|
{
|
||||||
aptWaitStatusEvent();
|
aptWaitStatusEvent();
|
||||||
}
|
}
|
||||||
svc_sleepThread(16666666);
|
svcSleepThread(16666666);
|
||||||
}
|
}
|
||||||
|
|
||||||
hidExit();
|
hidExit();
|
||||||
gspGpuExit();
|
gspGpuExit();
|
||||||
aptExit();
|
aptExit();
|
||||||
svc_exitProcess();
|
svcExitProcess();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -39,15 +39,15 @@ void gspGpuInit()
|
|||||||
|
|
||||||
//setup our gsp shared mem section
|
//setup our gsp shared mem section
|
||||||
u8 threadID;
|
u8 threadID;
|
||||||
svc_createEvent(&gspEvent, 0x0);
|
svcCreateEvent(&gspEvent, 0x0);
|
||||||
GSPGPU_RegisterInterruptRelayQueue(NULL, gspEvent, 0x1, &gspSharedMemHandle, &threadID);
|
GSPGPU_RegisterInterruptRelayQueue(NULL, gspEvent, 0x1, &gspSharedMemHandle, &threadID);
|
||||||
svc_mapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
|
svcMapMemoryBlock(gspSharedMemHandle, 0x10002000, 0x3, 0x10000000);
|
||||||
|
|
||||||
//map GSP heap
|
//map GSP heap
|
||||||
svc_controlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
|
svcControlMemory((u32*)&gspHeap, 0x0, 0x0, 0x2000000, 0x10003, 0x3);
|
||||||
|
|
||||||
//wait until we can write stuff to it
|
//wait until we can write stuff to it
|
||||||
svc_waitSynchronization1(gspEvent, 0x55bcb0);
|
svcWaitSynchronization1(gspEvent, 0x55bcb0);
|
||||||
|
|
||||||
//GSP shared mem : 0x2779F000
|
//GSP shared mem : 0x2779F000
|
||||||
gxCmdBuf=(u32*)(0x10002000+0x800+threadID*0x200);
|
gxCmdBuf=(u32*)(0x10002000+0x800+threadID*0x200);
|
||||||
@ -60,14 +60,14 @@ void gspGpuExit()
|
|||||||
GSPGPU_UnregisterInterruptRelayQueue(NULL);
|
GSPGPU_UnregisterInterruptRelayQueue(NULL);
|
||||||
|
|
||||||
//unmap GSP shared mem
|
//unmap GSP shared mem
|
||||||
svc_unmapMemoryBlock(gspSharedMemHandle, 0x10002000);
|
svcUnmapMemoryBlock(gspSharedMemHandle, 0x10002000);
|
||||||
svc_closeHandle(gspSharedMemHandle);
|
svcCloseHandle(gspSharedMemHandle);
|
||||||
svc_closeHandle(gspEvent);
|
svcCloseHandle(gspEvent);
|
||||||
|
|
||||||
gspExit();
|
gspExit();
|
||||||
|
|
||||||
//free GSP heap
|
//free GSP heap
|
||||||
svc_controlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
|
svcControlMemory((u32*)&gspHeap, (u32)gspHeap, 0x0, 0x2000000, MEMOP_FREE, 0x0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -148,7 +148,7 @@ int main()
|
|||||||
copyBuffer();
|
copyBuffer();
|
||||||
u32 regData=PAD|0x01000000;
|
u32 regData=PAD|0x01000000;
|
||||||
GSPGPU_WriteHWRegs(NULL, 0x202A04, ®Data, 4);
|
GSPGPU_WriteHWRegs(NULL, 0x202A04, ®Data, 4);
|
||||||
svc_sleepThread(1000000000);
|
svcSleepThread(1000000000);
|
||||||
}
|
}
|
||||||
else if(status == APP_SUSPENDING)
|
else if(status == APP_SUSPENDING)
|
||||||
{
|
{
|
||||||
@ -160,10 +160,10 @@ int main()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
svc_closeHandle(fsuHandle);
|
svcCloseHandle(fsuHandle);
|
||||||
hidExit();
|
hidExit();
|
||||||
gspGpuExit();
|
gspGpuExit();
|
||||||
aptExit();
|
aptExit();
|
||||||
svc_exitProcess();
|
svcExitProcess();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,42 +1,50 @@
|
|||||||
|
/*
|
||||||
|
svc.h _ Syscall wrappers.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef SVC_H
|
#ifndef SVC_H
|
||||||
#define SVC_H
|
#define SVC_H
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
MEMOP_FREE = 1,
|
MEMOP_FREE =1, // Free heap
|
||||||
MEMOP_RESERVE = 2,
|
MEMOP_ALLOC=3, // Allocate heap
|
||||||
MEMOP_COMMIT = 3,
|
MEMOP_MAP =4, // Mirror mapping
|
||||||
MEMOP_MAP = 4,
|
MEMOP_UNMAP=5, // Mirror unmapping
|
||||||
MEMOP_UNMAP = 5,
|
MEMOP_PROT =6, // Change protection
|
||||||
MEMOP_PROTECT = 6,
|
|
||||||
MEMOP_REGION_APP = 0x100,
|
|
||||||
MEMOP_REGION_SYSTEM = 0x200,
|
|
||||||
MEMOP_REGION_BASE = 0x300,
|
|
||||||
MEMOP_LINEAR = 0x1000,
|
|
||||||
}MEMORY_OPERATION;
|
|
||||||
|
|
||||||
u32* getThreadCommandBuffer(void);
|
MEMOP_FREE_LINEAR =0x10001, // Free linear heap
|
||||||
|
MEMOP_ALLOC_LINEAR=0x10003 // Allocate linear heap
|
||||||
|
} MemOp;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
MEMPERM_READ =1,
|
||||||
|
MEMPERM_WRITE =2,
|
||||||
|
MEMPERM_EXECUTE=4
|
||||||
|
} MemPerm;
|
||||||
|
|
||||||
|
s32 svcControlMemory(u32* addr_out, u32 addr0, u32 addr1, u32 size, MemOp op, MemPerm perm);
|
||||||
|
void svcExitProcess();
|
||||||
|
s32 svcCreateThread(Handle* thread, ThreadFunc entrypoint, u32 arg, u32* stack_top, s32 thread_priority, s32 processor_id);
|
||||||
|
void svcExitThread();
|
||||||
|
void svcSleepThread(s64 ns);
|
||||||
|
s32 svcCreateMutex(Handle* mutex, bool initially_locked);
|
||||||
|
s32 svcReleaseMutex(Handle handle);
|
||||||
|
s32 svcCreateEvent(Handle* event, u8 reset_type);
|
||||||
|
s32 svcSignalEvent(Handle handle);
|
||||||
|
s32 svcClearEvent(Handle handle);
|
||||||
|
s32 svcCreateMemoryBlock(Handle* memblock, u32 addr, u32 size, MemPerm my_perm, MemPerm other_perm);
|
||||||
|
s32 svcMapMemoryBlock(Handle memblock, u32 addr, MemPerm my_perm, MemPerm other_perm);
|
||||||
|
s32 svcUnmapMemoryBlock(Handle memblock, u32 addr);
|
||||||
|
s32 svcWaitSynchronization(Handle handle, s64 nanoseconds);
|
||||||
|
s32 svcWaitSynchronizationN(s32* out, Handle* handles, s32 handles_num, bool wait_all, s64 nanoseconds);
|
||||||
|
s32 svcCloseHandle(Handle handle);
|
||||||
|
u64 svcGetSystemTick();
|
||||||
|
s32 svcGetSystemInfo(s64* out, u32 type, s32 param);
|
||||||
|
s32 svcGetProcessInfo(s64* out, Handle process, u32 type);
|
||||||
|
s32 svcConnectToPort(volatile Handle* out, const char* portName);
|
||||||
|
s32 svcSendSyncRequest(Handle session);
|
||||||
|
s32 svcGetProcessId(u32 *out, Handle handle);
|
||||||
|
|
||||||
Result svc_controlMemory(u32* outaddr, u32 addr0, u32 addr1, u32 size, u32 operation, u32 permissions); //(outaddr is usually the same as the input addr0)
|
|
||||||
void svc_exitProcess(void);
|
|
||||||
Result svc_createThread(Handle* thread, ThreadFunc entrypoint, u32 arg, u32* stacktop, s32 threadpriority, s32 processorid);
|
|
||||||
void svc_exitThread();
|
|
||||||
void svc_sleepThread(s64 ns);
|
|
||||||
Result svc_createMutex(Handle* mutex, bool initialLocked);
|
|
||||||
Result svc_releaseMutex(Handle handle);
|
|
||||||
Result svc_createEvent(Handle* event, u8 resettype);
|
|
||||||
Result svc_signalEvent(Handle handle);
|
|
||||||
Result svc_clearEvent(Handle handle);
|
|
||||||
Result svc_createMemoryBlock(Handle* memblock, u32 addr, u32 size, u32 mypermission, u32 otherpermission);
|
|
||||||
Result svc_mapMemoryBlock(Handle memblock, u32 addr, u32 mypermissions, u32 otherpermission);
|
|
||||||
Result svc_unmapMemoryBlock(Handle memblock, u32 addr);
|
|
||||||
Result svc_waitSynchronization1(Handle handle, s64 nanoseconds);
|
|
||||||
Result svc_waitSynchronizationN(s32* out, Handle* handles, s32 handlecount, bool waitAll, s64 nanoseconds);
|
|
||||||
Result svc_closeHandle(Handle handle);
|
|
||||||
u64 svc_getSystemTick();
|
|
||||||
Result svc_getSystemInfo(s64* out, u32 type, s32 param);
|
|
||||||
Result svc_getProcessInfo(s64* out, Handle process, u32 type);
|
|
||||||
Result svc_connectToPort(volatile Handle* out, const char* portName);
|
|
||||||
Result svc_sendSyncRequest(Handle session);
|
|
||||||
Result svc_getProcessId(u32 *out, Handle handle);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
|
/*
|
||||||
|
types.h _ Various system types.
|
||||||
|
*/
|
||||||
|
|
||||||
#ifndef TYPES_H
|
#ifndef TYPES_H
|
||||||
#define TYPES_H
|
#define TYPES_H
|
||||||
|
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
@ -30,4 +35,5 @@
|
|||||||
typedef s32 Result;
|
typedef s32 Result;
|
||||||
typedef void (*ThreadFunc)(u32);
|
typedef void (*ThreadFunc)(u32);
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -20,7 +20,7 @@ Result ACU_cmd1(Handle servhandle, u32 *ptr)//Unknown what this cmd does at the
|
|||||||
cmdbuf[0x100>>2] = 0x00800002;
|
cmdbuf[0x100>>2] = 0x00800002;
|
||||||
cmdbuf[0x104>>2] = (u32)ptr;
|
cmdbuf[0x104>>2] = (u32)ptr;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(servhandle))!=0)return ret;
|
if((ret = svcSendSyncRequest(servhandle))!=0)return ret;
|
||||||
|
|
||||||
cmdbuf[0x100>>2] = tmp0;
|
cmdbuf[0x100>>2] = tmp0;
|
||||||
cmdbuf[0x104>>2] = tmp1;
|
cmdbuf[0x104>>2] = tmp1;
|
||||||
@ -44,7 +44,7 @@ Result ACU_cmd26(Handle servhandle, u32 *ptr, u8 val)//Unknown what this cmd doe
|
|||||||
cmdbuf[2] = 0x00800002;
|
cmdbuf[2] = 0x00800002;
|
||||||
cmdbuf[3] = (u32)ptr;
|
cmdbuf[3] = (u32)ptr;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(servhandle))!=0)return ret;
|
if((ret = svcSendSyncRequest(servhandle))!=0)return ret;
|
||||||
|
|
||||||
cmdbuf[0x100>>2] = tmp0;
|
cmdbuf[0x100>>2] = tmp0;
|
||||||
cmdbuf[0x104>>2] = tmp1;
|
cmdbuf[0x104>>2] = tmp1;
|
||||||
@ -59,7 +59,7 @@ Result ACU_GetWifiStatus(Handle servhandle, u32 *out)
|
|||||||
|
|
||||||
cmdbuf[0] = 0x000D0000;
|
cmdbuf[0] = 0x000D0000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(servhandle))!=0)return ret;
|
if((ret = svcSendSyncRequest(servhandle))!=0)return ret;
|
||||||
|
|
||||||
*out = cmdbuf[2];
|
*out = cmdbuf[2];
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ Result ACU_WaitInternetConnection()
|
|||||||
if(ret==0 && outval==1)break;
|
if(ret==0 && outval==1)break;
|
||||||
}
|
}
|
||||||
|
|
||||||
svc_closeHandle(servhandle);
|
svcCloseHandle(servhandle);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -70,8 +70,8 @@ void aptInitCaptureInfo(u32 *ns_capinfo)
|
|||||||
|
|
||||||
void aptWaitStatusEvent()
|
void aptWaitStatusEvent()
|
||||||
{
|
{
|
||||||
svc_waitSynchronization1(aptStatusEvent, U64_MAX);
|
svcWaitSynchronization1(aptStatusEvent, U64_MAX);
|
||||||
svc_clearEvent(aptStatusEvent);
|
svcClearEvent(aptStatusEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void aptAppletUtility_Exit_RetToApp()
|
void aptAppletUtility_Exit_RetToApp()
|
||||||
@ -134,7 +134,7 @@ void aptReturnToMenu()
|
|||||||
APT_PrepareToJumpToHomeMenu(NULL); //prepare for return to menu
|
APT_PrepareToJumpToHomeMenu(NULL); //prepare for return to menu
|
||||||
aptCloseSession();
|
aptCloseSession();
|
||||||
|
|
||||||
svc_clearEvent(aptStatusEvent);
|
svcClearEvent(aptStatusEvent);
|
||||||
aptSetStatus(APP_SUSPENDED);
|
aptSetStatus(APP_SUSPENDED);
|
||||||
|
|
||||||
GSPGPU_SaveVramSysArea(NULL);
|
GSPGPU_SaveVramSysArea(NULL);
|
||||||
@ -182,8 +182,8 @@ void aptEventHandler(u32 arg)
|
|||||||
while(runThread)
|
while(runThread)
|
||||||
{
|
{
|
||||||
s32 syncedID=0x0;
|
s32 syncedID=0x0;
|
||||||
svc_waitSynchronizationN(&syncedID, aptEvents, 2, 0, U64_MAX);
|
svcWaitSynchronizationN(&syncedID, aptEvents, 2, 0, U64_MAX);
|
||||||
svc_clearEvent(aptEvents[syncedID]);
|
svcClearEvent(aptEvents[syncedID]);
|
||||||
|
|
||||||
switch(syncedID)
|
switch(syncedID)
|
||||||
{
|
{
|
||||||
@ -269,7 +269,7 @@ void aptEventHandler(u32 arg)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
svc_exitThread();
|
svcExitThread();
|
||||||
}
|
}
|
||||||
|
|
||||||
Result aptInit(NS_APPID appID)
|
Result aptInit(NS_APPID appID)
|
||||||
@ -279,7 +279,7 @@ Result aptInit(NS_APPID appID)
|
|||||||
//initialize APT stuff, escape load screen
|
//initialize APT stuff, escape load screen
|
||||||
srv_getServiceHandle(NULL, &aptuHandle, "APT:U");
|
srv_getServiceHandle(NULL, &aptuHandle, "APT:U");
|
||||||
if((ret=APT_GetLockHandle(&aptuHandle, 0x0, &aptLockHandle)))return ret;
|
if((ret=APT_GetLockHandle(&aptuHandle, 0x0, &aptLockHandle)))return ret;
|
||||||
svc_closeHandle(aptuHandle);
|
svcCloseHandle(aptuHandle);
|
||||||
|
|
||||||
currentAppId=appID;
|
currentAppId=appID;
|
||||||
|
|
||||||
@ -295,7 +295,7 @@ Result aptInit(NS_APPID appID)
|
|||||||
if((ret=APT_NotifyToWait(NULL, currentAppId)))return ret;
|
if((ret=APT_NotifyToWait(NULL, currentAppId)))return ret;
|
||||||
aptCloseSession();
|
aptCloseSession();
|
||||||
|
|
||||||
svc_createEvent(&aptStatusEvent, 0);
|
svcCreateEvent(&aptStatusEvent, 0);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -319,9 +319,9 @@ void aptExit()
|
|||||||
APT_CloseApplication(NULL, 0x0, 0x0, 0x0);
|
APT_CloseApplication(NULL, 0x0, 0x0, 0x0);
|
||||||
aptCloseSession();
|
aptCloseSession();
|
||||||
|
|
||||||
svc_closeHandle(aptStatusMutex);
|
svcCloseHandle(aptStatusMutex);
|
||||||
// svc_closeHandle(aptLockHandle);
|
// svcCloseHandle(aptLockHandle);
|
||||||
svc_closeHandle(aptStatusEvent);
|
svcCloseHandle(aptStatusEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void aptSetupEventHandler()
|
void aptSetupEventHandler()
|
||||||
@ -366,22 +366,22 @@ void aptSetupEventHandler()
|
|||||||
APT_AppletUtility(NULL, NULL, 0x4, 0x1, buf1, 0x1, buf2);
|
APT_AppletUtility(NULL, NULL, 0x4, 0x1, buf1, 0x1, buf2);
|
||||||
aptCloseSession();
|
aptCloseSession();
|
||||||
|
|
||||||
svc_createMutex(&aptStatusMutex, true);
|
svcCreateMutex(&aptStatusMutex, true);
|
||||||
aptStatus=0;
|
aptStatus=0;
|
||||||
svc_releaseMutex(aptStatusMutex);
|
svcReleaseMutex(aptStatusMutex);
|
||||||
|
|
||||||
aptSetStatus(APP_RUNNING);
|
aptSetStatus(APP_RUNNING);
|
||||||
|
|
||||||
//create thread for stuff handling APT events
|
//create thread for stuff handling APT events
|
||||||
svc_createThread(&aptEventHandlerThread, aptEventHandler, 0x0, (u32*)(&aptEventHandlerStack[APT_HANDLER_STACKSIZE/8]), 0x31, 0xfffffffe);
|
svcCreateThread(&aptEventHandlerThread, aptEventHandler, 0x0, (u32*)(&aptEventHandlerStack[APT_HANDLER_STACKSIZE/8]), 0x31, 0xfffffffe);
|
||||||
}
|
}
|
||||||
|
|
||||||
APP_STATUS aptGetStatus()
|
APP_STATUS aptGetStatus()
|
||||||
{
|
{
|
||||||
APP_STATUS ret;
|
APP_STATUS ret;
|
||||||
svc_waitSynchronization1(aptStatusMutex, U64_MAX);
|
svcWaitSynchronization1(aptStatusMutex, U64_MAX);
|
||||||
ret=aptStatus;
|
ret=aptStatus;
|
||||||
svc_releaseMutex(aptStatusMutex);
|
svcReleaseMutex(aptStatusMutex);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,46 +389,46 @@ void aptSetStatus(APP_STATUS status)
|
|||||||
{
|
{
|
||||||
u32 prevstatus;
|
u32 prevstatus;
|
||||||
|
|
||||||
svc_waitSynchronization1(aptStatusMutex, U64_MAX);
|
svcWaitSynchronization1(aptStatusMutex, U64_MAX);
|
||||||
|
|
||||||
prevstatus = status;
|
prevstatus = status;
|
||||||
aptStatus = status;
|
aptStatus = status;
|
||||||
|
|
||||||
if(prevstatus!=APP_NOTINITIALIZED)
|
if(prevstatus!=APP_NOTINITIALIZED)
|
||||||
{
|
{
|
||||||
if(status==APP_RUNNING)svc_signalEvent(aptStatusEvent);
|
if(status==APP_RUNNING)svcSignalEvent(aptStatusEvent);
|
||||||
if(status==APP_EXITING)svc_signalEvent(aptStatusEvent);
|
if(status==APP_EXITING)svcSignalEvent(aptStatusEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
svc_releaseMutex(aptStatusMutex);
|
svcReleaseMutex(aptStatusMutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 aptGetStatusPower()
|
u32 aptGetStatusPower()
|
||||||
{
|
{
|
||||||
u32 ret;
|
u32 ret;
|
||||||
svc_waitSynchronization1(aptStatusMutex, U64_MAX);
|
svcWaitSynchronization1(aptStatusMutex, U64_MAX);
|
||||||
ret=aptStatusPower;
|
ret=aptStatusPower;
|
||||||
svc_releaseMutex(aptStatusMutex);
|
svcReleaseMutex(aptStatusMutex);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void aptSetStatusPower(u32 status)
|
void aptSetStatusPower(u32 status)
|
||||||
{
|
{
|
||||||
svc_waitSynchronization1(aptStatusMutex, U64_MAX);
|
svcWaitSynchronization1(aptStatusMutex, U64_MAX);
|
||||||
aptStatusPower = status;
|
aptStatusPower = status;
|
||||||
svc_releaseMutex(aptStatusMutex);
|
svcReleaseMutex(aptStatusMutex);
|
||||||
}
|
}
|
||||||
|
|
||||||
void aptOpenSession()
|
void aptOpenSession()
|
||||||
{
|
{
|
||||||
svc_waitSynchronization1(aptLockHandle, U64_MAX);
|
svcWaitSynchronization1(aptLockHandle, U64_MAX);
|
||||||
srv_getServiceHandle(NULL, &aptuHandle, "APT:U");
|
srv_getServiceHandle(NULL, &aptuHandle, "APT:U");
|
||||||
}
|
}
|
||||||
|
|
||||||
void aptCloseSession()
|
void aptCloseSession()
|
||||||
{
|
{
|
||||||
svc_closeHandle(aptuHandle);
|
svcCloseHandle(aptuHandle);
|
||||||
svc_releaseMutex(aptLockHandle);
|
svcReleaseMutex(aptLockHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result APT_GetLockHandle(Handle* handle, u16 flags, Handle* lockHandle)
|
Result APT_GetLockHandle(Handle* handle, u16 flags, Handle* lockHandle)
|
||||||
@ -439,7 +439,7 @@ Result APT_GetLockHandle(Handle* handle, u16 flags, Handle* lockHandle)
|
|||||||
cmdbuf[1]=flags;
|
cmdbuf[1]=flags;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
if(lockHandle)*lockHandle=cmdbuf[5];
|
if(lockHandle)*lockHandle=cmdbuf[5];
|
||||||
|
|
||||||
@ -455,7 +455,7 @@ Result APT_Initialize(Handle* handle, NS_APPID appId, Handle* eventHandle1, Hand
|
|||||||
cmdbuf[2]=0x0;
|
cmdbuf[2]=0x0;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
if(eventHandle1)*eventHandle1=cmdbuf[3]; //return to menu event ?
|
if(eventHandle1)*eventHandle1=cmdbuf[3]; //return to menu event ?
|
||||||
if(eventHandle2)*eventHandle2=cmdbuf[4];
|
if(eventHandle2)*eventHandle2=cmdbuf[4];
|
||||||
@ -471,7 +471,7 @@ Result APT_Enable(Handle* handle, u32 a)
|
|||||||
cmdbuf[1]=a;
|
cmdbuf[1]=a;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -484,7 +484,7 @@ Result APT_GetAppletManInfo(Handle* handle, u8 inval, u8 *outval8, u32 *outval32
|
|||||||
cmdbuf[1]=inval;
|
cmdbuf[1]=inval;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
if(outval8)*outval8=cmdbuf[2];
|
if(outval8)*outval8=cmdbuf[2];
|
||||||
if(outval32)*outval32=cmdbuf[3];
|
if(outval32)*outval32=cmdbuf[3];
|
||||||
@ -502,7 +502,7 @@ Result APT_InquireNotification(Handle* handle, u32 appID, u8* signalType)
|
|||||||
cmdbuf[1]=appID;
|
cmdbuf[1]=appID;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
if(signalType)*signalType=cmdbuf[2];
|
if(signalType)*signalType=cmdbuf[2];
|
||||||
|
|
||||||
@ -516,7 +516,7 @@ Result APT_PrepareToJumpToHomeMenu(Handle* handle)
|
|||||||
cmdbuf[0]=0x2b0000; //request header code
|
cmdbuf[0]=0x2b0000; //request header code
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -532,7 +532,7 @@ Result APT_JumpToHomeMenu(Handle* handle, u32 a, u32 b, u32 c)
|
|||||||
cmdbuf[4]=(b<<14)|2;
|
cmdbuf[4]=(b<<14)|2;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -545,7 +545,7 @@ Result APT_NotifyToWait(Handle* handle, NS_APPID appID)
|
|||||||
cmdbuf[1]=appID;
|
cmdbuf[1]=appID;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -565,7 +565,7 @@ Result APT_AppletUtility(Handle* handle, u32* out, u32 a, u32 size1, u8* buf1, u
|
|||||||
cmdbuf[1+0x100/4]=(u32)buf2;
|
cmdbuf[1+0x100/4]=(u32)buf2;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
if(out)*out=cmdbuf[2];
|
if(out)*out=cmdbuf[2];
|
||||||
|
|
||||||
@ -584,7 +584,7 @@ Result APT_GlanceParameter(Handle* handle, NS_APPID appID, u32 bufferSize, u32*
|
|||||||
cmdbuf[1+0x100/4]=(u32)buffer;
|
cmdbuf[1+0x100/4]=(u32)buffer;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
if(signalType)*signalType=cmdbuf[3];
|
if(signalType)*signalType=cmdbuf[3];
|
||||||
if(actualSize)*actualSize=cmdbuf[4];
|
if(actualSize)*actualSize=cmdbuf[4];
|
||||||
@ -604,7 +604,7 @@ Result APT_ReceiveParameter(Handle* handle, NS_APPID appID, u32 bufferSize, u32*
|
|||||||
cmdbuf[1+0x100/4]=(u32)buffer;
|
cmdbuf[1+0x100/4]=(u32)buffer;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
if(signalType)*signalType=cmdbuf[3];
|
if(signalType)*signalType=cmdbuf[3];
|
||||||
if(actualSize)*actualSize=cmdbuf[4];
|
if(actualSize)*actualSize=cmdbuf[4];
|
||||||
@ -631,7 +631,7 @@ Result APT_SendParameter(Handle* handle, NS_APPID src_appID, NS_APPID dst_appID,
|
|||||||
cmdbuf[8] = (u32)buffer;
|
cmdbuf[8] = (u32)buffer;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -648,7 +648,7 @@ Result APT_SendCaptureBufferInfo(Handle* handle, u32 bufferSize, u32* buffer)
|
|||||||
cmdbuf[3] = (u32)buffer;
|
cmdbuf[3] = (u32)buffer;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -663,7 +663,7 @@ Result APT_ReplySleepQuery(Handle* handle, NS_APPID appID, u32 a)
|
|||||||
cmdbuf[2]=a;
|
cmdbuf[2]=a;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -677,7 +677,7 @@ Result APT_ReplySleepNotificationComplete(Handle* handle, NS_APPID appID)
|
|||||||
cmdbuf[1]=appID;
|
cmdbuf[1]=appID;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -691,7 +691,7 @@ Result APT_PrepareToCloseApplication(Handle* handle, u8 a)
|
|||||||
cmdbuf[1]=a;
|
cmdbuf[1]=a;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -709,7 +709,7 @@ Result APT_CloseApplication(Handle* handle, u32 a, u32 b, u32 c)
|
|||||||
cmdbuf[5]=c;
|
cmdbuf[5]=c;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ Result CFGNOR_Initialize(u8 value)
|
|||||||
cmdbuf[0] = 0x00010040;
|
cmdbuf[0] = 0x00010040;
|
||||||
cmdbuf[1] = (u32)value;
|
cmdbuf[1] = (u32)value;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(CFGNOR_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
return ret;
|
return ret;
|
||||||
@ -34,10 +34,10 @@ Result CFGNOR_Shutdown()
|
|||||||
|
|
||||||
cmdbuf[0] = 0x00020000;
|
cmdbuf[0] = 0x00020000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(CFGNOR_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
svc_closeHandle(CFGNOR_handle);
|
svcCloseHandle(CFGNOR_handle);
|
||||||
CFGNOR_handle = 0;
|
CFGNOR_handle = 0;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -54,7 +54,7 @@ Result CFGNOR_ReadData(u32 offset, u32 *buf, u32 size)
|
|||||||
cmdbuf[3] = (size<<4) | 12;
|
cmdbuf[3] = (size<<4) | 12;
|
||||||
cmdbuf[4] = (u32)buf;
|
cmdbuf[4] = (u32)buf;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(CFGNOR_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
return ret;
|
return ret;
|
||||||
@ -71,7 +71,7 @@ Result CFGNOR_WriteData(u32 offset, u32 *buf, u32 size)
|
|||||||
cmdbuf[3] = (size<<4) | 10;
|
cmdbuf[3] = (size<<4) | 10;
|
||||||
cmdbuf[4] = (u32)buf;
|
cmdbuf[4] = (u32)buf;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(CFGNOR_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CFGNOR_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -33,7 +33,7 @@ Result CSND_cmd1(Handle *mutexhandle, Handle *sharedmemhandle, u32 sharedmem_siz
|
|||||||
cmdbuf[4] = off2;
|
cmdbuf[4] = off2;
|
||||||
cmdbuf[5] = off3;
|
cmdbuf[5] = off3;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(CSND_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CSND_handle))!=0)return ret;
|
||||||
|
|
||||||
*mutexhandle = cmdbuf[3];
|
*mutexhandle = cmdbuf[3];
|
||||||
*sharedmemhandle = cmdbuf[4];
|
*sharedmemhandle = cmdbuf[4];
|
||||||
@ -48,7 +48,7 @@ Result CSND_cmd2()
|
|||||||
|
|
||||||
cmdbuf[0] = 0x00020000;
|
cmdbuf[0] = 0x00020000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(CSND_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CSND_handle))!=0)return ret;
|
||||||
|
|
||||||
return (Result)cmdbuf[1];
|
return (Result)cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -60,7 +60,7 @@ Result CSND_cmd5(u32 *bitmask)
|
|||||||
|
|
||||||
cmdbuf[0] = 0x00050000;
|
cmdbuf[0] = 0x00050000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(CSND_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CSND_handle))!=0)return ret;
|
||||||
|
|
||||||
*bitmask = cmdbuf[2];
|
*bitmask = cmdbuf[2];
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ Result CSND_initialize(u32* sharedMem)
|
|||||||
ret = CSND_cmd1(&CSND_mutexhandle, &CSND_sharedmemhandle, CSND_sharedmem_cmdblocksize+0x114, CSND_sharedmem_cmdblocksize, CSND_sharedmem_cmdblocksize+8, CSND_sharedmem_cmdblocksize+0xc8, CSND_sharedmem_cmdblocksize+0xd8);
|
ret = CSND_cmd1(&CSND_mutexhandle, &CSND_sharedmemhandle, CSND_sharedmem_cmdblocksize+0x114, CSND_sharedmem_cmdblocksize, CSND_sharedmem_cmdblocksize+8, CSND_sharedmem_cmdblocksize+0xc8, CSND_sharedmem_cmdblocksize+0xd8);
|
||||||
if(ret!=0)return ret;
|
if(ret!=0)return ret;
|
||||||
|
|
||||||
ret = svc_mapMemoryBlock(CSND_sharedmemhandle, (u32)CSND_sharedmem, 3, 0x10000000);
|
ret = svcMapMemoryBlock(CSND_sharedmemhandle, (u32)CSND_sharedmem, 3, 0x10000000);
|
||||||
if(ret!=0)return ret;
|
if(ret!=0)return ret;
|
||||||
|
|
||||||
memset(CSND_sharedmem, 0, 0x2114);
|
memset(CSND_sharedmem, 0, 0x2114);
|
||||||
@ -95,13 +95,13 @@ Result CSND_shutdown()
|
|||||||
{
|
{
|
||||||
Result ret;
|
Result ret;
|
||||||
|
|
||||||
svc_unmapMemoryBlock(CSND_sharedmemhandle, (u32)CSND_sharedmem);
|
svcUnmapMemoryBlock(CSND_sharedmemhandle, (u32)CSND_sharedmem);
|
||||||
svc_closeHandle(CSND_sharedmemhandle);
|
svcCloseHandle(CSND_sharedmemhandle);
|
||||||
|
|
||||||
ret = CSND_cmd2();
|
ret = CSND_cmd2();
|
||||||
if(ret!=0)return ret;
|
if(ret!=0)return ret;
|
||||||
|
|
||||||
return svc_closeHandle(CSND_handle);
|
return svcCloseHandle(CSND_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result CSND_cmd3(u32 offset)
|
Result CSND_cmd3(u32 offset)
|
||||||
@ -112,7 +112,7 @@ Result CSND_cmd3(u32 offset)
|
|||||||
cmdbuf[0] = 0x00030040;
|
cmdbuf[0] = 0x00030040;
|
||||||
cmdbuf[1] = offset;
|
cmdbuf[1] = offset;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(CSND_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(CSND_handle))!=0)return ret;
|
||||||
|
|
||||||
return (Result)cmdbuf[1];
|
return (Result)cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -123,7 +123,7 @@ void CSND_writesharedmem_cmdtype0(u16 cmdid, u8 *cmdparams)
|
|||||||
u32 prevoff;
|
u32 prevoff;
|
||||||
s32 outindex=0;
|
s32 outindex=0;
|
||||||
|
|
||||||
svc_waitSynchronizationN(&outindex, &CSND_mutexhandle, 1, 0, ~0);
|
svcWaitSynchronizationN(&outindex, &CSND_mutexhandle, 1, 0, ~0);
|
||||||
|
|
||||||
if(CSND_sharedmem_startcmdoff != CSND_sharedmem_currentcmdoff)
|
if(CSND_sharedmem_startcmdoff != CSND_sharedmem_currentcmdoff)
|
||||||
{
|
{
|
||||||
@ -151,7 +151,7 @@ void CSND_writesharedmem_cmdtype0(u16 cmdid, u8 *cmdparams)
|
|||||||
CSND_sharedmem_currentcmdoff+= 0x20;
|
CSND_sharedmem_currentcmdoff+= 0x20;
|
||||||
if(CSND_sharedmem_currentcmdoff >= CSND_sharedmem_cmdblocksize)CSND_sharedmem_currentcmdoff = 0;
|
if(CSND_sharedmem_currentcmdoff >= CSND_sharedmem_cmdblocksize)CSND_sharedmem_currentcmdoff = 0;
|
||||||
|
|
||||||
svc_releaseMutex(CSND_mutexhandle);
|
svcReleaseMutex(CSND_mutexhandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result CSND_processtype0cmds()
|
Result CSND_processtype0cmds()
|
||||||
|
@ -12,7 +12,7 @@ Result FSUSER_Initialize(Handle handle)
|
|||||||
cmdbuf[1]=32;
|
cmdbuf[1]=32;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -33,7 +33,7 @@ Result FSUSER_OpenFile(Handle handle, Handle* out, FS_archive archive, FS_path f
|
|||||||
cmdbuf[9]=(u32)fileLowPath.data;
|
cmdbuf[9]=(u32)fileLowPath.data;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
if(out)*out=cmdbuf[3];
|
if(out)*out=cmdbuf[3];
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ Result FSUSER_OpenFileDirectly(Handle handle, Handle* out, FS_archive archive, F
|
|||||||
cmdbuf[12]=(u32)fileLowPath.data;
|
cmdbuf[12]=(u32)fileLowPath.data;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
if(out)*out=cmdbuf[3];
|
if(out)*out=cmdbuf[3];
|
||||||
|
|
||||||
@ -79,7 +79,7 @@ Result FSUSER_OpenArchive(Handle handle, FS_archive* archive)
|
|||||||
cmdbuf[5]=(u32)archive->lowPath.data;
|
cmdbuf[5]=(u32)archive->lowPath.data;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
archive->handleLow=cmdbuf[2];
|
archive->handleLow=cmdbuf[2];
|
||||||
archive->handleHigh=cmdbuf[3];
|
archive->handleHigh=cmdbuf[3];
|
||||||
@ -100,7 +100,7 @@ Result FSUSER_OpenDirectory(Handle handle, Handle* out, FS_archive archive, FS_p
|
|||||||
cmdbuf[6]=(u32)dirLowPath.data;
|
cmdbuf[6]=(u32)dirLowPath.data;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
if(out)*out=cmdbuf[3];
|
if(out)*out=cmdbuf[3];
|
||||||
|
|
||||||
@ -117,7 +117,7 @@ Result FSUSER_CloseArchive(Handle handle, FS_archive* archive)
|
|||||||
cmdbuf[2]=archive->handleLow;
|
cmdbuf[2]=archive->handleLow;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -129,7 +129,7 @@ Result FSFILE_Close(Handle handle)
|
|||||||
cmdbuf[0]=0x08080000;
|
cmdbuf[0]=0x08080000;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -146,7 +146,7 @@ Result FSFILE_Read(Handle handle, u32 *bytesRead, u64 offset, u32 *buffer, u32 s
|
|||||||
cmdbuf[5]=(u32)buffer;
|
cmdbuf[5]=(u32)buffer;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
if(bytesRead)*bytesRead=cmdbuf[2];
|
if(bytesRead)*bytesRead=cmdbuf[2];
|
||||||
|
|
||||||
@ -168,7 +168,7 @@ Result FSFILE_Write(Handle handle, u32 *bytesWritten, u64 offset, u32 *data, u32
|
|||||||
cmdbuf[6]=(u32)data;
|
cmdbuf[6]=(u32)data;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
if(bytesWritten)*bytesWritten=cmdbuf[2];
|
if(bytesWritten)*bytesWritten=cmdbuf[2];
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ Result FSFILE_GetSize(Handle handle, u64 *size)
|
|||||||
cmdbuf[0] = 0x08040000;
|
cmdbuf[0] = 0x08040000;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
if(size)*size = *((u64*)&cmdbuf[2]);
|
if(size)*size = *((u64*)&cmdbuf[2]);
|
||||||
|
|
||||||
@ -198,7 +198,7 @@ Result FSFILE_SetSize(Handle handle, u64 size)
|
|||||||
cmdbuf[2] = (u32)(size >> 32);
|
cmdbuf[2] = (u32)(size >> 32);
|
||||||
|
|
||||||
Result ret = 0;
|
Result ret = 0;
|
||||||
if ((ret = svc_sendSyncRequest(handle)))return ret;
|
if ((ret = svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
@ -214,7 +214,7 @@ Result FSDIR_Read(Handle handle, u32 *entriesRead, u32 entrycount, u16 *buffer)
|
|||||||
cmdbuf[3]=(u32)buffer;
|
cmdbuf[3]=(u32)buffer;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
if(entriesRead)*entriesRead=cmdbuf[2];
|
if(entriesRead)*entriesRead=cmdbuf[2];
|
||||||
|
|
||||||
@ -228,7 +228,7 @@ Result FSDIR_Close(Handle handle)
|
|||||||
cmdbuf[0]=0x08020000;
|
cmdbuf[0]=0x08020000;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ Result gspInit()
|
|||||||
|
|
||||||
void gspExit()
|
void gspExit()
|
||||||
{
|
{
|
||||||
if(gspGpuHandle)svc_closeHandle(gspGpuHandle);
|
if(gspGpuHandle)svcCloseHandle(gspGpuHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result GSPGPU_AcquireRight(Handle* handle, u8 flags)
|
Result GSPGPU_AcquireRight(Handle* handle, u8 flags)
|
||||||
@ -29,7 +29,7 @@ Result GSPGPU_AcquireRight(Handle* handle, u8 flags)
|
|||||||
cmdbuf[3]=0xffff8001;
|
cmdbuf[3]=0xffff8001;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -42,7 +42,7 @@ Result GSPGPU_ReleaseRight(Handle* handle)
|
|||||||
cmdbuf[0]=0x170000; //request header code
|
cmdbuf[0]=0x170000; //request header code
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -55,7 +55,7 @@ Result GSPGPU_ImportDisplayCaptureInfo(Handle* handle, GSP_CaptureInfo *capturei
|
|||||||
cmdbuf[0]=0x00180000; //request header code
|
cmdbuf[0]=0x00180000; //request header code
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
ret = cmdbuf[1];
|
ret = cmdbuf[1];
|
||||||
|
|
||||||
@ -75,7 +75,7 @@ Result GSPGPU_SaveVramSysArea(Handle* handle)
|
|||||||
cmdbuf[0]=0x00190000; //request header code
|
cmdbuf[0]=0x00190000; //request header code
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -88,7 +88,7 @@ Result GSPGPU_RestoreVramSysArea(Handle* handle)
|
|||||||
cmdbuf[0]=0x001A0000; //request header code
|
cmdbuf[0]=0x001A0000; //request header code
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -102,7 +102,7 @@ Result GSPGPU_SetLcdForceBlack(Handle* handle, u8 flags)
|
|||||||
cmdbuf[1]=flags;
|
cmdbuf[1]=flags;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -118,7 +118,7 @@ Result GSPGPU_SetBufferSwap(Handle* handle, u32 screenid, GSP_FramebufferInfo *f
|
|||||||
cmdbuf[1] = screenid;
|
cmdbuf[1] = screenid;
|
||||||
memcpy(&cmdbuf[2], framebufinfo, sizeof(GSP_FramebufferInfo));
|
memcpy(&cmdbuf[2], framebufinfo, sizeof(GSP_FramebufferInfo));
|
||||||
|
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -135,7 +135,7 @@ Result GSPGPU_FlushDataCache(Handle* handle, u8* adr, u32 size)
|
|||||||
cmdbuf[4]=0xffff8001;
|
cmdbuf[4]=0xffff8001;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -153,7 +153,7 @@ Result GSPGPU_InvalidateDataCache(Handle* handle, u8* adr, u32 size)
|
|||||||
cmdbuf[3] = 0;
|
cmdbuf[3] = 0;
|
||||||
cmdbuf[4] = 0xFFFF8001;
|
cmdbuf[4] = 0xFFFF8001;
|
||||||
|
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -172,7 +172,7 @@ Result GSPGPU_WriteHWRegs(Handle* handle, u32 regAddr, u32* data, u8 size)
|
|||||||
cmdbuf[4]=(u32)data;
|
cmdbuf[4]=(u32)data;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -193,7 +193,7 @@ Result GSPGPU_WriteHWRegsWithMask(Handle* handle, u32 regAddr, u32* data, u8 dat
|
|||||||
cmdbuf[6]=(u32)maskdata;
|
cmdbuf[6]=(u32)maskdata;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -212,7 +212,7 @@ Result GSPGPU_ReadHWRegs(Handle* handle, u32 regAddr, u32* data, u8 size)
|
|||||||
cmdbuf[0x40+1]=(u32)data;
|
cmdbuf[0x40+1]=(u32)data;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -228,7 +228,7 @@ Result GSPGPU_RegisterInterruptRelayQueue(Handle* handle, Handle eventHandle, u3
|
|||||||
cmdbuf[3]=eventHandle;
|
cmdbuf[3]=eventHandle;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
if(threadID)*threadID=cmdbuf[2];
|
if(threadID)*threadID=cmdbuf[2];
|
||||||
if(outMemHandle)*outMemHandle=cmdbuf[4];
|
if(outMemHandle)*outMemHandle=cmdbuf[4];
|
||||||
@ -244,7 +244,7 @@ Result GSPGPU_UnregisterInterruptRelayQueue(Handle* handle)
|
|||||||
cmdbuf[0]=0x00140000; //request header code
|
cmdbuf[0]=0x00140000; //request header code
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -257,7 +257,7 @@ Result GSPGPU_TriggerCmdReqQueue(Handle* handle)
|
|||||||
cmdbuf[0]=0xC0000; //request header code
|
cmdbuf[0]=0xC0000; //request header code
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ Result hidInit(u32* sharedMem)
|
|||||||
|
|
||||||
if((ret=HIDUSER_GetInfo(NULL, &hidMemHandle)))return ret;
|
if((ret=HIDUSER_GetInfo(NULL, &hidMemHandle)))return ret;
|
||||||
hidSharedMem=sharedMem;
|
hidSharedMem=sharedMem;
|
||||||
svc_mapMemoryBlock(hidMemHandle, (u32)hidSharedMem, 0x1, 0x10000000);
|
svcMapMemoryBlock(hidMemHandle, (u32)hidSharedMem, 0x1, 0x10000000);
|
||||||
|
|
||||||
if((ret=HIDUSER_EnableAccelerometer(NULL)))return ret;
|
if((ret=HIDUSER_EnableAccelerometer(NULL)))return ret;
|
||||||
|
|
||||||
@ -29,9 +29,9 @@ Result hidInit(u32* sharedMem)
|
|||||||
|
|
||||||
void hidExit()
|
void hidExit()
|
||||||
{
|
{
|
||||||
svc_unmapMemoryBlock(hidMemHandle, (u32)hidSharedMem);
|
svcUnmapMemoryBlock(hidMemHandle, (u32)hidSharedMem);
|
||||||
svc_closeHandle(hidMemHandle);
|
svcCloseHandle(hidMemHandle);
|
||||||
svc_closeHandle(hidHandle);
|
svcCloseHandle(hidHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result HIDUSER_GetInfo(Handle* handle, Handle* outMemHandle)
|
Result HIDUSER_GetInfo(Handle* handle, Handle* outMemHandle)
|
||||||
@ -41,7 +41,7 @@ Result HIDUSER_GetInfo(Handle* handle, Handle* outMemHandle)
|
|||||||
cmdbuf[0]=0xa0000; //request header code
|
cmdbuf[0]=0xa0000; //request header code
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
if(outMemHandle)*outMemHandle=cmdbuf[3];
|
if(outMemHandle)*outMemHandle=cmdbuf[3];
|
||||||
|
|
||||||
@ -55,7 +55,7 @@ Result HIDUSER_EnableAccelerometer(Handle* handle)
|
|||||||
cmdbuf[0]=0x110000; //request header code
|
cmdbuf[0]=0x110000; //request header code
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handle)))return ret;
|
if((ret=svcSendSyncRequest(*handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ Result HTTPC_Initialize(Handle handle)
|
|||||||
cmdbuf[2]=0x20; //unk
|
cmdbuf[2]=0x20; //unk
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -31,7 +31,7 @@ Result HTTPC_CreateContext(Handle handle, char* url, Handle* contextHandle)
|
|||||||
cmdbuf[4]=(u32)url;
|
cmdbuf[4]=(u32)url;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
if(contextHandle)*contextHandle=cmdbuf[2];
|
if(contextHandle)*contextHandle=cmdbuf[2];
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ Result HTTPC_InitializeConnectionSession(Handle handle, Handle contextHandle)
|
|||||||
cmdbuf[2]=0x20; //unk, constant afaict
|
cmdbuf[2]=0x20; //unk, constant afaict
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -60,7 +60,7 @@ Result HTTPC_SetProxyDefault(Handle handle, Handle contextHandle)
|
|||||||
cmdbuf[1]=contextHandle;
|
cmdbuf[1]=contextHandle;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -73,7 +73,7 @@ Result HTTPC_CloseContext(Handle handle, Handle contextHandle)
|
|||||||
cmdbuf[1]=contextHandle;
|
cmdbuf[1]=contextHandle;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -95,7 +95,7 @@ Result HTTPC_AddRequestHeaderField(Handle handle, Handle contextHandle, char* na
|
|||||||
cmdbuf[7]=(u32)value;
|
cmdbuf[7]=(u32)value;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -108,7 +108,7 @@ Result HTTPC_BeginRequest(Handle handle, Handle contextHandle)
|
|||||||
cmdbuf[1]=contextHandle;
|
cmdbuf[1]=contextHandle;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -124,7 +124,7 @@ Result HTTPC_ReceiveData(Handle handle, Handle contextHandle, u8* buffer, u32 si
|
|||||||
cmdbuf[4]=(u32)buffer;
|
cmdbuf[4]=(u32)buffer;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(handle)))return ret;
|
if((ret=svcSendSyncRequest(handle)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ Result irucmd_Initialize()
|
|||||||
|
|
||||||
cmdbuf[0] = 0x00010000;
|
cmdbuf[0] = 0x00010000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -33,7 +33,7 @@ Result irucmd_Shutdown()
|
|||||||
|
|
||||||
cmdbuf[0] = 0x00020000;
|
cmdbuf[0] = 0x00020000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -49,7 +49,7 @@ Result irucmd_StartSendTransfer(u8 *buf, u32 size)
|
|||||||
cmdbuf[2] = (size<<4) | 10;
|
cmdbuf[2] = (size<<4) | 10;
|
||||||
cmdbuf[3] = (u32)buf;
|
cmdbuf[3] = (u32)buf;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -62,7 +62,7 @@ Result irucmd_WaitSendTransfer()
|
|||||||
|
|
||||||
cmdbuf[0] = 0x00040000;
|
cmdbuf[0] = 0x00040000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -80,7 +80,7 @@ Result irucmd_StartRecvTransfer(u32 size, u8 flag)
|
|||||||
cmdbuf[4] = 0;
|
cmdbuf[4] = 0;
|
||||||
cmdbuf[5] = iru_sharedmem_handle;
|
cmdbuf[5] = iru_sharedmem_handle;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -93,7 +93,7 @@ Result irucmd_WaitRecvTransfer(u32 *transfercount)
|
|||||||
|
|
||||||
cmdbuf[0] = 0x00060000;
|
cmdbuf[0] = 0x00060000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
*transfercount = cmdbuf[2];
|
*transfercount = cmdbuf[2];
|
||||||
@ -109,7 +109,7 @@ Result IRU_SetBitRate(u8 value)
|
|||||||
cmdbuf[0] = 0x00090040;
|
cmdbuf[0] = 0x00090040;
|
||||||
cmdbuf[1] = (u32)value;
|
cmdbuf[1] = (u32)value;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -122,7 +122,7 @@ Result IRU_GetBitRate(u8 *out)
|
|||||||
|
|
||||||
cmdbuf[0] = 0x000A0000;
|
cmdbuf[0] = 0x000A0000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
*out = (u8)cmdbuf[2];
|
*out = (u8)cmdbuf[2];
|
||||||
@ -138,7 +138,7 @@ Result IRU_SetIRLEDState(u32 value)
|
|||||||
cmdbuf[0] = 0x000B0040;
|
cmdbuf[0] = 0x000B0040;
|
||||||
cmdbuf[1] = value;
|
cmdbuf[1] = value;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
@ -151,7 +151,7 @@ Result IRU_GetIRLEDRecvState(u32 *out)
|
|||||||
|
|
||||||
cmdbuf[0] = 0x000C0000;
|
cmdbuf[0] = 0x000C0000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(iru_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(iru_handle))!=0)return ret;
|
||||||
ret = (Result)cmdbuf[1];
|
ret = (Result)cmdbuf[1];
|
||||||
|
|
||||||
*out = cmdbuf[2];
|
*out = cmdbuf[2];
|
||||||
@ -171,7 +171,7 @@ Result IRU_Initialize(u32 *sharedmem_addr, u32 sharedmem_size)
|
|||||||
ret = irucmd_Initialize();
|
ret = irucmd_Initialize();
|
||||||
if(ret!=0)return ret;
|
if(ret!=0)return ret;
|
||||||
|
|
||||||
ret = svc_createMemoryBlock(&iru_sharedmem_handle, (u32)sharedmem_addr, sharedmem_size, 1, 3);
|
ret = svcCreateMemoryBlock(&iru_sharedmem_handle, (u32)sharedmem_addr, sharedmem_size, 1, 3);
|
||||||
if(ret!=0)return ret;
|
if(ret!=0)return ret;
|
||||||
|
|
||||||
iru_sharedmem = sharedmem_addr;
|
iru_sharedmem = sharedmem_addr;
|
||||||
@ -189,8 +189,8 @@ Result IRU_Shutdown()
|
|||||||
ret = irucmd_Shutdown();
|
ret = irucmd_Shutdown();
|
||||||
if(ret!=0)return ret;
|
if(ret!=0)return ret;
|
||||||
|
|
||||||
svc_closeHandle(iru_handle);
|
svcCloseHandle(iru_handle);
|
||||||
svc_closeHandle(iru_sharedmem_handle);
|
svcCloseHandle(iru_sharedmem_handle);
|
||||||
|
|
||||||
iru_handle = 0;
|
iru_handle = 0;
|
||||||
iru_sharedmem_handle = 0;
|
iru_sharedmem_handle = 0;
|
||||||
|
@ -119,7 +119,7 @@ Result socu_cmd1(Handle memhandle, u32 memsize)
|
|||||||
cmdbuf[4] = 0;
|
cmdbuf[4] = 0;
|
||||||
cmdbuf[5] = memhandle;
|
cmdbuf[5] = memhandle;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -131,9 +131,9 @@ Result SOC_Shutdown()
|
|||||||
|
|
||||||
cmdbuf[0] = 0x00190000;
|
cmdbuf[0] = 0x00190000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
svc_closeHandle(SOCU_handle);
|
svcCloseHandle(SOCU_handle);
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -143,7 +143,7 @@ Result SOC_Initialize(u32 *context_addr, u32 context_size)
|
|||||||
Result ret=0;
|
Result ret=0;
|
||||||
Handle memhandle = 0;
|
Handle memhandle = 0;
|
||||||
|
|
||||||
ret = svc_createMemoryBlock(&memhandle, (u32)context_addr, context_size, 0, 3);
|
ret = svcCreateMemoryBlock(&memhandle, (u32)context_addr, context_size, 0, 3);
|
||||||
if(ret!=0)return ret;
|
if(ret!=0)return ret;
|
||||||
|
|
||||||
if((ret = srv_getServiceHandle(NULL, &SOCU_handle, "soc:U"))!=0)return ret;
|
if((ret = srv_getServiceHandle(NULL, &SOCU_handle, "soc:U"))!=0)return ret;
|
||||||
@ -167,7 +167,7 @@ int socket(int domain, int type, int protocol)
|
|||||||
cmdbuf[3] = protocol;
|
cmdbuf[3] = protocol;
|
||||||
cmdbuf[4] = 0x20;
|
cmdbuf[4] = 0x20;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
SOCU_errno = ret;
|
SOCU_errno = ret;
|
||||||
@ -185,7 +185,7 @@ int closesocket(int sockfd)
|
|||||||
cmdbuf[1] = (u32)sockfd;
|
cmdbuf[1] = (u32)sockfd;
|
||||||
cmdbuf[2] = 0x20;
|
cmdbuf[2] = 0x20;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret =_net_convert_error(cmdbuf[2]);
|
if(ret==0)ret =_net_convert_error(cmdbuf[2]);
|
||||||
@ -205,7 +205,7 @@ int shutdown(int sockfd, int shutdown_type)
|
|||||||
cmdbuf[2] = (u32)shutdown_type;
|
cmdbuf[2] = (u32)shutdown_type;
|
||||||
cmdbuf[3] = 0x20;
|
cmdbuf[3] = 0x20;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
||||||
@ -225,7 +225,7 @@ int listen(int sockfd, int max_connections)
|
|||||||
cmdbuf[2] = (u32)max_connections;
|
cmdbuf[2] = (u32)max_connections;
|
||||||
cmdbuf[3] = 0x20;
|
cmdbuf[3] = 0x20;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
||||||
@ -256,7 +256,7 @@ int accept(int sockfd, struct sockaddr *addr, int *addrlen)
|
|||||||
cmdbuf[0x100>>2] = (tmp_addrlen<<14) | 2;
|
cmdbuf[0x100>>2] = (tmp_addrlen<<14) | 2;
|
||||||
cmdbuf[0x104>>2] = (u32)tmpaddr;
|
cmdbuf[0x104>>2] = (u32)tmpaddr;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
||||||
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
||||||
@ -311,7 +311,7 @@ int bind(int sockfd, const struct sockaddr *addr, int addrlen)
|
|||||||
cmdbuf[5] = (((u32)tmp_addrlen)<<14) | 2;
|
cmdbuf[5] = (((u32)tmp_addrlen)<<14) | 2;
|
||||||
cmdbuf[6] = (u32)tmpaddr;
|
cmdbuf[6] = (u32)tmpaddr;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
||||||
@ -356,7 +356,7 @@ int connect(int sockfd, const struct sockaddr *addr, int addrlen)
|
|||||||
cmdbuf[5] = (((u32)tmp_addrlen)<<14) | 2;
|
cmdbuf[5] = (((u32)tmp_addrlen)<<14) | 2;
|
||||||
cmdbuf[6] = (u32)tmpaddr;
|
cmdbuf[6] = (u32)tmpaddr;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
||||||
@ -393,7 +393,7 @@ int socuipc_cmd7(int sockfd, void *buf, int len, int flags, struct sockaddr *src
|
|||||||
cmdbuf[0x100>>2] = (tmp_addrlen<<14) | 2;
|
cmdbuf[0x100>>2] = (tmp_addrlen<<14) | 2;
|
||||||
cmdbuf[0x104>>2] = (u32)tmpaddr;
|
cmdbuf[0x104>>2] = (u32)tmpaddr;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
||||||
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
||||||
@ -442,7 +442,7 @@ int socuipc_cmd8(int sockfd, void *buf, int len, int flags, struct sockaddr *src
|
|||||||
cmdbuf[0x108>>2] = (tmp_addrlen<<14) | 2;
|
cmdbuf[0x108>>2] = (tmp_addrlen<<14) | 2;
|
||||||
cmdbuf[0x10c>>2] = (u32)tmpaddr;
|
cmdbuf[0x10c>>2] = (u32)tmpaddr;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
||||||
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
||||||
@ -506,7 +506,7 @@ int socuipc_cmd9(int sockfd, const void *buf, int len, int flags, const struct s
|
|||||||
cmdbuf[9] = (((u32)len)<<4) | 10;
|
cmdbuf[9] = (((u32)len)<<4) | 10;
|
||||||
cmdbuf[10] = (u32)buf;
|
cmdbuf[10] = (u32)buf;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
||||||
@ -558,7 +558,7 @@ int socuipc_cmda(int sockfd, const void *buf, int len, int flags, const struct s
|
|||||||
cmdbuf[9] = (tmp_addrlen<<14) | 0x402;
|
cmdbuf[9] = (tmp_addrlen<<14) | 0x402;
|
||||||
cmdbuf[10] = (u32)tmpaddr;
|
cmdbuf[10] = (u32)tmpaddr;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
||||||
@ -609,7 +609,7 @@ int getsockopt(int sockfd, int level, int option_name, void * data, int * data_l
|
|||||||
cmdbuf[0x100>>2] = ((*data_len)<<14) | 2;
|
cmdbuf[0x100>>2] = ((*data_len)<<14) | 2;
|
||||||
cmdbuf[0x104>>2] = (u32)data;
|
cmdbuf[0x104>>2] = (u32)data;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
||||||
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
||||||
@ -638,7 +638,7 @@ int setsockopt(int sockfd, int level, int option_name, const void * data, int da
|
|||||||
cmdbuf[7] = (data_len<<14) | 0x2402;
|
cmdbuf[7] = (data_len<<14) | 0x2402;
|
||||||
cmdbuf[8] = (u32)data;
|
cmdbuf[8] = (u32)data;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
||||||
@ -682,7 +682,7 @@ int fcntl(int sockfd, int cmd, ...)
|
|||||||
cmdbuf[3] = (u32)arg;
|
cmdbuf[3] = (u32)arg;
|
||||||
cmdbuf[4] = 0x20;
|
cmdbuf[4] = 0x20;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
||||||
@ -701,7 +701,7 @@ int sockatmark(int sockfd)
|
|||||||
cmdbuf[1] = (u32)sockfd;
|
cmdbuf[1] = (u32)sockfd;
|
||||||
cmdbuf[2] = 0x20;
|
cmdbuf[2] = 0x20;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
if(ret==0)ret = _net_convert_error(cmdbuf[2]);
|
||||||
@ -718,7 +718,7 @@ long gethostid()
|
|||||||
|
|
||||||
cmdbuf[0] = 0x00160000;
|
cmdbuf[0] = 0x00160000;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
ret = (int)cmdbuf[1];
|
ret = (int)cmdbuf[1];
|
||||||
if(ret==0)ret = cmdbuf[2];
|
if(ret==0)ret = cmdbuf[2];
|
||||||
@ -744,7 +744,7 @@ int getsockname(int sockfd, struct sockaddr *addr, int * addr_len)
|
|||||||
cmdbuf[0x100>>2] = (0x1c<<14) | 2;
|
cmdbuf[0x100>>2] = (0x1c<<14) | 2;
|
||||||
cmdbuf[0x104>>2] = (u32)tmpaddr;
|
cmdbuf[0x104>>2] = (u32)tmpaddr;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
||||||
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
||||||
@ -783,7 +783,7 @@ int getpeername(int sockfd, struct sockaddr *addr, int * addr_len)
|
|||||||
cmdbuf[0x100>>2] = (0x1c<<14) | 2;
|
cmdbuf[0x100>>2] = (0x1c<<14) | 2;
|
||||||
cmdbuf[0x104>>2] = (u32)tmpaddr;
|
cmdbuf[0x104>>2] = (u32)tmpaddr;
|
||||||
|
|
||||||
if((ret = svc_sendSyncRequest(SOCU_handle))!=0)return ret;
|
if((ret = svcSendSyncRequest(SOCU_handle))!=0)return ret;
|
||||||
|
|
||||||
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
cmdbuf[0x100>>2] = saved_threadstorage[0];
|
||||||
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
cmdbuf[0x104>>2] = saved_threadstorage[1];
|
||||||
|
@ -10,13 +10,13 @@ Handle srvHandle=0;
|
|||||||
Result initSrv()
|
Result initSrv()
|
||||||
{
|
{
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if(svc_connectToPort(&srvHandle, "srv:"))return ret;
|
if(svcConnectToPort(&srvHandle, "srv:"))return ret;
|
||||||
return srv_RegisterClient(&srvHandle);
|
return srv_RegisterClient(&srvHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result exitSrv()
|
Result exitSrv()
|
||||||
{
|
{
|
||||||
if(srvHandle)svc_closeHandle(srvHandle);
|
if(srvHandle)svcCloseHandle(srvHandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result srv_RegisterClient(Handle* handleptr)
|
Result srv_RegisterClient(Handle* handleptr)
|
||||||
@ -27,7 +27,7 @@ Result srv_RegisterClient(Handle* handleptr)
|
|||||||
cmdbuf[1]=0x20;
|
cmdbuf[1]=0x20;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handleptr)))return ret;
|
if((ret=svcSendSyncRequest(*handleptr)))return ret;
|
||||||
|
|
||||||
return cmdbuf[1];
|
return cmdbuf[1];
|
||||||
}
|
}
|
||||||
@ -46,7 +46,7 @@ Result srv_getServiceHandle(Handle* handleptr, Handle* out, char* server)
|
|||||||
cmdbuf[4]=0x0;
|
cmdbuf[4]=0x0;
|
||||||
|
|
||||||
Result ret=0;
|
Result ret=0;
|
||||||
if((ret=svc_sendSyncRequest(*handleptr)))return ret;
|
if((ret=svcSendSyncRequest(*handleptr)))return ret;
|
||||||
|
|
||||||
*out=cmdbuf[3];
|
*out=cmdbuf[3];
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
.arm
|
.arm
|
||||||
|
|
||||||
.align 4
|
.align 4
|
||||||
|
|
||||||
|
/* THIS DOES NOT BELONG HERE */
|
||||||
.global getThreadCommandBuffer
|
.global getThreadCommandBuffer
|
||||||
.type getThreadCommandBuffer, %function
|
.type getThreadCommandBuffer, %function
|
||||||
getThreadCommandBuffer:
|
getThreadCommandBuffer:
|
||||||
@ -10,9 +10,9 @@ getThreadCommandBuffer:
|
|||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
|
|
||||||
.global svc_controlMemory
|
.global svcControlMemory
|
||||||
.type svc_controlMemory, %function
|
.type svcControlMemory, %function
|
||||||
svc_controlMemory:
|
svcControlMemory:
|
||||||
stmfd sp!, {r0, r4}
|
stmfd sp!, {r0, r4}
|
||||||
ldr r0, [sp, #0x8]
|
ldr r0, [sp, #0x8]
|
||||||
ldr r4, [sp, #0x8+0x4]
|
ldr r4, [sp, #0x8+0x4]
|
||||||
@ -22,15 +22,15 @@ svc_controlMemory:
|
|||||||
ldr r4, [sp], #4
|
ldr r4, [sp], #4
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_exitProcess
|
.global svcExitProcess
|
||||||
.type svc_exitProcess, %function
|
.type svcExitProcess, %function
|
||||||
svc_exitProcess:
|
svcExitProcess:
|
||||||
svc 0x03
|
svc 0x03
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_createThread
|
.global svcCreateThread
|
||||||
.type svc_createThread, %function
|
.type svcCreateThread, %function
|
||||||
svc_createThread:
|
svcCreateThread:
|
||||||
stmfd sp!, {r0, r4}
|
stmfd sp!, {r0, r4}
|
||||||
ldr r0, [sp, #0x8]
|
ldr r0, [sp, #0x8]
|
||||||
ldr r4, [sp, #0x8+0x4]
|
ldr r4, [sp, #0x8+0x4]
|
||||||
@ -40,57 +40,57 @@ svc_createThread:
|
|||||||
ldr r4, [sp], #4
|
ldr r4, [sp], #4
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_exitThread
|
.global svcExitThread
|
||||||
.type svc_exitThread, %function
|
.type svcExitThread, %function
|
||||||
svc_exitThread:
|
svcExitThread:
|
||||||
svc 0x09
|
svc 0x09
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_sleepThread
|
.global svcSleepThread
|
||||||
.type svc_sleepThread, %function
|
.type svcSleepThread, %function
|
||||||
svc_sleepThread:
|
svcSleepThread:
|
||||||
svc 0x0A
|
svc 0x0A
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_createMutex
|
.global svcCreateMutex
|
||||||
.type svc_createMutex, %function
|
.type svcCreateMutex, %function
|
||||||
svc_createMutex:
|
svcCreateMutex:
|
||||||
str r0, [sp, #-4]!
|
str r0, [sp, #-4]!
|
||||||
svc 0x13
|
svc 0x13
|
||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_releaseMutex
|
.global svcReleaseMutex
|
||||||
.type svc_releaseMutex, %function
|
.type svcReleaseMutex, %function
|
||||||
svc_releaseMutex:
|
svcReleaseMutex:
|
||||||
svc 0x14
|
svc 0x14
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_createEvent
|
.global svcCreateEvent
|
||||||
.type svc_createEvent, %function
|
.type svcCreateEvent, %function
|
||||||
svc_createEvent:
|
svcCreateEvent:
|
||||||
str r0, [sp,#-4]!
|
str r0, [sp,#-4]!
|
||||||
svc 0x17
|
svc 0x17
|
||||||
ldr r2, [sp], #4
|
ldr r2, [sp], #4
|
||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_signalEvent
|
.global svcSignalEvent
|
||||||
.type svc_signalEvent, %function
|
.type svcSignalEvent, %function
|
||||||
svc_signalEvent:
|
svcSignalEvent:
|
||||||
svc 0x18
|
svc 0x18
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_clearEvent
|
.global svcClearEvent
|
||||||
.type svc_clearEvent, %function
|
.type svcClearEvent, %function
|
||||||
svc_clearEvent:
|
svcClearEvent:
|
||||||
svc 0x19
|
svc 0x19
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_createMemoryBlock
|
.global svcCreateMemoryBlock
|
||||||
.type svc_createMemoryBlock, %function
|
.type svcCreateMemoryBlock, %function
|
||||||
svc_createMemoryBlock:
|
svcCreateMemoryBlock:
|
||||||
str r0, [sp, #-4]!
|
str r0, [sp, #-4]!
|
||||||
ldr r0, [sp, #4]
|
ldr r0, [sp, #4]
|
||||||
svc 0x1E
|
svc 0x1E
|
||||||
@ -98,33 +98,33 @@ svc_createMemoryBlock:
|
|||||||
str r1, [r2]
|
str r1, [r2]
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_mapMemoryBlock
|
.global svcMapMemoryBlock
|
||||||
.type svc_mapMemoryBlock, %function
|
.type svcMapMemoryBlock, %function
|
||||||
svc_mapMemoryBlock:
|
svcMapMemoryBlock:
|
||||||
svc 0x1F
|
svc 0x1F
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_unmapMemoryBlock
|
.global svcUnmapMemoryBlock
|
||||||
.type svc_unmapMemoryBlock, %function
|
.type svcUnmapMemoryBlock, %function
|
||||||
svc_unmapMemoryBlock:
|
svcUnmapMemoryBlock:
|
||||||
svc 0x20
|
svc 0x20
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_closeHandle
|
.global svcCloseHandle
|
||||||
.type svc_closeHandle, %function
|
.type svcCloseHandle, %function
|
||||||
svc_closeHandle:
|
svcCloseHandle:
|
||||||
svc 0x23
|
svc 0x23
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_waitSynchronization1
|
.global svcWaitSynchronization
|
||||||
.type svc_waitSynchronization1, %function
|
.type svcWaitSynchronization, %function
|
||||||
svc_waitSynchronization1:
|
svcWaitSynchronization:
|
||||||
svc 0x24
|
svc 0x24
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_waitSynchronizationN
|
.global svcWaitSynchronizationN
|
||||||
.type svc_waitSynchronizationN, %function
|
.type svcWaitSynchronizationN, %function
|
||||||
svc_waitSynchronizationN:
|
svcWaitSynchronizationN:
|
||||||
str r5, [sp, #-4]!
|
str r5, [sp, #-4]!
|
||||||
mov r5, r0
|
mov r5, r0
|
||||||
ldr r0, [sp, #0x4]
|
ldr r0, [sp, #0x4]
|
||||||
@ -134,27 +134,27 @@ svc_waitSynchronizationN:
|
|||||||
ldr r5, [sp], #4
|
ldr r5, [sp], #4
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_getSystemTick
|
.global svcGetSystemTick
|
||||||
.type svc_getSystemTick, %function
|
.type svcGetSystemTick, %function
|
||||||
svc_getSystemTick:
|
svcGetSystemTick:
|
||||||
svc 0x28
|
svc 0x28
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_getSystemInfo
|
.global svcGetSystemInfo
|
||||||
.type svc_getSystemInfo, %function
|
.type svcGetSystemInfo, %function
|
||||||
svc_getSystemInfo:
|
svcGetSystemInfo:
|
||||||
stmfd sp!, {r0, r4}
|
stmfd sp!, {r0, r4}
|
||||||
svc 0x2A
|
svc 0x2A
|
||||||
ldr r4, [sp], #4
|
ldr r4, [sp], #4
|
||||||
str r1, [r4]
|
str r1, [r4]
|
||||||
str r2, [r4, #4]
|
str r2, [r4, #4]
|
||||||
# str r3, [r4, #8] # ?
|
str r3, [r4, #8]
|
||||||
ldr r4, [sp], #4
|
ldr r4, [sp], #4
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_getProcessInfo
|
.global svcGetProcessInfo
|
||||||
.type svc_getProcessInfo, %function
|
.type svcGetProcessInfo, %function
|
||||||
svc_getProcessInfo:
|
svcGetProcessInfo:
|
||||||
stmfd sp!, {r0, r4}
|
stmfd sp!, {r0, r4}
|
||||||
svc 0x2B
|
svc 0x2B
|
||||||
ldr r4, [sp], #4
|
ldr r4, [sp], #4
|
||||||
@ -163,24 +163,24 @@ svc_getProcessInfo:
|
|||||||
ldr r4, [sp], #4
|
ldr r4, [sp], #4
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_connectToPort
|
.global svcConnectToPort
|
||||||
.type svc_connectToPort, %function
|
.type svcConnectToPort, %function
|
||||||
svc_connectToPort:
|
svcConnectToPort:
|
||||||
str r0, [sp,#-0x4]!
|
str r0, [sp,#-0x4]!
|
||||||
svc 0x2D
|
svc 0x2D
|
||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
str r1, [r3]
|
str r1, [r3]
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_sendSyncRequest
|
.global svcSendSyncRequest
|
||||||
.type svc_sendSyncRequest, %function
|
.type svcSendSyncRequest, %function
|
||||||
svc_sendSyncRequest:
|
svcSendSyncRequest:
|
||||||
svc 0x32
|
svc 0x32
|
||||||
bx lr
|
bx lr
|
||||||
|
|
||||||
.global svc_getProcessId
|
.global svcGetProcessId
|
||||||
.type svc_getProcessId, %function
|
.type svcGetProcessId, %function
|
||||||
svc_getProcessId:
|
svcGetProcessId:
|
||||||
str r0, [sp,#-0x4]!
|
str r0, [sp,#-0x4]!
|
||||||
svc 0x35
|
svc 0x35
|
||||||
ldr r3, [sp], #4
|
ldr r3, [sp], #4
|
||||||
|
Loading…
Reference in New Issue
Block a user