mirror of
https://github.com/mii443/nel_os.git
synced 2025-08-22 16:15:38 +00:00
add more cpuid
This commit is contained in:
@ -9,6 +9,21 @@ pub fn handle_cpuid_exit(vcpu: &mut VCpu) {
|
|||||||
let vendor: &[u8; 12] = b"NelogikaNelo";
|
let vendor: &[u8; 12] = b"NelogikaNelo";
|
||||||
let vendor = unsafe { core::mem::transmute::<&[u8; 12], &[u32; 3]>(vendor) };
|
let vendor = unsafe { core::mem::transmute::<&[u8; 12], &[u32; 3]>(vendor) };
|
||||||
match VmxLeaf::from(regs.rax) {
|
match VmxLeaf::from(regs.rax) {
|
||||||
|
VmxLeaf::EXTENDED_PROCESSOR_SIGNATURE => {
|
||||||
|
info!("CPUID extended processor signature");
|
||||||
|
let signature = cpuid!(0x80000001, 0);
|
||||||
|
regs.rax = 0x00000000;
|
||||||
|
regs.rbx = 0x00000000;
|
||||||
|
regs.rcx = signature.ecx as u64;
|
||||||
|
regs.rdx = signature.edx as u64;
|
||||||
|
}
|
||||||
|
VmxLeaf::EXTENDED_FUNCTION => {
|
||||||
|
info!("CPUID extended function");
|
||||||
|
regs.rax = 0x80000000 + 1;
|
||||||
|
regs.rbx = 0x00000000;
|
||||||
|
regs.rcx = 0x00000000;
|
||||||
|
regs.rdx = 0x00000000;
|
||||||
|
}
|
||||||
VmxLeaf::MAXIMUM_INPUT => {
|
VmxLeaf::MAXIMUM_INPUT => {
|
||||||
info!("CPUID max input");
|
info!("CPUID max input");
|
||||||
regs.rax = 0x20;
|
regs.rax = 0x20;
|
||||||
|
Reference in New Issue
Block a user