; -------------------------------------------------------------------------------- ; @Title: RTEMS specific menu ; @Description: - ; @Author: DIE ; @Copyright: (c) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Id$ NAME "TASK.RTEMS" IF !MENU.EXIST("TASK.RTEMS") ( add menu ( POPUP "RTEMS" ( menuitem "Display API &Information" "TASK.INFO" default menuitem "Display All &Threads" "TASK.Thread" popup "Display Internal Objects" ( menuitem "Display Threads" "TASK.INTernal.Thread" ;menuitem "Display Mutexes" "TASK.INTernal.Mutex" ) popup "Display Classic Objects" ( menuitem "Display Tasks" "TASK.CLassic.Task" menuitem "Display Timers" "TASK.CLassic.TImer" menuitem "Display Semaphores" "TASK.CLassic.Semaphore" menuitem "Display Message Queues" "TASK.CLassic.MsgQueue" menuitem "Display Partitions" "TASK.CLassic.Partition" menuitem "Display Regions" "TASK.CLassic.Region" menuitem "Display Ports" "TASK.CLassic.POrt" menuitem "Display Periods" "TASK.CLassic.PEriod" menuitem "Display Extensions" "TASK.CLassic.Extension" ) popup "Display POSIX Objects" ( menuitem "Display Threads" "TASK.Posix.Thread" menuitem "Display Keys" "TASK.Posix.Keys" ;menuitem "Display Mutexes" "TASK.Posix.Mutex" ;menuitem "Display Condition Variables" "TASK.Posix.CondVar" ) ;popup "Display ITRON Objects" ;( ;) separator popup "&Stack Coverage" ( menuitem "&List Stacks" "TASK.STacK.view" menuitem "Add Task" "TASK.STacK.ADD" menuitem "Remove Task" "TASK.STacK.ReMove" menuitem "Reset Coverage" ( if icd()||simulator() ( PRIVATE &bYes dialog.yesno "Overwrite unused stack space" "with stack fill pattern?" entry &bYes if !&bYes enddo ) TASK.STacK.Init ) ) ) popup "Trace" ( popup "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 ) Break.Delete /Alpha Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha ) 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 ) Break.Delete /Alpha /Beta /Charly Break.SetFunc Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha ) 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 RTEMS" "HELP __RTOS_RTEMS_" ) ) menu "task.info" ( default menuitem "Display Open" ( PRIVATE &sKey &sKey=track.string() TASK.INFO.&sKey ) menuitem "Display Object Table" ( PRIVATE &nAddress &sSymbol &nAddress=track.address() &sSymbol=sYmbol.NAME(&nAddress) Var.View %o &sSymbol ) ) menu "task.info.i" ( default menuitem "Display Objects" ( PRIVATE &cmd &cmd=track.string() print "&cmd" &cmd ) menuitem "Display Information struct" ( PRIVATE &nAddress &sSymbol &nAddress=track.address() &sSymbol=sYmbol.NAME(&nAddress) Var.View %o &sSymbol ) ) menu "task.t" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.Thread &nAddress ) menuitem "Display Thread struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (Thread_Control*)(&pAddress) ) separator menuitem "Display Stack Frame" ( PRIVATE &magic &magic=ADDRESS.OFFSET(track.address()) Var.Frame /Locals /Caller /Task &magic ) menuitem "Switch Context" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) Register.TASK &nAddress ) separator menuitem "Add to Stack Cov" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.STacK.ADD &nAddress ) menuitem "Rm from Stack Cov" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.STacK.RM &nAddress ) separator menuitem "Dump thread entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.int.m" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.INTernal.Mutex &nAddress ) menuitem "Display Mutex struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (API_Mutex_Control*)(&pAddress) ) menuitem "Dump Mutex Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.r.ti" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.CLassic.TImer &nAddress ) menuitem "Display Timer struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (Timer_Control*)(&pAddress) ) menuitem "Dump Timer Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.r.s" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.CLassic.Semaphore &nAddress ) menuitem "Display Semaphore struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (Semaphore_Control*)(&pAddress) ) menuitem "Dump Semaphore Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.r.mq" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.CLassic.MsgQueue &nAddress ) menuitem "Display Message queue struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (Message_queue_Control*)(&pAddress) ) menuitem "Dump Message queue Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.r.p" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.CLassic.Partition &nAddress ) menuitem "Display Partition struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (Partition_Control*)(&pAddress) ) menuitem "Dump Partition Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.r.r" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.CLassic.Region &nAddress ) menuitem "Display Region struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (Region_Control*)(&pAddress) ) menuitem "Dump Region Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.r.po" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.CLassic.POrt &address ) menuitem "Display Port struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (Dual_ported_memory_Control*)(&pAddress) ) menuitem "Dump Port Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.r.pe" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.CLassic.PEriod &nAddress ) menuitem "Display Period struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (Rate_monotonic_Control*)(&pAddress) ) menuitem "Dump Period Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.r.e" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.CLassic.Extension &nAddress ) menuitem "Display Extension struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (Extension_Control*)(&pAddress) ) menuitem "Dump Extension Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.p.k" ( default menuitem "Display Detailed" ( PRIVATE &magic &magic=address.offset(track.address()) TASK.Posix.Keys &magic ) menuitem "Display Keys struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %Open (POSIX_Keys_Control*)(&pAddress) ) menuitem "Dump Keys Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /Dialog ) ) menu "task.p.m" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.Posix.Mutex &nAddress ) menuitem "Display Mutex struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (POSIX_Mutex_Control*)(&pAddress) ) menuitem "Dump Mutex Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) menu "task.p.cv" ( default menuitem "Display Detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) TASK.Posix.CondVar &nAddress ) menuitem "Display Condition Variable struct" ( PRIVATE &pAddress &pAddress=track.address() Var.View %o (POSIX_Condition_variables_Control*)(&pAddress) ) menuitem "Dump Condition Variable Entry" ( PRIVATE &pAddress &pAddress=track.address() Data.dump &pAddress /Long /dialog ) ) )