__asm__("movl %%cr0, %0": "=r" (cr0)); __asm__("movl %%cr2, %0": "=r" (cr2)); __asm__("movl %%cr3, %0": "=r" (cr3)); /* This could fault if %cr4 does not exist */ __asm__("1: movl %%cr4, %0		\n" "2:				\n" ".section __ex_table,\"a\"	\n" ".long 1b,2b			\n" ".previous			\n" : "=r" (cr4): "0" (0)); 
cr0 = read_cr0(); cr2 = read_cr2(); cr3 = read_cr3(); if (current_cpu_data.x86 > 4) { cr4 = read_cr4(); } 
void show_regs(struct pt_regs * regs){	unsigned long cr0 = 0L, cr2 = 0L, cr3 = 0L, cr4 = 0L;	printk("\n");	printk("Pid: %d, comm: %20s\n", current->pid, current->comm);	printk("EIP: %04x:[<%08lx>] CPU: %d\n",0xffff & regs->xcs,regs->eip, smp_processor_id());	print_symbol("EIP is at %s\n", regs->eip);	if (user_mode(regs))		printk(" ESP: %04x:%08lx",0xffff & regs->xss,regs->esp);	printk(" EFLAGS: %08lx    %s  (%s)\n",	       regs->eflags, print_tainted(), system_utsname.release);	printk("EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n",		regs->eax,regs->ebx,regs->ecx,regs->edx);	printk("ESI: %08lx EDI: %08lx EBP: %08lx",		regs->esi, regs->edi, regs->ebp);	printk(" DS: %04x ES: %04x\n",		0xffff & regs->xds,0xffff & regs->xes);	__asm__("movl %%cr0, %0": "=r" (cr0));	__asm__("movl %%cr2, %0": "=r" (cr2));	__asm__("movl %%cr3, %0": "=r" (cr3));	/* This could fault if %cr4 does not exist */	__asm__("1: movl %%cr4, %0		\n"		"2:				\n"		".section __ex_table,\"a\"	\n"		".long 1b,2b			\n"		".previous			\n"		: "=r" (cr4): "0" (0));	printk("CR0: %08lx CR2: %08lx CR3: %08lx CR4: %08lx\n", cr0, cr2, cr3, cr4);	show_trace(NULL, &regs->esp);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4bb0d3ec3e5b1e9e2399cdc641b3b6521ac9cdaa/process.c/buggy/arch/i386/kernel/process.c