#include #include #include static int ev1ls_cr0() { //ev1l's bypass cr0 trick(); asm volatile("push %eax\n\t" "mov %cr0,%eax\n\t" "and $0x0FFFEFFFF,%eax\n\t" "mov %eax, %cr0\n\t" "pop %eax"); return 0; } void readcr0test() { unsigned long cr0; cr0 = read_cr0(); printk("\n%lu",cr0); printk("\n%X",cr0); } int init_module (void) { readcr0test(); ev1ls_cr0(); readcr0test(); return 0; } void cleanup_module (void) { return 0; }