; -------------------------------------------------------------------------------- ; @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 ) ) )