# # ChangeLog for trunk/src/VBox/VMM in vbox # # Generated by Trac 1.4.3.2 # Mar 7, 2025 8:38:38 PM Wed, 18 Feb 2009 10:42:49 GMT vboxsync [16887] * trunk/src/VBox/VMM/PGMMap.cpp (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: support hypervisor mappings in non- ... Wed, 18 Feb 2009 10:16:59 GMT vboxsync [16886] * trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp (modified) Missing break Wed, 18 Feb 2009 10:15:06 GMT vboxsync [16884] * trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: compile fix Wed, 18 Feb 2009 10:13:13 GMT vboxsync [16883] * trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates Wed, 18 Feb 2009 10:11:10 GMT vboxsync [16882] * trunk/src/VBox/VMM/PGMInternal.h (modified) * trunk/src/VBox/VMM/VMMAll/PGMAll.cpp (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: deal with missing PDPEs Wed, 18 Feb 2009 09:19:52 GMT vboxsync [16879] * trunk/src/VBox/VMM/PGMInternal.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY accidentally enabled Tue, 17 Feb 2009 17:00:43 GMT vboxsync [16866] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: rc fix Tue, 17 Feb 2009 16:52:24 GMT vboxsync [16865] * trunk/src/VBox/VMM/PGM.cpp (modified) * trunk/src/VBox/VMM/PGMInternal.h (modified) * trunk/src/VBox/VMM/VMMAll/PGMAll.cpp (modified) * trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates Tue, 17 Feb 2009 16:43:51 GMT vboxsync [16864] * trunk/src/VBox/VMM/PGMBth.h (modified) Missing CPUMSetHyperCR3 Tue, 17 Feb 2009 16:39:13 GMT vboxsync [16862] * trunk/src/VBox/VMM/VMM.cpp (modified) Assertion added Tue, 17 Feb 2009 16:37:45 GMT vboxsync [16861] * trunk/src/VBox/VMM/VMMTests.cpp (modified) More assertions Tue, 17 Feb 2009 16:24:38 GMT vboxsync [16860] * trunk/src/VBox/VMM/VMM.cpp (modified) Stricter assertions Tue, 17 Feb 2009 16:19:51 GMT vboxsync [16859] * trunk/src/VBox/VMM/PGM.cpp (modified) * trunk/src/VBox/VMM/PGMShw.h (modified) * trunk/src/VBox/VMM/VMM.cpp (modified) * trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) * trunk/src/VBox/VMM/VMMSwitcher.cpp (modified) * trunk/src/VBox/VMM/VMMSwitcher/32BitTo32Bit.asm (modified) * trunk/src/VBox/VMM/VMMSwitcher/32BitToPAE.asm (modified) * trunk/src/VBox/VMM/VMMSwitcher/AMD64To32Bit.asm (modified) * trunk/src/VBox/VMM/VMMSwitcher/AMD64ToPAE.asm (modified) * trunk/src/VBox/VMM/VMMSwitcher/AMD64andLegacy.mac (modified) * trunk/src/VBox/VMM/VMMSwitcher/PAETo32Bit.asm (modified) * trunk/src/VBox/VMM/VMMSwitcher/PAEToPAE.asm (modified) * trunk/src/VBox/VMM/VMMSwitcher/PAEand32Bit.mac (modified) * trunk/src/VBox/VMM/VMMSwitcher/VMMSwitcher.h (modified) * trunk/src/VBox/VMM/VMMSwitcher/VMMSwitcher.mac (modified) Load hypervisor CR3 from CPUM (instead of hardcoded fixups in the ... Tue, 17 Feb 2009 14:45:25 GMT vboxsync [16847] * trunk/src/VBox/VMM/VMMSwitcher.cpp (modified) * trunk/src/VBox/VMM/VMMSwitcher/VMMSwitcher.h (modified) * trunk/src/VBox/VMM/VMMSwitcher/VMMSwitcher.mac (modified) Removed unused FIX_HYPER_AMD64_CR3. Tue, 17 Feb 2009 13:57:19 GMT vboxsync [16843] * trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp (modified) Fixed breakage Tue, 17 Feb 2009 13:29:58 GMT vboxsync [16842] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: update cr3 in RC Tue, 17 Feb 2009 13:26:14 GMT vboxsync [16840] * trunk/src/VBox/VMM/PGMInternal.h (modified) * trunk/src/VBox/VMM/PGMMap.cpp (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates for raw mode Mon, 16 Feb 2009 17:01:02 GMT vboxsync [16801] * trunk/src/VBox/VMM/PGM.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: missing relocation Mon, 16 Feb 2009 16:42:17 GMT vboxsync [16800] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: SyncCR3 fixes Mon, 16 Feb 2009 16:28:24 GMT vboxsync [16799] * trunk/src/VBox/VMM/PGMBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: update Mon, 16 Feb 2009 15:42:39 GMT vboxsync [16798] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: deactivate hypervisor mappings in old ... Mon, 16 Feb 2009 14:43:20 GMT vboxsync [16797] * trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: new assertions Mon, 16 Feb 2009 14:42:12 GMT vboxsync [16796] * trunk/src/VBox/VMM/VMMAll/PGMAllMap.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: removed obsolete assertions Mon, 16 Feb 2009 14:40:47 GMT vboxsync [16794] * trunk/src/VBox/VMM/PGM.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: init pgm pool before changing the pgm mode Mon, 16 Feb 2009 14:36:25 GMT vboxsync [16793] * trunk/src/VBox/VMM/PGMBth.h (modified) Compile fix Mon, 16 Feb 2009 14:35:26 GMT vboxsync [16792] * trunk/src/VBox/VMM/PGMBth.h (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates for raw mode Mon, 16 Feb 2009 14:05:10 GMT vboxsync [16790] * trunk/src/VBox/VMM/VMMR0/VMMR0.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: paranoid check Mon, 16 Feb 2009 12:43:45 GMT vboxsync [16784] * trunk/src/VBox/VMM/VMMR0/VMMR0.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: paranoid check Mon, 16 Feb 2009 10:56:21 GMT vboxsync [16782] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: missing case Mon, 16 Feb 2009 10:42:32 GMT vboxsync [16781] * trunk/src/VBox/VMM/PGMBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: typo Mon, 16 Feb 2009 10:42:14 GMT vboxsync [16780] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: typo Sun, 15 Feb 2009 10:28:09 GMT vboxsync [16776] * trunk/src/VBox/VMM/VMMR0/CPUMR0.cpp (modified) operator precedence (gcc found this bug) Fri, 13 Feb 2009 10:01:47 GMT vboxsync [16733] * trunk/src/VBox/VMM/VMMAll/PGMAll.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: bugfix Fri, 13 Feb 2009 09:49:01 GMT vboxsync [16732] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) More checks Fri, 13 Feb 2009 09:44:18 GMT vboxsync [16731] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) Logging changes Fri, 13 Feb 2009 09:36:11 GMT vboxsync [16730] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) Logging changes Wed, 11 Feb 2009 16:38:48 GMT vboxsync [16683] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) More logging Wed, 11 Feb 2009 16:33:04 GMT vboxsync [16680] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) More logging Wed, 11 Feb 2009 16:32:06 GMT vboxsync [16679] * trunk/src/VBox/VMM/VMMAll/PGMAll.cpp (modified) * trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: PGMGetHyperCR3 fix for EPT Wed, 11 Feb 2009 16:15:54 GMT vboxsync [16675] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) Logging change Wed, 11 Feb 2009 15:35:02 GMT vboxsync [16673] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) Argh Wed, 11 Feb 2009 15:34:12 GMT vboxsync [16672] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates Wed, 11 Feb 2009 13:59:16 GMT vboxsync [16667] * trunk/src/VBox/VMM/CPUM.cpp (modified) Added todo Wed, 11 Feb 2009 13:58:39 GMT vboxsync [16666] * trunk/src/VBox/VMM/CPUM.cpp (modified) Wrong index Wed, 11 Feb 2009 13:57:23 GMT vboxsync [16665] * trunk/src/VBox/VMM/CPUM.cpp (modified) Ignore CPU stepping when restoring a saved state. Wed, 11 Feb 2009 13:17:20 GMT vboxsync [16663] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates for 32 bits root pd ... Wed, 11 Feb 2009 12:56:59 GMT vboxsync [16661] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates Wed, 11 Feb 2009 12:37:49 GMT vboxsync [16660] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: pdpt invalidation fixes Wed, 11 Feb 2009 12:24:21 GMT vboxsync [16659] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) More logging Wed, 11 Feb 2009 12:22:03 GMT vboxsync [16658] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: update Wed, 11 Feb 2009 11:57:14 GMT vboxsync [16657] * trunk/src/VBox/VMM/PGMPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: Allocate all pages in low (below 4 GB) ... Wed, 11 Feb 2009 10:00:43 GMT vboxsync [16654] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) Symbolic PGMPOOLKIND logging Wed, 11 Feb 2009 08:46:06 GMT vboxsync [16652] * trunk/src/VBox/VMM/EM.cpp (modified) More logging Tue, 10 Feb 2009 16:12:07 GMT vboxsync [16645] * trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp (modified) Adjusted assertion Tue, 10 Feb 2009 15:58:42 GMT vboxsync [16644] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) Same for PGMPOOLKIND_PAE_PDPT_PHYS Tue, 10 Feb 2009 15:57:02 GMT vboxsync [16643] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) Missing PGMPOOLKIND_PAE_PD_PHYS case Tue, 10 Feb 2009 15:50:04 GMT vboxsync [16641] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: PAE guest mode invalidation changes Tue, 10 Feb 2009 15:26:01 GMT vboxsync [16636] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates Tue, 10 Feb 2009 14:55:36 GMT vboxsync [16635] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: more logging Tue, 10 Feb 2009 14:54:02 GMT vboxsync [16634] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: fixed invalidation of pae/32 bit pds Tue, 10 Feb 2009 13:24:12 GMT vboxsync [16632] * trunk/src/VBox/VMM/EM.cpp (modified) Removed wrong assertion (IF can be cleared in a duplicate function). Tue, 10 Feb 2009 13:07:15 GMT vboxsync [16628] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: corrected write handler for pae/32 bits Tue, 10 Feb 2009 12:41:48 GMT vboxsync [16626] * trunk/src/VBox/VMM/PGMInternal.h (modified) * trunk/src/VBox/VMM/VMMAll/PGMAll.cpp (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: Deal with split PDs in pae/32 bit case. Tue, 10 Feb 2009 12:32:00 GMT vboxsync [16625] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: update Tue, 10 Feb 2009 12:24:56 GMT vboxsync [16624] * trunk/src/VBox/VMM/VMMAll/PGMAll.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: pgmShwSyncPaePDPtr fix for pae shadow ... Tue, 10 Feb 2009 10:51:42 GMT vboxsync [16619] * trunk/src/VBox/VMM/PGMGst.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: call right MapCR3 Mon, 09 Feb 2009 16:42:08 GMT vboxsync [16604] * trunk/src/VBox/VMM/PGMInternal.h (modified) Fixed pgmShwGetPaePDPtr Mon, 09 Feb 2009 16:41:00 GMT vboxsync [16603] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates Mon, 09 Feb 2009 16:12:59 GMT vboxsync [16599] * trunk/src/VBox/VMM/VMMAll/PGMAll.cpp (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates Mon, 09 Feb 2009 15:18:05 GMT vboxsync [16595] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) More missing cases Mon, 09 Feb 2009 15:10:27 GMT vboxsync [16594] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) Missing cases for PGMPOOLKIND_PAE_PDPT_FOR_32BIT Mon, 09 Feb 2009 15:07:28 GMT vboxsync [16593] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: inverted check Mon, 09 Feb 2009 14:58:51 GMT vboxsync [16592] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) Setting the accessed bit of PAE PDPTs causes an VT-x invalid guest ... Mon, 09 Feb 2009 14:19:53 GMT vboxsync [16591] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) Same here Mon, 09 Feb 2009 14:18:54 GMT vboxsync [16590] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) rw/us are reserved for PAE pdpte's. Mon, 09 Feb 2009 13:33:10 GMT vboxsync [16584] * trunk/src/VBox/VMM/VM.cpp (modified) VMM: message typo fix Mon, 09 Feb 2009 12:50:45 GMT vboxsync [16582] * trunk/src/VBox/VMM/PGMBth.h (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: updates Mon, 09 Feb 2009 12:07:16 GMT vboxsync [16579] * trunk/src/VBox/VMM/PGMBth.h (modified) * trunk/src/VBox/VMM/VMMAll/PGMAll.cpp (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: More updates Mon, 09 Feb 2009 10:28:03 GMT vboxsync [16575] * trunk/src/VBox/VMM/PGMBth.h (modified) * trunk/src/VBox/VMM/VMMR0/GVMMR0.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: update Mon, 09 Feb 2009 08:37:50 GMT vboxsync [16567] * trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp (modified) Disable MMIO optimization for non-VT-x/AMD-V modes completely. Fri, 06 Feb 2009 15:41:53 GMT vboxsync [16552] * trunk/src/VBox/VMM/PATM/CSAM.cpp (modified) Ignore patch writes that don't change anything Wed, 04 Feb 2009 10:50:15 GMT vboxsync [16506] * trunk/src/VBox/VMM/SELM.cpp (modified) Adjusted assertion slightly Tue, 03 Feb 2009 10:34:35 GMT vboxsync [16481] * trunk/src/VBox/VMM/SELM.cpp (modified) spaces Tue, 03 Feb 2009 10:07:55 GMT vboxsync [16478] * trunk/src/VBox/VMM/TRPM.cpp (modified) Disable usage of the 0x80 idt gate on 32 bits Windows too. (raw mode ... Mon, 02 Feb 2009 21:07:50 GMT vboxsync [16476] * trunk/src/VBox/VMM/SELM.cpp (modified) VMM/SELM.cpp: privately disabled two assertions Mon, 02 Feb 2009 15:25:18 GMT vboxsync [16465] * trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllShw.h (modified) Got rid of the aliased hack that directly manipulates shadow page ... Mon, 02 Feb 2009 13:49:06 GMT vboxsync [16463] * trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp (modified) Backed out 42322 completely Mon, 02 Feb 2009 13:36:01 GMT vboxsync [16462] * trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp (modified) Triggers assertions; disable r42332 for now Mon, 02 Feb 2009 13:07:30 GMT vboxsync [16458] * trunk/src/VBox/VMM/VMMAll/IOMAllMMIO.cpp (modified) Disabled attempt to sync aliased pages the proper way. Mon, 02 Feb 2009 13:05:07 GMT vboxsync [16457] * trunk/src/VBox/VMM/VMMAll/PGMAllHandler.cpp (modified) Clear HCPhys of a reset MMIO range. Fri, 30 Jan 2009 16:50:00 GMT vboxsync [16429] * trunk/src/VBox/VMM/PGMInternal.h (modified) Oops Fri, 30 Jan 2009 16:49:19 GMT vboxsync [16428] * trunk/src/VBox/VMM/PGM.cpp (modified) * trunk/src/VBox/VMM/PGMInternal.h (modified) * trunk/src/VBox/VMM/VMMAll/PGMAll.cpp (modified) * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: cleaned up Fri, 30 Jan 2009 16:08:20 GMT vboxsync [16427] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) More Fri, 30 Jan 2009 16:06:51 GMT vboxsync [16426] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: more missing cases Fri, 30 Jan 2009 16:04:24 GMT vboxsync [16425] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: missing cases for pgm pool Fri, 30 Jan 2009 15:51:58 GMT vboxsync [16424] * trunk/src/VBox/VMM/VMMAll/PGMAllBth.h (modified) VBOX_WITH_PGMPOOL_PAGING_ONLY: fixed PrefetchPage for PAE shadow paging Fri, 30 Jan 2009 15:23:46 GMT vboxsync [16423] * trunk/src/VBox/VMM/VMMAll/PGMAllPool.cpp (modified) More updates Fri, 30 Jan 2009 15:21:17 GMT vboxsync [16422] * trunk/src/VBox/VMM/HWACCM.cpp (modified) * trunk/src/VBox/VMM/PGM.cpp (modified) Just reinit real mode during hwaccm init Fri, 30 Jan 2009 15:08:59 GMT vboxsync [16421] * trunk/src/VBox/VMM/PGM.cpp (modified) Postpone changing the paging mode to real mode until ... Fri, 30 Jan 2009 15:01:16 GMT vboxsync [16420] * trunk/src/VBox/VMM/PGMBth.h (modified) Missed this one