From d10fc007866821b5f72ca5de68ad4af688e8383c Mon Sep 17 00:00:00 2001 From: Lectem Date: Sun, 30 Aug 2015 23:30:53 -0400 Subject: [PATCH] Added pseudo handles for current proc and thread --- libctru/include/3ds/svc.h | 6 ++++++ libctru/source/services/gsp.c | 6 +++--- libctru/source/services/hb.c | 2 +- libctru/source/services/mvd.c | 4 ++-- libctru/source/services/y2r.c | 10 +++++----- 5 files changed, 17 insertions(+), 11 deletions(-) diff --git a/libctru/include/3ds/svc.h b/libctru/include/3ds/svc.h index 7593939..59499a0 100644 --- a/libctru/include/3ds/svc.h +++ b/libctru/include/3ds/svc.h @@ -8,6 +8,9 @@ #include "types.h" +/// Pseudo handle for the current process +#define CUR_PROCESS_HANDLE 0xFFFF8001 + ///@name Memory management ///@{ @@ -89,6 +92,9 @@ typedef enum { THREADINFO_TYPE_UNKNOWN } ThreadInfoType; +/// Pseudo handle for the current thread +#define CUR_THREAD_HANDLE 0xFFFF8000 + ///@} diff --git a/libctru/source/services/gsp.c b/libctru/source/services/gsp.c index 0234712..54b62a1 100644 --- a/libctru/source/services/gsp.c +++ b/libctru/source/services/gsp.c @@ -195,7 +195,7 @@ Result GSPGPU_FlushDataCache(Handle* handle, u8* adr, u32 size) cmdbuf[1]=(u32)adr; cmdbuf[2]=size; cmdbuf[3]=0x0; - cmdbuf[4]=0xffff8001; + cmdbuf[4]=CUR_PROCESS_HANDLE; Result ret=0; if((ret=svcSendSyncRequest(*handle)))return ret; @@ -214,7 +214,7 @@ Result GSPGPU_InvalidateDataCache(Handle* handle, u8* adr, u32 size) cmdbuf[1] = (u32)adr; cmdbuf[2] = size; cmdbuf[3] = 0; - cmdbuf[4] = 0xFFFF8001; + cmdbuf[4] = CUR_PROCESS_HANDLE; if((ret=svcSendSyncRequest(*handle)))return ret; @@ -288,7 +288,7 @@ Result GSPGPU_AcquireRight(Handle* handle, u8 flags) cmdbuf[0]=0x160042; //request header code cmdbuf[1]=flags; cmdbuf[2]=0x0; - cmdbuf[3]=0xffff8001; + cmdbuf[3]=CUR_PROCESS_HANDLE; Result ret=0; if((ret=svcSendSyncRequest(*handle)))return ret; diff --git a/libctru/source/services/hb.c b/libctru/source/services/hb.c index 96d5a03..7ef8f1e 100644 --- a/libctru/source/services/hb.c +++ b/libctru/source/services/hb.c @@ -23,7 +23,7 @@ Result HB_FlushInvalidateCache(void) cmdbuf[0] = 0x00010042; cmdbuf[1] = 0x00000000; cmdbuf[2] = 0x00000000; - cmdbuf[3] = 0xFFFF8001; + cmdbuf[3] = CUR_PROCESS_HANDLE; if((ret = svcSendSyncRequest(hbHandle))!=0) return ret; diff --git a/libctru/source/services/mvd.c b/libctru/source/services/mvd.c index 89fd732..7d490fe 100644 --- a/libctru/source/services/mvd.c +++ b/libctru/source/services/mvd.c @@ -84,7 +84,7 @@ Result mvdstdSetConfig(mvdstdConfig *config) cmdbuf[0] = 0x001E0044; //request header code cmdbuf[1] = sizeof(mvdstdConfig); cmdbuf[2] = 0; - cmdbuf[3] = 0xffff8001; + cmdbuf[3] = CUR_PROCESS_HANDLE; cmdbuf[4] = (sizeof(mvdstdConfig)<<4) | 10; cmdbuf[5] = (u32)config; @@ -151,7 +151,7 @@ Result mvdstdInit(mvdstdMode mode, mvdstdTypeInput input_type, mvdstdTypeOutput mvdstd_workbuf = linearAlloc(mvdstd_workbufsize); if(mvdstd_workbuf==NULL)return -1; - ret = mvdstdipc_Initialize((u32*)osConvertOldLINEARMemToNew((u32)mvdstd_workbuf), mvdstd_workbufsize, 0xffff8001); + ret = mvdstdipc_Initialize((u32*)osConvertOldLINEARMemToNew((u32)mvdstd_workbuf), mvdstd_workbufsize, CUR_PROCESS_HANDLE); if(ret<0) { svcCloseHandle(mvdstdHandle); diff --git a/libctru/source/services/y2r.c b/libctru/source/services/y2r.c index 8f679e9..d29b38a 100644 --- a/libctru/source/services/y2r.c +++ b/libctru/source/services/y2r.c @@ -130,7 +130,7 @@ Result Y2RU_SetSendingY(const void* src_buf, u32 image_size, s16 transfer_unit, cmdbuf[3] = transfer_unit; cmdbuf[4] = transfer_gap; cmdbuf[5] = 0; - cmdbuf[6] = 0xFFFF8001; + cmdbuf[6] = CUR_PROCESS_HANDLE; if ((ret = svcSendSyncRequest(y2rHandle)) != 0) return ret; return cmdbuf[1]; @@ -146,7 +146,7 @@ Result Y2RU_SetSendingU(const void* src_buf, u32 image_size, s16 transfer_unit, cmdbuf[3] = transfer_unit; cmdbuf[4] = transfer_gap; cmdbuf[5] = 0; - cmdbuf[6] = 0xFFFF8001; + cmdbuf[6] = CUR_PROCESS_HANDLE; if ((ret = svcSendSyncRequest(y2rHandle)) != 0) return ret; return cmdbuf[1]; @@ -162,7 +162,7 @@ Result Y2RU_SetSendingV(const void* src_buf, u32 image_size, s16 transfer_unit, cmdbuf[3] = transfer_unit; cmdbuf[4] = transfer_gap; cmdbuf[5] = 0; - cmdbuf[6] = 0xFFFF8001; + cmdbuf[6] = CUR_PROCESS_HANDLE; if ((ret = svcSendSyncRequest(y2rHandle)) != 0) return ret; return cmdbuf[1]; @@ -178,7 +178,7 @@ Result Y2RU_SetSendingYUYV(const void* src_buf, u32 image_size, s16 transfer_uni cmdbuf[3] = transfer_unit; cmdbuf[4] = transfer_gap; cmdbuf[5] = 0; - cmdbuf[6] = 0xFFFF8001; + cmdbuf[6] = CUR_PROCESS_HANDLE; if ((ret = svcSendSyncRequest(y2rHandle)) != 0) return ret; return cmdbuf[1]; @@ -238,7 +238,7 @@ Result Y2RU_SetReceiving(void* dst_buf, u32 image_size, s16 transfer_unit, s16 t cmdbuf[3] = transfer_unit; cmdbuf[4] = transfer_gap; cmdbuf[5] = 0; - cmdbuf[6] = 0xFFFF8001; + cmdbuf[6] = CUR_PROCESS_HANDLE; if ((ret = svcSendSyncRequest(y2rHandle)) != 0) return ret; return cmdbuf[1];