void Sen_LeaveSleepMode(IPL_SLEEP_LEVEL Level) { IPL_OBJ IplObj; SIE_OPENOBJ SIEOpenObj; PRE_OPENOBJ PREOpenObj; IPE_OPENOBJ IPEOpenObj; IME_OPENOBJ IMEOpenObj; SIEOpenObj.FP_SIEISR_CB = sie_isrCB; PREOpenObj.FP_PREISR_CB = pre_isrCB; IPEOpenObj.FP_IPEISR_CB = ipe_isrCB; IPEOpenObj.IPE_CLOCKSEL = PLL_CLKSEL_IPE_80; IMEOpenObj.FP_IMEISR_CB = ime_isrCB; IMEOpenObj.IME_CLOCKSEL = PLL_CLKSEL_IME_120; if (SensorInfor.bSieMClkEn == ENABLE) { pll_enableClock(SIE_MCLK); } sie_open(&SIEOpenObj); pre_open(&PREOpenObj); ipe_open(&IPEOpenObj); ime_open(&IMEOpenObj); IplObj.uiCmd = NULL; Set2Preview(&IplObj); }
static bool pre_syscall(void *drcontext, int sysnum) { switch (sysnum) { case SYS_open: pre_open(drcontext); break; case SYS_close: pre_close(drcontext); break; case SYS_read: pre_read(drcontext); break; case SYS_write: pre_write(drcontext); break; case SYS_pwrite64: pre_pwrite(drcontext); break; default: break; } return true; }