equation314 / equation314/RVM-Tutorial

cr_is_valid是否存在问题?

Abierto
#6 1 comentario 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Rust
Estrellas
161
Forks
36
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

```Rust
// Check control registers are in a VMX-friendly state. (SDM Vol. 3C, Appendix A.7, A.8) /
macro_rules! cr_is_valid {
($value: expr, $crx: ident) => {{
use Msr::*;
let value = $value;
let fixed0 = concat_idents!(IA32_VMX_, $crx, _FIXED0).read();
let fixed1 = concat_idents!(IA32_VMX_, $crx, _FIXED1).read();
(!fixed0 | value != 0) && (fixed1 | !value != 0)
}};
}
```

函数最终返回` (!fixed0 | value != 0) && (fixed1 | !value != 0)`,
但是根据手册,FIXED0应该是所在位为1的,寄存器所在位也为1;
FIXED1应该是所在位为0的,寄存器所在位也为0,
判断结果应该写为(value & fixed0 == fixed0) && (value & !fixed1 == 0)才对吧。
不过这样就无法通过检查了。
我看其他开源项目是,先有一个调整寄存器值的操作。

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza con la macro cr_is_valid! mostrada en el issue y compara su predicado con SDM Vol. 3C, Apéndices A.7 y A.8. Rastrea los valores suministrados para FIXED0 y FIXED1 y, después, compara la comprobación con el enfoque de ajuste de registros mencionado en el issue. Se considera terminado cuando se explique si el predicado es correcto y se identifique el cambio necesario si no lo es.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
rust
Área
operating-systems
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.