Release the check for maximum leaf in cpuid exception
This commit is contained in:
		
							parent
							
								
									bcb3396622
								
							
						
					
					
						commit
						d1edb0e218
					
				| @ -6,9 +6,7 @@ use std::rsgx_cpuidex; | ||||
| 
 | ||||
| pub const CPUID_OPCODE: u16 = 0xA20F; | ||||
| const CPUID_MIN_BASIC_LEAF: u32 = 0; | ||||
| const CPUID_MAX_BASIC_LEAF: u32 = 0x1F; | ||||
| const CPUID_MIN_EXTEND_LEAF: u32 = 0x8000_0000; | ||||
| const CPUID_MAX_EXTEND_LEAF: u32 = 0x8000_0008; | ||||
| const CPUID_MAX_SUBLEAF: u32 = u32::max_value(); | ||||
| 
 | ||||
| #[repr(C)] | ||||
| @ -146,23 +144,11 @@ impl CpuIdCache { | ||||
| impl CpuId { | ||||
|     pub fn new() -> CpuId { | ||||
|         let max_basic_leaf = match rsgx_cpuidex(CPUID_MIN_BASIC_LEAF as i32, 0) { | ||||
|             Ok(sgx_cpuinfo) => { | ||||
|                 if is_valid_cpuid_basic_leaf(sgx_cpuinfo[0] as u32) { | ||||
|                     sgx_cpuinfo[0] as u32 | ||||
|                 } else { | ||||
|                     panic!("invalid basic cpuid_level") | ||||
|                 } | ||||
|             } | ||||
|             Ok(sgx_cpuinfo) => sgx_cpuinfo[0] as u32, | ||||
|             _ => panic!("failed to call sgx_cpuidex"), | ||||
|         }; | ||||
|         let max_extend_leaf = match rsgx_cpuidex(CPUID_MIN_EXTEND_LEAF as i32, 0) { | ||||
|             Ok(sgx_cpuinfo) => { | ||||
|                 if is_valid_cpuid_extend_leaf(sgx_cpuinfo[0] as u32) { | ||||
|                     sgx_cpuinfo[0] as u32 | ||||
|                 } else { | ||||
|                     panic!("invalid extend cpuid_xlevel") | ||||
|                 } | ||||
|             } | ||||
|             Ok(sgx_cpuinfo) => sgx_cpuinfo[0] as u32, | ||||
|             _ => panic!("failed to call sgx_cpuidex"), | ||||
|         }; | ||||
|         let cpuid = CpuId { | ||||
| @ -227,14 +213,6 @@ lazy_static! { | ||||
|     static ref CPUID: CpuId = CpuId::new(); | ||||
| } | ||||
| 
 | ||||
| fn is_valid_cpuid_basic_leaf(leaf: u32) -> bool { | ||||
|     (CPUID_MIN_BASIC_LEAF..=CPUID_MAX_BASIC_LEAF).contains(&leaf) | ||||
| } | ||||
| 
 | ||||
| fn is_valid_cpuid_extend_leaf(leaf: u32) -> bool { | ||||
|     (CPUID_MIN_EXTEND_LEAF..=CPUID_MAX_EXTEND_LEAF).contains(&leaf) | ||||
| } | ||||
| 
 | ||||
| fn is_cpuid_leaf_has_subleaves(leaf: u32) -> bool { | ||||
|     const CPUID_LEAF_WITH_SUBLEAF: [u32; 11] = | ||||
|         [0x4, 0x7, 0xB, 0xD, 0xF, 0x10, 0x12, 0x14, 0x17, 0x18, 0x1F]; | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user