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

238 lines
5.5 KiB
Plaintext

; --------------------------------------------------------------------------------
; @Title: Xen specific menu
; @Description: -
; @Keywords: xen menu awareness
; @Author: DIE AME
; @Copyright: (c) 1989-2021 Lauterbach GmbH, licensed for use with TRACE32(R) only
; --------------------------------------------------------------------------------
; $Id$
NAME "EXT.XEN"
IF !MENU.EXIST("EXT.XEN")
(
ADD
MENU
(
POPUP "Xen"
(
DEFAULT
MENUITEM "Display &Domains" "EXT.DOMain"
MENUITEM "Display &VCPUs" "EXT.VCPU"
MENUITEM "Display &CPUPools" "EXT.CPUPool"
IF CPUFAMILY()=="ARM"
(
POPUP "[:objects]&Display Device Tree"
(
MENUITEM "[:objects]Display Device Tree"
(
EXT.DTB
)
MENUITEM "[:objects]Display Source"
(
EXT.DTS
)
MENUITEM "[:dump]Extract Blob To File"
(
PRIVATE &sPath &sExtdir &sOptionMachine
&sExtdir=EXT.GETDIR()
IF PRACTICE.FUNCtion.AVAILable(SYStem.Option.MACHINESPACES)
(
IF SYStem.Option.MACHINESPACES()
(
&sOptionMachine=STRing.CUT("/MACHINE ",-1.)
)
)
&sPath=OS.FILE.JOINPATH("&sExtdir","extract_dtb.cmm")
IF OS.FILE("&sPath")
(
DO "&(sPath)" /DIALOG &sOptionMachine
ENDDO
)
&sPath=OS.FILE.JOINPATH("&sExtdir","..","extract_dtb.cmm")
IF OS.FILE("&sPath")
(
DO "&(sPath)" /DIALOG &sOptionMachine
ENDDO
)
PRINT %ERROR "File ""extract_dtb.cmm" not found. Please contact support@lauterbach.com ."
)
MENUITEM "[:list]Save Source To File"
(
DIALOG
(
HEADER "Save Device Tree Source"
POS 0. 0. 30. 3.
BOX "File name"
POS 1. 1. 20. 1.
dtsfile: DEFEDIT "devicetree.dts" ""
POS 22. 1. 7. 1.
POS 6. 3. 7. 1.
DEFBUTTON "Save"
(
PRIVATE &sDtsfile
&sDtsfile=DIALOG.STRING(dtsfile)
IF "&sDtsfile"!=""
(
PRinter.File "&sDtsfile"
IF STATE.RUN()
Break
EXT.MaxVSize 10000.
WinPrint.EXT.DTS
DIALOG.END
EXT.MaxVSize 2000.
ON ERROR CONTinue
PRinter.select WIN
ON ERROR inherit
)
)
POS 17. 3. 7. 1.
BUTTON "Cancel" "DIALOG.END"
)
)
)
)
MENUITEM "Display &Xen Log" "EXT.Log"
MENUITEM "Display &VCPUs Registers" "EXT.REG"
SEPARATOR
MENUITEM "Go to Guest..."
(
DIALOG
(
HEADER "Go to Guest"
POS 0. 0. 10. 3.
BOX "VMID"
POS 1. 1. 8. 1.
vmid: DEFEDIT "" ""
POS 13. 0.5 10. 1.
DEFBUTTON "Ok"
(
PRIVATE &vmid &sExtDir &sPath
&vmid=DIALOG.STRING(vmid)
DIALOG.END
&sExtDir=EXT.GETDIR()
&sPath=OS.FILE.JOINPATH("&sExtDir","go_guest")
DO "&sPath" &vmid
)
BUTTON "Cancel" "DIALOG.END"
)
)
SEPARATOR
POPUP "[:symbols]Symbol &Autoloader"
(
MENUITEM "[:symbols]List Components" "sYmbol.AutoLoad.List"
MENUITEM "[:init]Check Now!" "sYmbol.AutoLoad.CHECK"
MENUITEM "[:config]Config" "sYmbol.AutoLOAD.config"
)
SEPARATOR
MENUITEM "Display Task Tree" "TASK.List.TREE"
MENUITEM "Display Core Activity" "CORE.List"
)
//POPUP "&Help"
//(
// MENUITEM "[:manual]Hypervisor Awareness Manual Xen" "HELP __RTOS_rtos_"
//)
)
ADD
MENU "ext.dom"
(
DEFAULT
MENUITEM "Display detailed"
(
PRIVATE &nTrackAddress
&nTrackAddress=address.offset(track.address())
EXTension.DOMain &nTrackAddress
)
MENUITEM "Display domain struct"
(
PRIVATE &pTrackAddress
&pTrackAddress=track.address()
Var.View %Open (struct \\\0\\\\domain*)(&pTrackAddress)
)
MENUITEM "List intermediate page table"
(
PRIVATE &nTrackAddress &nVttbAddress
&nTrackAddress=address.offset(track.address())
&nVttbAddress=ext.vm.vttb(&nTrackAddress)
MMU.List IntermedPageTable 0x0 A:&nVttbAddress
)
MENUITEM "Dump domain entry"
(
PRIVATE &pTrackAddress
&pTrackAddress=track.address()
Data.dump &pTrackAddress /Long /DIALOG
)
)
ADD
MENU "ext.vcpu"
(
DEFAULT
MENUITEM "Display detailed"
(
PRIVATE &nTrackAddress
&nTrackAddress=address.offset(track.address())
EXTension.VCPU &nTrackAddress
)
MENUITEM "Display vcpu struct"
(
PRIVATE &pTrackAddress
&pTrackAddress=track.address()
Var.View %Open (struct \\\0\\\\vcpu*)(&pTrackAddress)
)
MENUITEM "Dump vcpu entry"
(
PRIVATE &pTrackAddress
&pTrackAddress=track.address()
Data.dump &pTrackAddress /Long /DIALOG
)
)
ADD
MENU "ext.cpup"
(
DEFAULT
MENUITEM "Display detailed"
(
PRIVATE &nTrackAddress
&nTrackAddress=address.offset(track.address())
EXTension.CPUPool &nTrackAddress
)
MENUITEM "Display cpupool struct"
(
PRIVATE &sType &pTrackAddress
&sType=EXT.TYPE("cpupool")
&pTrackAddress=TRACK.ADDRESS()
Var.View %Open (&(sType)*)(&pTrackAddress)
)
MENUITEM "Dump cpupool entry"
(
PRIVATE &pTrackAddress
&pTrackAddress=TRACK.ADDRESS()
Data.dump &pTrackAddress /Long /DIALOG
)
)
MENU "ext.dtb.phandle"
(
DEFAULT
MENUITEM "[:objects]Display as phandle"
(
PRIVATE &nAddress
&nAddress=ADDRESS.OFFSET(TRACK.ADDRESS())
TASK.DTB.PHANDLE &nAddress
)
)
MENU "ext.dtb.dump"
(
DEFAULT
MENUITEM "[:dump]Dump ENTRY"
(
PRIVATE &pAddress
&pAddress=TRACK.ADDRESS()
Data.dump &pAddress
)
)
)