#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/module.h>
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;
}