Files
2025-10-14 09:52:32 +09:00

683 lines
34 KiB
Plaintext

;@Extension.Container.Version.1
;-- DO NOT CHANGE THE LINE ABOVE --
IF (VERSION.BUILD.BASE()<138311.)
(
PRINTF %ERROR "%s: Software too old, please contact support@lauterbach.com." "OSEck"
ENDDO
)
PMACRO.EXPLICIT
PRIVATE &sParamline &sPpf &sCmd &sParameters &sAccess &sAccessSpaces &sAccessMachine &sOptionAccess &sOptionAccessMisc &sName &sMachine &sArguments &nVariant
PRIVATE &bTaskConfig &bExtLoad &bCleanup
ENTRY &sCmd %LINE &sParamline
&sParameters=STRing.SCANAndExtract("&sParamline","PARAMETERS=","")
&sAccess=STRing.SCANAndExtract("&sParamline","ACCESS=","")
&sAccessSpaces=STRing.SCANAndExtract("&sParamline","ACCESSSPACES=","")
&sAccessMachine=STRing.SCANAndExtract("&sParamline","ACCESSMACHINE=","")
&sName=STRing.SCANAndExtract("&sParamline","NAME=","")
&sMachine=STRing.SCANAndExtract("&sParamline","MACHINE=","")
&sArguments=STRing.SCANAndExtract("&sParamline","ARGUMENTS=","")
&sParameters=STRing.Replace("&sParameters","""","",0.)
IF ("&sArguments"!="")
&sArguments=&sArguments
IF ("&sAccess"!="")
&sOptionAccess="/ACCESS &sAccess"
IF ("&sAccessSpaces"!="")
&sOptionAccessMisc="/ACCESSSPACES &sAccessSpaces"
IF ("&sAccessMachine"!="")
&sOptionAccessMisc="&(sOptionAccessMisc) /ACCESSMACHINE &sAccessMachine"
&sName=STRing.Replace("&sName","""","",0.)
&bTaskConfig=STRing.SCAN("task.config,ext.config",STRing.LoWeR("&sCmd"),0.)>=0.
&bExtLoad=STRing.SCAN("ext.load",STRing.LoWeR("&sCmd"),0.)>=0.
&bCleanup=STRing.SCAN("task.res,ext.res,ext.delete",STRing.LoWeR("&sCmd"),0.)>=0.
&sPpf=OS.PresentPracticeFile()
IF (&bTaskConfig||&bExtLoad)
(
IF ("&nVariant"!="32.")&&("&nVariant"!="64.")
(
IF CPUIS64BIT()
&nVariant="64."
ELSE
&nVariant="32."
)
IF STRing.ComPare("&sArguments","*32BIT*")
&nVariant="32."
ELSE IF STRing.ComPare("&sArguments","*64BIT*")
&nVariant="64."
)
IF (&bTaskConfig)
(
PRIVATE &sMachineName
&sMachineName="OSEck"
TASK.RESet
IF (&nVariant==32.)
(
GOSUB extension_32bit "&sParameters" "&sOptionAccess"
IF !STRing.Compare("&sArguments","*MENU=NONE*")
GOSUB menu_32bit "&sMachineName" ""
GOSUB autoload_32bit ""
)
ELSE IF (&nVariant==64.)
(
PRINTF %ERROR "%s: No support for %ubit, please contact support@lauterbach.com." "OSEck" &nVariant
)
)
ELSE IF (&bExtLoad)
(
PRIVATE &sMachineName &sInfix &sOptionName &sOptionMachine
&sInfix=""
&sMachineName="OSEck"
IF ("&sName"!="")
(
&sInfix=STRing.UPpeR("&(sName).")
&sMachineName="&(sName)"
&sOptionName="/NAME &sMachineName"
)
ELSE IF PRACTICE.FUNCtion.AVAILable(SYStem.Option.MACHINESPACES)
(
IF SYStem.Option.MACHINESPACES()
&sInfix=TASK.TRANSPOSE.INFIX(OS.FILE.BASENAME("&sPpf",".**"))+"."
)
IF ("&sMachine"!="")
(
&sOptionMachine="/MACHINE &sMachine"
)
IF (&nVariant==32.)
(
GOSUB extension_32bit "&sParameters" "&sOptionAccess &sOptionAccessMisc &sOptionName &sOptionMachine"
IF !STRing.Compare("&sArguments","*MENU=NONE*")
GOSUB menu_32bit "&sMachineName" "&sInfix"
GOSUB autoload_32bit "&sOptionMachine"
)
ELSE IF (&nVariant==64.)
(
PRINTF %ERROR "%s: No support for %ubit, please contact support@lauterbach.com." "OSEck" &nVariant
)
)
ELSE IF (&bCleanup)
(
PRIVATE &sMachineName &sOptionMachine
&sMachineName="OSEck"
IF ("&sName"!="")
(
&sMachineName="&(sName)"
)
IF ("&sMachine"!="")
(
&sOptionMachine="/MACHINE &sMachine"
)
IF STRing.SCAN(HELP.FILTER(),"rtososeck",0.)>=0.
HELP.FILTER.Delete rtososeck
GOSUB menu_delete "&sMachineName"
GOSUB autoload_delete "&sOptionMachine"
)
ENDDO
extension_32bit: ; (options)
(
PARAMETERS &sParameters &sOptions
EXTension.LOAD &sParameters &sOptions
(
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
fIIQCE6AACA4QAcEfIIQCE6AACA4QAcFfIIQCE6AACA4QAcUfIIQCE6AACA4QAgBfIIQCE6AACA4
QAgCfIIQCE6AACA4QAkBfIIQCE6AACA4QAoBfIIQCE6AACA4QAoUfIIQCE6AACA4QAsDfIIQCE6A
ACC+AgMEAAAABQBAVkVSU0lPTi1JTkZPQAAxMDE5NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAJ9IAAAfoAAAABgAAAA0AAAAAAAAAAAAAAABodHRwczovL3N2bi5pbnRlcm4ubGF1dGVyYmFj
aC5jb20vc3ZuL2tlcm5lbHNyYy9icmFuY2hlcy9uaWdodGx5AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGh0dHBzOi8vc3ZuLmlu
dGVybi5sYXV0ZXJiYWNoLmNvbS9zdm4va2VybmVsc3JjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
YmF1bWVpc3RlcgAAAAAAAGVkay1saW51eDY0Yml0LTcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHQ0MgOS41LjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+gAAAAGAAAADQAAAE4AACfS
AAAH6AAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAABPplPU0VjawAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAVEFTSy5D
T05GSUcAX19FTU9TRUNLX0ZVTkMAAF9fRU1PU0VDS19fQUwAAABfX0VNT1NFQ0tfX0FTAAAAX19F
TU9TRUNLX19BVAAAAG9kb19zeXMATm8gUHJvY2Vzc2VzIGZvdW5kLiBDaGVjayBDb25maWd1cmF0
aW9uLgAAAABBbHBoYSBCcmVha3BvaW50cyBzZXQgb24gJWQgcHJvY2VzcyBzdGF0ZXMAAHBhcmFt
ZXRlciAxOiAweCU4eCA9ICVzAG1hZ2ljAAAAbWFnaWNzaXplAAAAdW5rbm93biB0b3BpYwAAAG9k
b19kZWJ1Z19pbmZvAABvZG9fY29uZmlnAABzdHJ1Y3QgaV9jb25maWcALmVycm9yX2hhbmRsZXIA
AC5tYXhfdmFsaWRfaWR4AAAubnJfcHJvY2Vzc2VzAAAALm1heF9wb29saWQALmxpbmtfaGFuZGxl
cgAAAG9kb19wY2JfbGlzdAAAAABvZG9fcG9vbF9saXN0AAAAb2RvX21heF92YWxpZF9waWQAAABw
Y2JfdAAAAHN0cnVjdCBwY2IAAC5uYW1lAAAALnR5cGUAAAAuc3RhdGUAAC5wcmlvAAAALmVudHJ5
AAAuZnNlbV92YWx1ZQBwb29sX3QAAHN0cnVjdCBwb29sAC5mcmVlAAAALnNpemVzAAAucHRyAAAA
AC5lbmQAAAAALnN0YXJ0AABzdHJ1Y3QgcG9vbF9zdGFja19zAHNpZ2J1Zl90AAAAAHN0cnVjdCBz
aWdidWYAAAAuc2VuZGVyAC51c2VyAAAAc2lnc2VsZWN0X3QAU0lHU0VMRUNUAAAAc3RydWN0IHBv
b2xfc3RhY2sAAABUYXNrTGlzdDogbWFnaWM9JTh4AFRhc2tMaXN0OiBjb3VudD0lZAAALS0tIFBS
T0NFU1MgPSAAACAoJTh4KQAAb3NlX3ZlcnNpb24AU29ycnk6IENvdWxkbid0IGdldCBzeW1ib2wg
YWRkcmVzc2VzAAAAAAAAOBwAAAADAAAAFwAAAAAAADgoAAAB4AAAODgAAA4AAAA4SAAADiwAADhY
AAAOgHllcwBubwAAb3MgcmVsZWFzZQoAICB0YXJnZXQgICAgICAgICA6ICAAAAAAT1NFY2sgJXMK
AAAAICBvcyB2ZXJzaW9uICAgICA6ICAAAAAAJXMKACAgaWQgc3RyaW5nICAgICAgOiAgAAAAACAg
YnVmZmVyIGNrZWNrICAgOiAgAAAAACAgcGFyYW1ldGVyIGNrZWNrOiAgAAAAACAgc3RhY2sgY2tl
Y2sgICAgOiAgAAAAACAgZGVidWcgaG9va3MgICAgOiAgAAAAACVzCgoAAAAAaWQgc3RyaW5nIG5v
dCBmb3VuZAoAAAAAc3RhdGljIG9zIGluZm9ybWF0aW9uCgAAICBtYXggbnVtYmVyIG9mIHByb2Nz
IDogIAAAACVkCgBtYXggcGlkIG5vdCBmb3VuZAoAACAgbm8uIG9mIHN0YXRpYyBwcm9jcyA6ICAA
AAAgIG1heCBudW1iZXIgb2YgcG9vbHMgOiAgAAAAICBsaW5rIGhhbmRsZXIgcGlkICAgIDogIAAA
AG5vbmUgY29uZmlndXJlZAoAAAAAICBlcnJvciBoYW5kbGVyICAgICAgIDogIAAAAEQuTCAleAAA
cnVubmluZyBvcyBpbmZvcm1hdGlvbgoAICBjdXJyZW50IHByb2Nlc3MgcGlkIDogIAAAACAgc3lz
dGVtIHRpY2sgY291bnRlciA6ICAAAAAgIG9zIG5vdCBpbml0aWF0ZWQKCgAAAAAgIGxhc3QgZXJy
b3IgbWVzc2FnZSAoYm9ndXMgaWYgbm8gZXJyb3IpCgAAAGVycl9tc2cAICAgIGVycl9tc2cucGlk
ICAgICAgICAgOiAgACAgICBlcnJfbXNnLnVzZWRfY2FsbGVkIDogIAAgICAgZXJyX21zZy5lcnJv
cl9jb2RlICA6ICAAMHglOHgKAAAgICAgZXJyX21zZy5leHRyYSAgICAgICA6ICAAICAgIGVycm9y
IG1lc3NhZ2Ugbm90IGZvdW5kCgAAAABTWVNJTkZPAFNJAABTeXNJbmZvAEAoPSlfX1JUT1NfT1NF
Q0tfX1RBU0tfU0kAAABzeXN0ZW0gaW5mb3JtYXRpb24AADxwcm9jZXNzPgAAAFNvcnJ5LCBQcm9j
ZXNzICclcycgbm90IGZvdW5kLgAAVEFTSy5Qcm9jZXNzICV4AFRBU0suUAAAJTR4AElOVABUSQAA
UFJJTwAAAABCRwAASURMRQAAAAAoJWQpAAAAAHJ1bm5pbmcALS0tAHJlYWR5AAAAcmVjZWl2ZSAA
AAAAZGVsYXkgICAAAAAAc2VtYSAgICAAAAAAZnNlbWEgICAAAAAAcmVtb3RlICAAAAAAc3RvcHBl
ZCAAAAAAdW5rbm93biAAAAAAJTNkLgAAAAA+OTkuIAAAACUzZC4gAAAAIAoAAHN0a3N0YXJ0ICBz
dGtzaXplICAgc3RrbSAgZmFzdF9zZW0KACU4eCAgJTh4ICAAACAtLS0gICAgICAtLS0gICAgICAg
AAAAACUyeCAAAAAAICAgJSUlZHggICAAc2lnbmFsIHF1ZXVlOgoAAG1hZ2ljICAgICBzaWdubyAg
c2l6ZSAgIHNlbmRlciAgICAgICAgICAgY29udGVudCAgICAgICAgICAgICAgICAgICAgICBhc2Np
aQoAAAAAbm9uZQoAAABEYXRhLmR1bXAgJXgAAAAAJTR4ICAgAAAlNHggICAgICAgICAgAAAALS0g
ICAgICAgICAgICAgICAAAAAuLi4gIAAAAG1hZ2ljICAgIAAAAG5hbWUgICAgICAgICAgAAAgcGlk
IAAAAHR5cGUgAAAAc3RhdHVzIABwcmlvAAAAAGluX3EAAAAAZW50cnkAAABEUFJPQwAAAERQAABQ
Uk9DRVNTAFAAAABQcm9jZXNzAEAoPSlfX1JUT1NfT1NFQ0tfX1RBU0tfUAAAAAD//9uk///azP//
22T//9uk///bdP//26T//9uk///bpP//24T//9uk///bpP//26T//9uk///bpP//26T//9uk///b
lDxwb29sPgAAVEFTSy5Qb29MICV4AAAAAERhdGEuZHVtcCAleCAvRElBTE9HIAAAAERwbERpc3Bs
YXlBbGw6IHBsY2JwdHIgPSAlOHgAAAAAZnJlZSBsaXN0IGluZm9ybWF0aW9uOgoAaW5kZXggIGJ1
ZmZlciBzaXplICBudW0gb2YgZnJlZSBzaWduYWxzCgAAAAAgICUxZC4gICAAAAAlNHggICAgICAg
ICAAAAAAPjk5LgAAAABidWZmZXIgaW5mb3JtYXRpb246CgAAAABzaWduYWxzICAAAABwY2IgIAAA
AHN0YWNrcyAgAAAAAGVtcHR5ICAAb3RoZXIgIABhZGRyZXNzICAgdHlwZSAgICBzaXplIGluZGV4
ICBidWZmZXIgc2l6ZSAgb3duZXIKAAAAICAlZCAgICAgICAgIAAAACU0eCAKAAAAICBwY2IgICAg
ICAgICAgICAgICAgIAAAICBzdGFjayAgIAAAICAoZmVlZikgICAgICAgICAgICAgIAAAMDAzOAoA
AAAgIHNpZ25hbCAgAAAgIGJ1ZmZlciAgAAAgIGVtcHR5ICAgAABpZCAgAAAAAHN0YXJ0ICAgIAAA
AGVuZCAgICAgIAAAAHNpemUgICAgIAAAAGZyZWUgICAgIAAAAHVzZWQgICAgIAAAAERQT09MAAAA
RFBMAFBPT0wAAAAAUEwAAFBvb0wAAAAAQCg9KV9fUlRPU19PU0VDS19fVEFTS19QTAAAAEFSTQBN
VEQgT1NFY2sgVmVyc2lvbiAgJXMgVmVyc2lvbiAlMmQuJTJkLiU0ZCAoQnVpbGQgJXMpCgoAAG1h
Z2ljICAgICAgICAlOHggICU4eCAgAGRlYnVnIGluZm8gICAlOHggICAgICAgICAgICAAAAAAY29u
ZmlnICAgICAgICU4eCAgICAgICAgICAgIAAAAAAKc3lzdGVtICAgICAgICU4eCAgICAgICAgICAg
IAAAAApwY2IgbGlzdCAgICAgJTh4ICAlOHggIAAAAAAKcG9vbCBsaXN0ICAgICU4eCAgICAgICAg
ICAgIAAAACMgcHJvY2Vzc2VzICAlZCAgIAoAbWF4IHBpZCAgICAgICU4eCAgAAAgJTVkICAgICAg
AABvc2UgaWQgICAgICAgJTh4ICAlOHggIAAlcwAAb3NlIGlkICAgICAgICU4eAAAAABkYmcgdmVy
c2lvbiAgJTh4ICAAAGRiZyB2ZXJzaW9uICAlOHgKAAAAb3MgaW5mbyAAAAAACiAgIHByb2Nlc3Nv
ciAgICAlcwAKICAgcmVsZWFzZSAgICAgICVzAAogICBidWZmICBjaGVjayAgJXMACiAgIHBhcmFt
IGNoZWNrICAlcwAKICAgc3RhY2sgY2hlY2sgICVzAAogICBkZWJ1ZyBob29rcyAgJXMACiAgIGNv
bmZpZyBzdHJ1Y3QgdmVyc2lvbiAgJWMAAAAKICAga2VybmVsIHN0cnVjdCB2ZXJzaW9uICAlYwAA
AFRFU1QAAAAAcGFyYW1ldGVyICAgIHZhbHVlICAgICBjb250ZW50ICAgc3ltYm9sAFRhc2tTdGFj
azogbWFnaWM9JTh4AAAAAE9TRWNrAERBVEEAAAACAAAAAAAAAAAAAADEAAAAAgAAAAAAADrsAAAA
AAAAApgAAA8sAAAAARkyAAAAAD5sAAATQAAAAAIAAAAAAAA67AAAAAAAAD48AAA+RAAAPkgAAD5Q
AAAS8AAAAAMAUAAAAAQAxAAAHnQAAAACAAAAAAAAOuwAAAAAAAAAAgAAAAAAAAAAAAAacAAAAAMA
UAAAAAQAxAAAH6QAAEDQAABA2AAAQNwAAEDkAAAZgAAAQMQAAEDMAAA9bAAAPWwAABmAAABAeAAA
QIQAAECUAABAnAAAQKQAAECsAABAtAAAQLwAAAAAAAAAAgAAAAAAADrsAAAAAAAAAAMARgAAAAQB
QAAAJlQAAAADAEYAAAAEAUAAACdoAABDSAAAQ1AAAENUAABDXAAAJDgAAEM8AABDRAAAPWwAAD1s
AAAkOAAAQHgAAEL4AABDAAAAQwwAAEMYAABDJAAAQzAAAAAAAAAAAQA8AAAAAEXAAAAuZAAARbgA
AEW4AAA9bAAAPWwAAC4wAAA9bAAARgAAAEN4AAAAAFQzMkU=
)
HELP.FILTER.Add rtososeck
RETURN
)
menu_32bit: ;(header, infix)
(
PMACRO.LOCK
(
PRIVATE &sHeader &sInfix &sMenuName
PARAMETERS &sHeader &sInfix
&sMenuName=TASK.TRANSPOSE.INFIX("&sHeader")
IF MENU.EXIST("TASK.&(sMenuName)")
MENU.Delete.NAME TASK.&(sMenuName)
IF MENU.EXIST("EXT.&(sMenuName)")
MENU.Delete.NAME EXT.&(sMenuName)
MENU.ReProgram
(&+
; --------------------------------------------------------------------------------
; @Title: OSE specific menu
; @Description: -
; @Author: DIE
; @Copyright: (c) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id: oseck.m 8128 2022-11-07 12:29:52Z amerkle $
NAME "TASK.&sMenuName"
IF !MENU.EXIST("TASK.&sMenuName")
(
add
menu
(
POPUP "&sHeader"
(
default
menuitem "Display &Processes" "TASK.&(sInfix)Process"
menuitem "Display &Pools" "TASK.&(sInfix)PooL"
menuitem "Display &System" "TASK.&(sInfix)SysInfo"
if cpufamily()!="C5000"
(
popup "&Stack Coverage"
(
menuitem "&List Stacks" "TASK.&(sInfix)STacK"
menuitem "Add Task" "TASK.&(sInfix)STacK.ADD"
menuitem "Remove Task" "TASK.&(sInfix)STacK.ReMove"
enable ice()
menuitem "&Reset Coverage" "TASK.&(sInfix)STacK.RESet"
)
)
)
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 (ice()||fire())&&!a.mode.flow()
(
Analyzer.ReProgram
(
Sample.Enable if AlphaBreak&&Write
)
)
Break.Delete /Alpha
Break.Set task.&(sInfix)config(magic)++(task.&(sInfix)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
)
if (ice()||fire())&&!a.mode.flow()
(
if a.config.hac()
(
Analyzer.ReProgram
(
Sample.Enable if AlphaBreak
Sample.Enable if BetaBreak
Mark.A if AlphaBreak
Mark.B if BetaBreak
)
)
else
(
Analyzer.ReProgram
(
Sample.Enable if AlphaBreak||BetaBreak
Mark.A if AlphaBreak
Mark.B if BetaBreak
)
)
)
Break.Delete /Alpha /Beta /Charly
Break.SetFunc
Break.Set task.&(sInfix)config(magic)++(task.&(sInfix)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
)
if (ice()||fire())&&!a.mode.flow()
(
Analyzer.ReProgram
(
Sample.Enable if AlphaBreak&&Write
)
)
Break.Delete /Alpha
Break.Set task.&(sInfix)config(magic)++(task.&(sInfix)config(magicsize)-1) /Alpha
TASK.&(sInfix)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 OSEck" "HELP __RTOS_OSECK_"
)
)
menu "TASK.&(sInfix)P"
(
default
menuitem "Display Detailed"
(
PRIVATE &nAddr
&nAddr=address.offset(track.address())
TASK.&(sInfix)Process &nAddr
)
separator
menuitem "Add to Stack Cov"
(
PRIVATE &nAddr
&nAddr=address.offset(track.address())
TASK.&(sInfix)STacK.ADD &nAddr
)
menuitem "Rm from Stack Cov"
(
PRIVATE &nAddr
&nAddr=address.offset(track.address())
TASK.&(sInfix)STacK.RM &nAddr
)
separator
menuitem "Dump PCB"
(
PRIVATE &pAddr
&pAddr=track.address()
Data.dump &pAddr /Dialog
)
)
)
)
)
PMACRO.UNLOCK
RETURN
)
autoload_32bit: ;(options)
(
PARAMETERS &sOptions
RETURN
)
menu_delete: ;(header)
(
PRIVATE &sHeader &sMenuName
PARAMETERS &sHeader
&sMenuName=TASK.TRANSPOSE.INFIX("&sHeader")
IF MENU.EXIST("TASK.&(sMenuName)")
MENU.Delete.NAME TASK.&(sMenuName)
IF MENU.EXIST("EXT.&(sMenuName)")
MENU.Delete.NAME EXT.&(sMenuName)
RETURN
)
autoload_delete: ;(options)
(
PARAMETERS &sOptionMachine
RETURN
)