Leopard Patch Summary * Additional segment/section hack o header modification (ncmds, size) o load command addition (max vm_prot) * Built-in decryption o dsmos_page_transform_hook (ret) o dsmos_page_transform (+ new func) o karma/key addition o karma integration along w/ commpage_stuff2 calls * SSE3 emulation o enable read-write on commpage (remove write-only setting) o append vm_protect call to commpage_allocate o emulator blob addition o commpage_stuff2 for each emulator blob o patch IDT to replace gate ffe00050 (t_invop) * HPET emulation o hpet_init o hpet_get_info o ml_hpet_cfg (machine_nap_policy, ret) o HPETInterrupt (ret 1) o hpet_save o hpet_restore o rdHPET (see stx code) o db_hpet o db_display_hpet o lapic_interrupt o rtc_sleep_wakeup o pmDispatch? (power_management_init) * AMD support o change 0xfb interrupt to U_INTR_GATE o patch gate at ffe01680 to emulate cpuid * EFI code fixes o remove EFI-specific FSB code o replace tsc_init with stx auto-fsb o remove EFI initialization code * No-NX support o remove CPUID_EXTFEATURE_XD, MSR_IA32_EFER_NXE MSR usage o hardcode nx_enabled to zero * Miscellaneous o ensure cpuid_cores_per_package > 0 (cpuid_set_info) o force legacy mode, no 64-bit o remove hpet_init, power_management_init calls o remove "commpage no match for last" panic o reboot fix (915 boards?) o /efi -> /rom (IORegistryEntry::fromPath) * Leopard-specific o vmx initialization workaround (vmx_get_specs, MSRs) o remove "no linesize" panic o fix L2 cache size and zero size L1I o remove "Unsupported CPU" panic in cpuid_set_info