/* * Now we can look at each of the routines this calls, in increasing order of * complexity: do_hypercalls(), emulate_insn(), maybe_do_interrupt(), * deliver_trap() and demand_page(). After all those, we'll be ready to * examine the Switcher, and our philosophical understanding of the Host/Guest * duality will be complete. :*/ static void adjust_pge(void *on) { if (on) cr4_set_bits(X86_CR4_PGE); else cr4_clear_bits(X86_CR4_PGE); }
static void enable_TSC(void) { preempt_disable(); if (test_and_clear_thread_flag(TIF_NOTSC)) /* * Must flip the CPU state synchronously with * TIF_NOTSC in the current running context. */ cr4_clear_bits(X86_CR4_TSD); preempt_enable(); }
static void hard_enable_TSC(void) { cr4_clear_bits(X86_CR4_TSD); }
/* * We enabled the XSAVE hardware, but something went wrong and * we can not use it. Disable it. */ static void fpu__init_disable_system_xstate(void) { xfeatures_mask = 0; cr4_clear_bits(X86_CR4_OSXSAVE); fpu__xstate_clear_all_cpu_caps(); }