; --------------------------------------------------------------------------------
; @Title: Sciopta specific menu
; @Description: -
; @Author: DIE
; @Copyright: (c) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: sciopta2.men 7320 2014-07-03 08:57:49Z kjmal $

add
menu
(
  popup "&Sciopta"
  (
    menuitem "Display &Modules"     "TASK.ModList"
    menuitem "Display &Processes"   "TASK.ProcList"
    menuitem "Show last &error..."  "TASK.ERRmsg"
    separator
    popup "&Stack Coverage"
    (
      menuitem "&List Stacks"    "TASK.STacK"
      menuitem "Add Task"        "TASK.STK.ADD"
      menuitem "Remove Task"     "TASK.STK.RM"
      if ice()||fire()
      (
        menuitem "&Reset Coverage" "TASK.STK.RES"
      )
      else
      (
	menuitem "Stack &Pattern..."
	(
	  dialog
	  (
	    header "Stack Pattern Check"
	    pos 0x0 0x0 13. 3.
	    box "initialized pattern:"
	    pos 0x1 0x1 11. 1.
pattern:    defedit "17" ""
	    pos 14. 0x1 0x6 0x1
	    defbutton "OK"
	    (
	      local &pattern
	      &pattern=dialog.string(pattern)
	      TASK.STK.PAT &pattern
	      dialog.end
	    )
	  )
	)
      )
    )
  )
  popup "Trace"
  (
    popup "List"
    (
      separator
      menuitem "&Task Switches"    "Trace.List List.TASK"
      menuitem "Default and Tasks" "Trace.List List.TASK def"
    )
  )
  popup "Perf"
  (
    popup "&Task Runtime"
    (
      menuitem "&Prepare"
      (
        if t.method.analyzer()
        (
          Analyzer.AutoInit on
        )
        if (ice()||fire())&&!a.mode.flow()
        (
          Analyzer.ReProgram
          (
            Sample.Enable if AlphaBreak&&Write
          )
          Break.Delete /Alpha
          Break.Set task.config(magic)++(task.config(magicsize)-1) /Alpha
        )
        if a.mode.flow()
        (
          Break.Delete /TraceEnable
          Break.Set task.config(magic) /TraceEnable
        )
      )
      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 "&Help"
  (
    menuitem "Sciopta Awareness Manual" "HELP __RTOS_SCIOPTA_"
  )
)


menu "proc.menu"
(
  default
  menuitem "Display detailed"
  (
    &address=address.offset(track.address())
    TASK.Process &address
  )
  menuitem "Display process struct"
  (
    &address=address.offset(track.address())
    &struct=task.struct(pcb)
    Var.View %o %s (&struct)*&address
  )
  menuitem "Display entry function"
  (
    &address=address.offset(track.address())
    &address=task.entry(&address)
    Data.List &address
  )
  separator
  menuitem "Display Stack Frame"
  (
    &pid=task.pid(address.offset(track.address()))
    Var.Frame /Locals /Caller /Task &pid
  )
  menuitem "Display Registers"
  (
    &pid=task.pid(address.offset(track.address()))
    Register /Task &pid
  )
  menuitem "Switch Context"
  (
    &pid=task.pid(address.offset(track.address()))
    Register.TASK &pid
  )
  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 process struct data"
  (
    &address=address.offset(track.address())
    Data.dump &address /l /dialog
  )
)


menu "module.menu"
(
    menuitem "Process list ..." 
    (
        &modid=address.offset(track.address())
        TASK.ProcList &modid
    )
    menuitem "Pool list ..."
    (
        &modid=address.offset(track.address())
        TASK.POolList &modid
    )
    menuitem "Stack list ..."
    (
        &modid=address.offset(track.address())
        TASK.StackList &modid
    )
)


menu "pool.menu"
(
    MENUITEM "Pool statistics ..." 
    (
        &poolid=track.string()
        TASK.POolStat &poolid
    )
    MENUITEM "Pool analyzer ..."
    (
        &poolid=track.string()
        TASK.PooL &poolid
    )
)


menu "poolana.menu"
(
  MENUITEM "[:list]List ..."  "d.lh task.magic2entry(address.offset(track.address()))"
  MENUITEM "[
	,,,
	 BBB      RRR
	BYYYB XX RYYYR
	BYYYBX  XRYYYR
	BYYYB    RYYYR
	 BBB      RRR]Show message-queue" "task.dq track.address() 0"
  MENUITEM "[
	,,,
	 BBB      RRR
	BxxxB XX RxxxR
	BxxxBX  XRxxxR
	BxxxB    RxxxR
	 BBB      RRR]Show owned messages" "task.dq track.address() 1"

)







