; -------------------------------------------------------------------------------- ; @Title: RTXC Quadros awareness menu ; @Description: - ; @Author: DIE ; @Copyright: (c) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Id: quadros.m 7861 2022-07-29 13:45:42Z amerkle $ NAME "TASK.RTXCQUADROS" IF !MENU.EXIST("TASK.RTXCQUADROS") ( add menu ( popup "RTXC Quadros" ( default menuitem "Display &Tasks" "TASK.TaSK" menuitem "Display &Semaphores" "TASK.SEMaphore" menuitem "Display &Mailboxes" "TASK.MailBoX" menuitem "Display &Partitions" "TASK.PaRTition" menuitem "Display &Queues" "TASK.QUEue" menuitem "Display M&utexes" "TASK.MuTeX" menuitem "Display T&hreads" "TASK.THRead" menuitem "Display &Levels" "TASK.LeVeL" menuitem "Display P&ipes" "TASK.PIPe" menuitem "Display &Event Sources" "TASK.EVenT" menuitem "Display &Counters" "TASK.CouNTer" menuitem "Display &Alarms" "TASK.ALaRm" menuitem "Display E&xceptions" "TASK.EXCeption" separator popup "&Stack Coverage" ( menuitem "&List Stacks" "TASK.STacK" menuitem "Add Task" "TASK.STacK.ADD" menuitem "Remove Task" "TASK.STacK.ReMove" menuitem "Reset Coverage" ( PRIVATE &yes DIALOG.YESNO "Overwrite unused stack space" "with stack fill pattern?" ENTRY &yes IF !&yes ENDDO TASK.STacK.Init ) ) ) popup "Trace" ( popup "[:alist]List" ( separator menuitem "&Task Switches" "Trace.List List.TASK" menuitem "&Default and Tasks" "Trace.List List.TASK DEFault" ) ) popup "Perf" ( separator popup "&Task Runtime" ( menuitem "&Prepare" ( if t.method.analyzer() ( Analyzer.AutoInit on ) if a.mode.flow() ( if cpufamily()!="SC100" ( Break.Delete /TraceEnable Break.Set task.config(magic) /TraceEnable ) else ( Break.Delete /TraceData Break.Set task.config(magic) /TraceData ) ) ) menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASK" menuitem "[:achart]Show as &Timing" "Trace.CHART.TASK" menuitem "[:achart]Tracking with Trace &List" ( Trace.List List.TASK DEFault /Track Trace.CHART.TASK /Track ) ) popup "Task &Function Runtime" ( menuitem "&Prepare" ( if t.method.analyzer() ( Analyzer.AutoInit on Analyzer.STATistic.PreFetch on ) if a.mode.flow() ( Break.Delete /TraceData Break.Set task.config(magic) /TraceData ) ) menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASKFUNC" menuitem "[:perf]Show as &Tree" "Trace.STATistic.TASKTREE" menuitem "[:perf]Show &Detailed Tree" "Trace.STATistic.TASKTREE ALL" menuitem "[:achart]Show as &Timing" "Trace.CHART.TASKFUNC" menuitem "[:alist]Show N&esting" "Trace.List List.TASK FUNC TI.FUNC" ) popup "Task &Status" ( menuitem "&Prepare" ( if t.method.analyzer() ( Analyzer.AutoInit on ) Break.Delete /Alpha Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha ;TASK.TASKState ) menuitem "[:perf]Show &Numerical" "Trace.STATistic.TASKSTATE" menuitem "[:achart]Show as &Timing" "Trace.CHART.TASKSTATE" menuitem "[:achart]Tracking with Trace &List" ( Trace.List List.TASK DEFault /Track Trace.CHART.TASKSTATE /Track ) ) ) popup "&Help" ( MENUITEM "[:manual]OS Awareness Manual Quadros" "HELP __RTOS_QUADROS_" ) ) menu "task.tsk" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.TaSK &nAddress ) menuitem "Display task struct" ( PRIVATE &pAddress &sStruct &pAddress=TRACK.ADDRESS() &sStruct=task.task.struct() Var.View %Open (&(sStruct)*)(&pAddress) ) separator menuitem "Display Stack Frame" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) Var.Frame /Locals /Caller /Task &nAddress ) menuitem "Switch context" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) Register.TASK &nAddress ) separator menuitem "Add to Stack Cov" "TASK.STK.ADD address.offset(track.address())" menuitem "Rm from Stack Cov" "TASK.STK.RM address.offset(track.address())" separator menuitem "Dump task entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.sem" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.SEMaphore &nAddress ) menuitem "Display semaphore struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Var.View %m %s (struct _sheader*)(&pAddress) ) separator menuitem "Dump semaphore entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.mbx" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.MailBoX &nAddress ) menuitem "Display mailbox struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Var.View %m %s (struct _mheader*)(&pAddress) ) separator menuitem "Dump mailbox entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.prt" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.PaRTition &nAddress ) menuitem "Display partition struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Var.View %m %s (struct _pheader*)(&pAddress) ) separator menuitem "Dump partition entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.que" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.QUEue &nAddress ) menuitem "Display queue struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Var.View %m %s (struct _qheader*)(&pAddress) ) separator menuitem "Dump queue entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.mtx" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.MuTeX &nAddress ) menuitem "Display mutex struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Var.View %m %s (struct _uheader*)(&pAddress) ) separator menuitem "Dump mutex entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.thr" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.THRead &nAddress ) menuitem "Display thread struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() if cpufamily()!="C5000" Var.View %m %s (struct _tcheader*)(&pAddress) else Var.View %m %s (TCHEADER*)(&pAddress) ) separator menuitem "Dump thread entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.lvl" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.LeVeL &nAddress ) menuitem "Display level struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() if cpufamily()!="C5000" Var.View %m %s (struct _lcheader*)(&pAddress) else Var.View %m %s (LCHEADER*)(&pAddress) ) separator menuitem "Dump level entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.exc" ( default menuitem "Display exception struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() if cpufamily()!="C5000" Var.View %m %s (struct _eheader*)(&pAddress) else Var.View %m %s (EHEADER*)(&pAddress) ) ;separator menuitem "Dump exception entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.evt" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.EVenT &nAddress ) menuitem "Display event source struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() if cpufamily()!="C5000" Var.View %m %s (struct _scheader*)(&pAddress) else Var.View %m %s (SCHEADER*)(&pAddress) ) separator menuitem "Dump event source entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.cnt" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.CouNTer &nAddress ) menuitem "Display counter struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() if cpufamily()!="C5000" Var.View %m %s (struct _ccheader*)(&pAddress) else Var.View %m %s (CCHEADER*)(&pAddress) ) separator menuitem "Dump counter entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.alr" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.ALaRm &nAddress ) menuitem "Display alarm struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() if cpufamily()!="C5000" Var.View %m %s (struct _acheader*)(&pAddress) else Var.View %m %s (ACHEADER*)(&pAddress) ) separator menuitem "Dump alarm entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) menu "task.pip" ( default menuitem "Display detailed" ( PRIVATE &nAddress &nAddress=ADDRESS.OFFSET(TRACK.ADDRESS()) TASK.PIPe &nAddress ) menuitem "Display pipe struct" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() if cpufamily()!="C5000" Var.View %m %s (struct _pcheader*)(&pAddress) else Var.View %m %s (PCHEADER*)(&pAddress) ) separator menuitem "Dump pipe entry" ( PRIVATE &pAddress &pAddress=TRACK.ADDRESS() Data.dump &pAddress /Long /DIALOG ) ) )