;@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." "KVM" 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="KVM" TASK.RESet IF (&nVariant==32.) ( PRINTF %ERROR "%s: No support for %ubit, please contact support@lauterbach.com." "KVM" &nVariant ) ELSE IF (&nVariant==64.) ( GOSUB extension_64bit "&sParameters" "&sOptionAccess" IF !STRing.Compare("&sArguments","*MENU=NONE*") GOSUB menu_64bit "&sMachineName" "" GOSUB autoload_64bit "" ) ) ELSE IF (&bExtLoad) ( PRIVATE &sMachineName &sInfix &sOptionName &sOptionMachine &sInfix="" &sMachineName="KVM" 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.) ( PRINTF %ERROR "%s: No support for %ubit, please contact support@lauterbach.com." "KVM" &nVariant ) ELSE IF (&nVariant==64.) ( GOSUB extension_64bit "&sParameters" "&sOptionAccess &sOptionAccessMisc &sOptionName &sOptionMachine" IF !STRing.Compare("&sArguments","*MENU=NONE*") GOSUB menu_64bit "&sMachineName" "&sInfix" GOSUB autoload_64bit "&sOptionMachine" ) ) ELSE IF (&bCleanup) ( PRIVATE &sMachineName &sOptionMachine &sMachineName="KVM" IF ("&sName"!="") ( &sMachineName="&(sName)" ) IF ("&sMachine"!="") ( &sOptionMachine="/MACHINE &sMachine" ) GOSUB menu_delete "&sMachineName" GOSUB autoload_delete "&sOptionMachine" ) ENDDO extension_64bit: ; (options) ( PARAMETERS &sParameters &sOptions EXTension.LOAD &sParameters &sOptions ( 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR0NDIDkuNS4w AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAfoAAAABgAAAA0AAABOAAAn0gAAB+gAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAATl9 S1ZNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAIAAAAF9fcGVyX2NwdV9vZmZzZXQAAAAAdmNwdXNfb25fY3B1AAAAAHBl cl9jcHVfX3ZjcHVzX29uX2NwdQAAAGt2bV9ob3N0X2RhdGEAAAB2bV9saXN0AHN0cnVjdCBrdm1f dmNwdQAua3ZtAAAAAC52Y3B1X2lkAAAAAC5jcHUAAAAALmFyY2gAAAAubW9kZQAAAHN0cnVjdCBr dm1fdmNwdV9hcmNoAAAAAHN0cnVjdCBrdm1fYXJjaAAucGdkAAAAAC5wZ2RfcGh5cwAAAC5tbXUA AAAAc3RydWN0IGt2bV9zMl9tbXUAAABzdHJ1Y3Qga3ZtAAAudmNwdXMAAC5jcmVhdGVkX3ZjcHVz AAAudm1fbGlzdAAAAABnZXRDdXJyZW50VmNwdUlkKCkAAGdldE1hY2hpbmVMaXN0AABtYWNoaW5l WyVkXSA9ICUxNngAAFVOS05PV04gVk0gJTE2eAAhIXJhbiBvdXQgb2Yga3ZtIGlkcyEAAABnZXRD dXJyZW50TWFjaGluZUlkKCkAAABIRAAARVhULlZNICV4AAAARVhULlZNAAAlMTZ4AAAAACUyZC4A AAAAJWQAACglZCkuAAAARGF0YS5kdW1wICV4AAAAAEtWTSBzeW1ib2xzIG5vdCBmb3VuZCEKAHJl Z2lzdGVyczoKAFZDUFUgJWQgKENQVSAlZCkAAAAAbWFnaWMgICAgICAgICAgICAAAABpZCAAdmNw dXMgICAgICAAdHRiICAgICAgICAgICAgICAAAABfX1JUT1NfS1ZNX19FWFRfVk0AAHZjcHUAAAAA a3ZtIGlkAAB2Y3B1IGlkAF9fUlRPU19LVk1fX0VYVF9WQ1BVAAAAAE1URCBWZXJzaW9uICAlcyAg JXMgICUyZC4lMmQuJTRkIChCdWlsZCAlcykKCgAAAHZjcHVzICAgICAgICAgICAgJTE2eCAgICAg ICAgICAgIAAAAGNwdSBvZmZzZXRzICAgICAgJTE2eCAgJTh4ICAAAAAAVEVTVEtWTQBhcmd1bWVu dCAgICAgICAgIHZhbHVlICAgICBjb250ZW50ICAgc3ltYm9sAEVYVC5QR0RJUgAAAF9fUlRPU19N WVJUT1NfX0ZVTkMAZ2V0VmNwdUNvbnRleHQgJTE2eABOUwAASFNQUgAAAABIQ1IAc3RydWN0IGt2 bV9ob3N0X2RhdGEuaG9zdF9jdHh0Ll9faHlwX3J1bm5pbmdfdmNwdQAAAHN0cnVjdCBrdm1faG9z dF9kYXRhLmhvc3RfY3R4dC5yZWdzLnJlZ3MAAAAAWDAAAFgxAABYMgAAWDMAAFg0AABYNQAAWDYA AFg3AABYOAAAWDkAAFgxMABYMTEAWDEyAFgxMwBYMTQAWDE1AFgxNgBYMTcAWDE4AFgxOQBYMjAA WDIxAFgyMgBYMjMAWDI0AFgyNQBYMjYAWDI3AFgyOABYMjkAUEMAAENQU1IAAAAAc3RydWN0IGt2 bV92Y3B1X2FyY2guY3R4dC5ncF9yZWdzLnJlZ3MAAHN0cnVjdCBrdm1fdmNwdV9hcmNoLmN0eHQu cmVncwAAWDMwAHN0cnVjdCB1c2VyX3B0X3JlZ3MALnNwAFNQAAAucGMALnBzdGF0ZQBTQ1RMUl9F TDEAAAB2Y3B1X3N5c3JlZwBUVEJSMF9FTDEAAABUVEJSMV9FTDEAAABUQ1JfRUwxAHN0cnVjdCBr dm1fdmNwdV9hcmNoLmhjcl9lbDIAAAAAVlRUQlJfRUwyAAAAc3RydWN0IGt2bV92Y3B1X2FyY2gu Y3R4dC5zeXNfcmVncwAAc3RydWN0IHVzZXJfcHRfcmVncy5zcAAAc3RydWN0IHVzZXJfcHRfcmVn cy5wYwAAc3RydWN0IHVzZXJfcHRfcmVncy5wc3RhdGUAAHN0cnVjdCBrdm1fcmVncy5zcF9lbDEA AHN0cnVjdCBrdm1fcmVncy5lbHJfZWwxAHN0cnVjdCBrdm1fcmVncy5zcHNyAAAAAHgwAAB4MQAA eDIAAHgzAAB4NAAAeDUAAHg2AAB4NwAAeDgAAHg5AAB4MTAAeDExAHgxMgB4MTMAeDE0AHgxNQB4 MTYAeDE3AHgxOAB4MTkAeDIwAHgyMQB4MjIAeDIzAHgyNAB4MjUAeDI2AHgyNwB4MjgAeDMwAGNw c3IAAAAAc3Bzcl9lbDEAAAAAc3Bzcl9zdmMAAAAAc3Bzcl9hYnQAAAAAc3Bzcl91bmQAAAAAc3Bz cl9pcnEAAAAAc3Bzcl9maXEAAAAAc2N0bF9ucwB0dGJyMF9ucwAAAAB0dGJyMV9ucwAAAAB0Y3Jf bnMAAGhjcgB2dHRicgAAAGFybTY0AERBVEEAAAADAFAAAAAEADQAABKkAAAAAwBQAAAABAA0AAAR oAAAMLgAADC4AAAwuAAAMVgAAA7YAAAxIAAAMTQAADE4AAAxRAAAAAAAAAADAFAAAAAEAHwAABQ4 AAAAAwBQAAAABAB8AAAUNAAAMZQAADGUAAAxlAAAMYQAABQ8AAAxIAAAMXQAADF8AAAvdAAAMUQA AAAAAAAAAQA8AAAAADIYAAAVOAAAMhAAADIQAAAyDAAAMgwAABUEAAAyRAAAAAMAAAADAAAAAAAA MlAAABZYAAA0/AAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1AAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1 BAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1CAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1DAAAAAAAAAAA AAAAAAAAAAgAAAAAAAA1EAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1FAAAAAAAAAAAAAAAAAAAAAgA AAAAAAA1GAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1HAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1IAAA AAAAAAAAAAAAAAAAAAgAAAAAAAA1JAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1KAAAAAAAAAAAAAAA AAAAAAgAAAAAAAA1LAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1MAAAAAAAAAAAAAAAAAAAAAgAAAAA AAA1NAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1OAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1PAAAAAAA AAAAAAAAAAAAAAgAAAAAAAA1QAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1RAAAAAAAAAAAAAAAAAAA AAgAAAAAAAA1SAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1TAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1 UAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1VAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1WAAAAAAAAAAA AAAAAAAAAAgAAAAAAAA1XAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1YAAAAAAAAAAAAAAAAAAAAAgA AAAAAAA1ZAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1aAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1bAAA AAAAAAAAAAAAAAAAAAgAAAAAAAA1bAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1cAAAAAAAAAAAAAAA AAAAAAgAAAAAAAA0fAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA0lAAAAAAAAAAAAAAAAAAAAAgAAAAA AAA1dAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA0xAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA03AAAAAAA AAAAAAAAAAAAAAgAAAAAAAA1fAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1iAAAAAAAAAAAAAAAAAAA AAgAAAAAAAA1lAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1oAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1 rAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1uAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA1xAAAAAAAAAAA AAAAAAAAAAgAAAAAAAA1zAAAAAAAAAAAAAAAAAAAAAgAAAAAAAA12AAAAAAAAAAAAAAAAAAAAAgA AAAAAAA15AAAAAAAAAAAAAAAAAAAAAgAAAAAAAA17AAAAAAAAAAAAAAAAAAAAAgAAAAAAAA18AAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyDAAAMhQAADX4AAAA AP//////////////////////////VDMyRQ== ) RETURN ) menu_64bit: ;(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: Menu File for TRACE32 KVM Awareness ; @Description: - ; @Keywords: Linux KVM menu awareness ; @Author: AME DIE KJM ; @Copyright: (C) 1989-2021 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Id: kvm.m 8403 2022-12-12 13:50:51Z amerkle $ NAME "EXT.&sMenuName" IF !MENU.EXIST("EXT.&sMenuName") ( add menu ( popup "&KVM" ( default menuitem "[:objects]Display &VMs" "EXT.&(sInfix)VM" ) ) add menu "ext.&(sInfix)vm" ( default menuitem "[:objects]Display detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) EXT.&(sInfix)VM &nAddress ) menuitem "[:var]Display kvm struct" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) IF ARMARCHVERSION()<0x81 Var.View %Open (struct kvm*)(NSD:0x0::&nAddress) ELSE Var.View %Open (struct kvm*)(H:0x0::&nAddress) ) menuitem "[:dump]Dump kvm entry" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) Data.dump H:0x0::&nAddress /Long /DIALOG IF ARMARCHVERSION()<0x81 Data.dump NS:0x0::&nAddress /Long /DIALOG ELSE Data.dump H:0x0::&nAddress /Long /DIALOG ) ) add menu "ext.&(sInfix)vcpu" ( default menuitem "[:objects]Display detailed" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) EXT.&(sInfix)VCPU &nAddress ) menuitem "[:var]Display vcpu struct" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) Var.View %Open (struct vcpu_vmx*)(H:0x0::&nAddress) ) menuitem "[:dump]Dump vcpu entry" ( PRIVATE &nAddress &nAddress=address.offset(track.address()) IF ARMARCHVERSION()<0x81 Data.dump NS:0x0::&nAddress /Long /DIALOG ELSE Data.dump H:0x0::&nAddress /Long /DIALOG ) ) ) ) ) PMACRO.UNLOCK RETURN ) autoload_64bit: ;(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 )