#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;
}