66 #else
67 #include <sys/xpv_support.h>
68 #endif
69
70 /*
71 * some globals for patching the result of cpuid
72 * to solve problems w/ creative cpu vendors
73 */
74
75 extern uint32_t cpuid_feature_ecx_include;
76 extern uint32_t cpuid_feature_ecx_exclude;
77 extern uint32_t cpuid_feature_edx_include;
78 extern uint32_t cpuid_feature_edx_exclude;
79
80 /*
81 * Set console mode
82 */
83 static void
84 set_console_mode(uint8_t val)
85 {
86 struct bop_regs rp = {0};
87
88 rp.eax.byte.ah = 0x0;
89 rp.eax.byte.al = val;
90 rp.ebx.word.bx = 0x0;
91
92 BOP_DOINT(bootops, 0x10, &rp);
93 }
94
95
96 /*
97 * Setup routine called right before main(). Interposing this function
98 * before main() allows us to call it in a machine-independent fashion.
99 */
100 void
101 mlsetup(struct regs *rp)
102 {
103 u_longlong_t prop_value;
104 extern struct classfuncs sys_classfuncs;
105 extern disp_t cpu0_disp;
106 extern char t0stack[];
|
66 #else
67 #include <sys/xpv_support.h>
68 #endif
69
70 /*
71 * some globals for patching the result of cpuid
72 * to solve problems w/ creative cpu vendors
73 */
74
75 extern uint32_t cpuid_feature_ecx_include;
76 extern uint32_t cpuid_feature_ecx_exclude;
77 extern uint32_t cpuid_feature_edx_include;
78 extern uint32_t cpuid_feature_edx_exclude;
79
80 /*
81 * Set console mode
82 */
83 static void
84 set_console_mode(uint8_t val)
85 {
86 struct bop_regs rp = {{0}};
87
88 rp.eax.byte.ah = 0x0;
89 rp.eax.byte.al = val;
90 rp.ebx.word.bx = 0x0;
91
92 BOP_DOINT(bootops, 0x10, &rp);
93 }
94
95
96 /*
97 * Setup routine called right before main(). Interposing this function
98 * before main() allows us to call it in a machine-independent fashion.
99 */
100 void
101 mlsetup(struct regs *rp)
102 {
103 u_longlong_t prop_value;
104 extern struct classfuncs sys_classfuncs;
105 extern disp_t cpu0_disp;
106 extern char t0stack[];
|