Lines Matching refs:UINTPTR
44 WEAK BOOL OsStackDataIsCodeAddr(UINTPTR value)
64 STATIC INLINE BOOL OsInsIsBlOrBlx(UINTPTR addr)
79 STATIC INLINE UINT32 OsStackAddrGet(UINTPTR *stackStart, UINTPTR *stackEnd, UINTPTR SP)
88 *stackEnd = (UINTPTR)taskCB->topOfStack + taskCB->stackSize;
89 if ((SP < (UINTPTR)taskCB->topOfStack) || (SP >= *stackEnd)) {
91 CSTACK_START_ADDR, CSTACK_END_ADDR, (UINTPTR)taskCB->topOfStack, *stackEnd, SP);
109 *stackEnd = (UINTPTR)taskCB->topOfStack + taskCB->stackSize;
110 if ((*stackStart < (UINTPTR)taskCB->topOfStack) || (*stackStart >= *stackEnd)) {
122 STATIC INLINE UINTPTR OsAddrIsValid(UINTPTR sp)
124 UINTPTR pc;
129 pc = *((UINTPTR *)sp) - sizeof(UINTPTR);
136 pc = *((UINTPTR *)sp) - 1;
143 ret = OsInsIsBlOrBlx(pc - sizeof(UINTPTR));
156 STATIC INLINE UINTPTR OsFpGet(VOID)
158 UINTPTR fp = 0;
164 WEAK BOOL IsValidFP(UINTPTR fp)
167 UINTPTR stackTop, stackBottom;
168 UINTPTR irqStackTop, irqStackBottom;
178 irqStackTop = (UINTPTR)CSTACK_START_ADDR;
179 irqStackBottom = (UINTPTR)CSTACK_SECTION_END;
183 irqStackTop = (UINTPTR)CSTACK_START_ADDR;
184 irqStackBottom = (UINTPTR)CSTACK_SECTION_END;
194 VOID LOS_RecordLR(UINTPTR *LR, UINT32 LRSize, UINT32 jumpCount, UINTPTR SP)
196 UINTPTR backFp;
197 UINTPTR tmpFp;
198 UINTPTR backRa;
219 backRa = *((UINTPTR *)(UINTPTR)(tmpFp - OS_RA_OFFSET));
220 backFp = *((UINTPTR *)(UINTPTR)(tmpFp - OS_FP_OFFSET));
246 STATIC INLINE BOOL OsInsIsJump(UINTPTR addr)
280 STATIC INLINE UINTPTR OsSpGet(VOID)
282 UINTPTR sp = 0;
288 STATIC INLINE UINT32 OsStackAddrGet(UINTPTR *stackStart, UINTPTR *stackEnd, UINTPTR SP)
297 *stackEnd = (UINTPTR)taskCB->topOfStack + taskCB->stackSize;
298 if ((SP < (UINTPTR)taskCB->topOfStack) || (SP >= *stackEnd)) {
300 CSTACK_START_ADDR, CSTACK_END_ADDR, (UINTPTR)taskCB->topOfStack, *stackEnd, SP);
317 *stackEnd = (UINTPTR)taskCB->topOfStack + taskCB->stackSize;
318 if ((*stackStart < (UINTPTR)taskCB->topOfStack) || (*stackStart >= *stackEnd)) {
329 STATIC INLINE UINTPTR OsAddrIsValid(UINTPTR sp)
331 UINTPTR pc;
334 pc = *((UINTPTR *)sp);
341 ret = OsInsIsJump(pc - sizeof(UINTPTR));
359 STATIC INLINE UINTPTR HalGetLr(VOID)
361 UINTPTR regLr;
369 BOOL IsValidSP(UINTPTR regSP, UINTPTR start, UINTPTR end)
375 BOOL IsValidRa(UINTPTR regRA)
383 BOOL FindSuitableStack(UINTPTR regSP, UINTPTR *start, UINTPTR *end)
416 UINT32 HalBackTraceGet(UINTPTR sp, UINT32 retAddr, UINTPTR *callChain, UINT32 maxDepth, UINT32 jumpCount)
418 UINTPTR tmpSp;
420 UINTPTR backRa = retAddr;
421 UINTPTR backSp = sp;
422 UINTPTR stackStart;
447 backRa = *((UINT32 *)(UINTPTR)(tmpSp - RA_OFFSET));
448 backSp = *((UINT32 *)(UINTPTR)(tmpSp - SP_OFFSET));
458 VOID LOS_RecordLR(UINTPTR *LR, UINT32 LRSize, UINT32 jumpCount, UINTPTR SP)
460 UINTPTR reglr;
482 STATIC INLINE UINTPTR OsSpGet(VOID)
484 UINTPTR regSp;
492 BOOL IsValidSP(UINTPTR regSP, UINTPTR start, UINTPTR end)
497 BOOL FindSuitableStack(UINTPTR regSP, UINTPTR *start, UINTPTR *end)
530 VOID LOS_RecordLR(UINTPTR *LR, UINT32 LRSize, UINT32 jumpCount, UINTPTR SP)
532 UINTPTR stackPointer;
533 UINTPTR topOfStack;
534 UINTPTR tmpStack = 0;
535 UINTPTR stackBottom;
536 UINTPTR checkBL;
594 STATIC INLINE UINTPTR OsSpGet(VOID)
596 UINTPTR SP;
601 STATIC INLINE BOOL IsArmValidLr(UINTPTR lr)
606 STATIC INLINE BOOL IsThumbValidLr(UINTPTR lr)
612 VOID LOS_RecordLR(UINTPTR *LR, UINT32 LRSize, UINT32 jumpCount, UINTPTR SP)
619 UINTPTR framePtr, tmpFramePtr, linkReg;
640 linkReg = *(UINTPTR *)SP;
670 VOID LOS_RecordLR(UINTPTR *LR, UINT32 LRSize, UINT32 jumpCount, UINTPTR SP)
676 UINTPTR stackStart;
677 UINTPTR stackEnd;
680 UINTPTR sp;
681 UINTPTR pc;
690 for (sp = stackStart; sp < stackEnd; sp += sizeof(UINTPTR)) {
712 UINTPTR LR[BACKTRACE_MAX_DEPTH] = {0};