From: fincs Date: Sat, 3 Oct 2015 16:46:04 +0000 (+0200) Subject: Merge branch 'master' into great-refactor X-Git-Tag: v1.0.0~93 X-Git-Url: https://chaos.moe/g/?a=commitdiff_plain;h=8e052004d518a62a3b429e384c10d09792cd6775;p=corbenik%2Fctrulib.git Merge branch 'master' into great-refactor Conflicts: libctru/include/3ds/services/gsp.h libctru/source/services/gsp.c --- 8e052004d518a62a3b429e384c10d09792cd6775 diff --cc libctru/include/3ds/services/gsp.h index 8c03071,a0d8bed..95ed3c4 --- a/libctru/include/3ds/services/gsp.h +++ b/libctru/include/3ds/services/gsp.h @@@ -48,11 -48,21 +48,21 @@@ typedef enu GSPEVENT_MAX, // used to know how many events there are } GSP_Event; + typedef enum + { + GSPLCD_TOP = BIT(0), + GSPLCD_BOTTOM = BIT(1), + GSPLCD_BOTH = GSPLCD_TOP | GSPLCD_BOTTOM, + }GSPLCD_Screens; + -Result gspInit(); -void gspExit(); +Result gspInit(void); +void gspExit(void); -Result gspLcdInit(); -void gspLcdExit(); ++Result gspLcdInit(void); ++void gspLcdExit(void); + Result gspInitEventHandler(Handle gspEvent, vu8* gspSharedMem, u8 gspThreadId); -void gspExitEventHandler(); +void gspExitEventHandler(void); void gspWaitForEvent(GSP_Event id, bool nextEvent); #define gspWaitForPSC0() gspWaitForEvent(GSPEVENT_PSC0, false) #define gspWaitForPSC1() gspWaitForEvent(GSPEVENT_PSC1, false) @@@ -63,19 -73,22 +73,22 @@@ #define gspWaitForP3D() gspWaitForEvent(GSPEVENT_P3D, false) #define gspWaitForDMA() gspWaitForEvent(GSPEVENT_DMA, false) -Result GSPGPU_AcquireRight(Handle *handle, u8 flags); -Result GSPGPU_ReleaseRight(Handle *handle); -Result GSPGPU_ImportDisplayCaptureInfo(Handle* handle, GSP_CaptureInfo *captureinfo); -Result GSPGPU_SaveVramSysArea(Handle* handle); -Result GSPGPU_RestoreVramSysArea(Handle* handle); -Result GSPGPU_SetLcdForceBlack(Handle *handle, u8 flags); -Result GSPGPU_SetBufferSwap(Handle* handle, u32 screenid, GSP_FramebufferInfo *framebufinfo); -Result GSPGPU_FlushDataCache(Handle *handle, u8* adr, u32 size); -Result GSPGPU_InvalidateDataCache(Handle* handle, u8* adr, u32 size); -Result GSPGPU_WriteHWRegs(Handle *handle, u32 regAddr, u32* data, u8 size); -Result GSPGPU_WriteHWRegsWithMask(Handle* handle, u32 regAddr, u32* data, u8 datasize, u32* maskdata, u8 masksize); -Result GSPGPU_ReadHWRegs(Handle *handle, u32 regAddr, u32* data, u8 size); -Result GSPGPU_RegisterInterruptRelayQueue(Handle *handle, Handle eventHandle, u32 flags, Handle* outMemHandle, u8* threadID); -Result GSPGPU_UnregisterInterruptRelayQueue(Handle* handle); -Result GSPGPU_TriggerCmdReqQueue(Handle *handle); -Result GSPGPU_SubmitGxCommand(u32* sharedGspCmdBuf, u32 gxCommand[0x8], Handle* handle); +Result GSPGPU_AcquireRight(u8 flags); +Result GSPGPU_ReleaseRight(void); +Result GSPGPU_ImportDisplayCaptureInfo(GSP_CaptureInfo *captureinfo); +Result GSPGPU_SaveVramSysArea(void); +Result GSPGPU_RestoreVramSysArea(void); +Result GSPGPU_SetLcdForceBlack(u8 flags); +Result GSPGPU_SetBufferSwap(u32 screenid, GSP_FramebufferInfo *framebufinfo); +Result GSPGPU_FlushDataCache(const void* adr, u32 size); +Result GSPGPU_InvalidateDataCache(const void* adr, u32 size); +Result GSPGPU_WriteHWRegs(u32 regAddr, u32* data, u8 size); +Result GSPGPU_WriteHWRegsWithMask(u32 regAddr, u32* data, u8 datasize, u32* maskdata, u8 masksize); +Result GSPGPU_ReadHWRegs(u32 regAddr, u32* data, u8 size); +Result GSPGPU_RegisterInterruptRelayQueue(Handle eventHandle, u32 flags, Handle* outMemHandle, u8* threadID); +Result GSPGPU_UnregisterInterruptRelayQueue(void); +Result GSPGPU_TriggerCmdReqQueue(void); +Result GSPGPU_SubmitGxCommand(u32* sharedGspCmdBuf, u32 gxCommand[0x8]); + + Result GSPLCD_PowerOffBacklight(GSPLCD_Screens screen); + Result GSPLCD_PowerOnBacklight(GSPLCD_Screens screen); diff --cc libctru/source/services/gsp.c index 467183e,c3a4461..9971a73 --- a/libctru/source/services/gsp.c +++ b/libctru/source/services/gsp.c @@@ -397,6 -429,42 +398,42 @@@ Result GSPGPU_SubmitGxCommand(u32* shar cmdBufHeader=((cmdBufHeader)&0xFFFF00FF)|((totalCommands<<8)&0xFF00); } - if(totalCommands==1)return GSPGPU_TriggerCmdReqQueue(handle); + if(totalCommands==1)return GSPGPU_TriggerCmdReqQueue(); return 0; } + -Result gspLcdInit() -{ - return srvGetServiceHandle(&gspLcdHandle, "gsp::Lcd"); -} - -void gspLcdExit() -{ - if(gspLcdHandle)svcCloseHandle(gspLcdHandle); ++Result gspLcdInit(void) ++{ ++ return srvGetServiceHandle(&gspLcdHandle, "gsp::Lcd"); ++} ++ ++void gspLcdExit(void) ++{ ++ if(gspLcdHandle)svcCloseHandle(gspLcdHandle); + } + -Result GSPLCD_PowerOffBacklight(GSPLCD_Screens screen) -{ - u32 *cmdbuf = getThreadCommandBuffer(); - - cmdbuf[0] = 0x00120040; - cmdbuf[1] = screen; - - Result ret=0; ++Result GSPLCD_PowerOffBacklight(GSPLCD_Screens screen) ++{ ++ u32 *cmdbuf = getThreadCommandBuffer(); ++ ++ cmdbuf[0] = 0x00120040; ++ cmdbuf[1] = screen; ++ ++ Result ret=0; + if ((ret = svcSendSyncRequest(gspLcdHandle)))return ret; + - return cmdbuf[1]; -} - -Result GSPLCD_PowerOnBacklight(GSPLCD_Screens screen) -{ - u32 *cmdbuf = getThreadCommandBuffer(); - - cmdbuf[0] = 0x00110040; - cmdbuf[1] = screen; - - Result ret=0; ++ return cmdbuf[1]; ++} ++ ++Result GSPLCD_PowerOnBacklight(GSPLCD_Screens screen) ++{ ++ u32 *cmdbuf = getThreadCommandBuffer(); ++ ++ cmdbuf[0] = 0x00110040; ++ cmdbuf[1] = screen; ++ ++ Result ret=0; + if ((ret = svcSendSyncRequest(gspLcdHandle)))return ret; + - return cmdbuf[1]; ++ return cmdbuf[1]; + }