u32 osConvertVirtToPhys(u32 vaddr);
#endif
-
typedef enum {
MEMPERM_READ =1,
MEMPERM_WRITE =2,
- MEMPERM_EXECUTE=4
+ MEMPERM_EXECUTE=4,
+ MEMPERM_MAX =0xFFFFFFFF //force 4-byte
} MemPerm;
+u32* getThreadCommandBuffer(void);
+
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);
#include <stdlib.h>
+#include <string.h>
#include <3ds/types.h>
#include <3ds/srv.h>
#include <3ds/APT.h>
void aptWaitStatusEvent()
{
- svcWaitSynchronization1(aptStatusEvent, U64_MAX);
+ svcWaitSynchronization(aptStatusEvent, U64_MAX);
svcClearEvent(aptStatusEvent);
}
APP_STATUS aptGetStatus()
{
APP_STATUS ret;
- svcWaitSynchronization1(aptStatusMutex, U64_MAX);
+ svcWaitSynchronization(aptStatusMutex, U64_MAX);
ret=aptStatus;
svcReleaseMutex(aptStatusMutex);
return ret;
{
u32 prevstatus;
- svcWaitSynchronization1(aptStatusMutex, U64_MAX);
+ svcWaitSynchronization(aptStatusMutex, U64_MAX);
prevstatus = status;
aptStatus = status;
u32 aptGetStatusPower()
{
u32 ret;
- svcWaitSynchronization1(aptStatusMutex, U64_MAX);
+ svcWaitSynchronization(aptStatusMutex, U64_MAX);
ret=aptStatusPower;
svcReleaseMutex(aptStatusMutex);
return ret;
void aptSetStatusPower(u32 status)
{
- svcWaitSynchronization1(aptStatusMutex, U64_MAX);
+ svcWaitSynchronization(aptStatusMutex, U64_MAX);
aptStatusPower = status;
svcReleaseMutex(aptStatusMutex);
}
void aptOpenSession()
{
- svcWaitSynchronization1(aptLockHandle, U64_MAX);
+ svcWaitSynchronization(aptLockHandle, U64_MAX);
srvGetServiceHandle(&aptuHandle, "APT:U");
}
#include <stdlib.h>
+#include <string.h>
#include <3ds/types.h>
#include <3ds/os.h>
#include <3ds/svc.h>
+#include <string.h>
#include <3ds/types.h>
#include <3ds/FS.h>
#include <3ds/svc.h>
#include <stdlib.h>
+#include <string.h>
#include <3ds/types.h>
#include <3ds/GSP.h>
#include <3ds/GX.h>
#include <stdlib.h>
+#include <string.h>
#include <3ds/types.h>
#include <3ds/GSP.h>
#include <3ds/svc.h>
gxCommand[0]=0x01000102; //CommandID
gxCommand[1]=(u32)buf0a; //buf0 address
gxCommand[2]=buf0v; //buf0 value
- gxCommand[3]=(u32*)buf0e; //buf0 end addr
+ gxCommand[3]=(u32)buf0e; //buf0 end addr
gxCommand[4]=(u32)buf1a; //buf1 address
gxCommand[5]=buf1v; //buf1 value
- gxCommand[6]=(u32*)buf1e; //buf1 end addr
+ gxCommand[6]=(u32)buf1e; //buf1 end addr
gxCommand[7]=(width0)|(width1<<16);
return GSPGPU_submitGxCommand(gxbuf, gxCommand, NULL);
#include <stdlib.h>
+#include <string.h>
#include <3ds/types.h>
#include <3ds/HID.h>
#include <3ds/srv.h>
if((ret=HIDUSER_GetInfo(NULL, &hidMemHandle)))return ret;
hidSharedMem=sharedMem;
- svcMapMemoryBlock(hidMemHandle, (u32)hidSharedMem, 0x1, 0x10000000);
+ svcMapMemoryBlock(hidMemHandle, (u32)hidSharedMem, MEMPERM_READ, 0x10000000);
if((ret=HIDUSER_EnableAccelerometer(NULL)))return ret;
#include <stdlib.h>
+#include <string.h>
#include <3ds/types.h>
#include <3ds/GSP.h>
#include <3ds/GX.h>
#include <fcntl.h>
#include <stdarg.h>
#include <errno.h>
+#include <string.h>
Handle SOCU_handle = 0;
static int SOCU_errno = 0;
srv.c _ Service manager.
*/
+#include <string.h>
#include <3ds/types.h>
#include <3ds/srv.h>
#include <3ds/svc.h>
{
Result rc = 0;
- if(rc = svcConnectToPort(&g_srv_handle, "srv:"))
- return rc;
+ if((rc = svcConnectToPort(&g_srv_handle, "srv:")))return rc;
- if(rc = srvRegisterClient()) {
+ if((rc = srvRegisterClient())) {
svcCloseHandle(g_srv_handle);
g_srv_handle = 0;
}
Result srvExit()
{
- if(g_srv_handle != 0)
- svcCloseHandle(g_srv_handle);
+ if(g_srv_handle != 0)svcCloseHandle(g_srv_handle);
g_srv_handle = 0;
return 0;
cmdbuf[1] = 0x20;
Result rc;
- if(rc = svcSendSyncRequest(g_srv_handle))
- return rc;
+ if((rc = svcSendSyncRequest(g_srv_handle)))return rc;
return cmdbuf[1];
}
cmdbuf[4] = 0x0;
Result rc;
- if(rc = svcSendSyncRequest(g_srv_handle))
- return rc;
+ if((rc = svcSendSyncRequest(g_srv_handle)))return rc;
*out = cmdbuf[3];
return cmdbuf[1];