show_regs(regs); 
__show_regs(regs); 
asmlinkage int arm_syscall(int no, struct pt_regs *regs){	struct thread_info *thread = current_thread_info();	siginfo_t info;	if ((no >> 16) != 0x9f)		return bad_syscall(no, regs);	switch (no & 0xffff) {	case 0: /* branch through 0 */		info.si_signo = SIGSEGV;		info.si_errno = 0;		info.si_code  = SEGV_MAPERR;		info.si_addr  = NULL;		notify_die("branch through zero", regs, &info, 0, 0);		return 0;	case NR(breakpoint): /* SWI BREAK_POINT */		regs->ARM_pc -= thumb_mode(regs) ? 2 : 4;		ptrace_break(current, regs);		return regs->ARM_r0;	/*	 * Flush a region from virtual address 'r0' to virtual address 'r1'	 * _exclusive_.  There is no alignment requirement on either address;	 * user space does not need to know the hardware cache layout.	 *	 * r2 contains flags.  It should ALWAYS be passed as ZERO until it	 * is defined to be something else.  For now we ignore it, but may	 * the fires of hell burn in your belly if you break this rule. ;)	 *	 * (at a later date, we may want to allow this call to not flush	 * various aspects of the cache.  Passing '0' will guarantee that	 * everything necessary gets flushed to maintain consistency in	 * the specified region).	 */	case NR(cacheflush):		do_cache_op(regs->ARM_r0, regs->ARM_r1, regs->ARM_r2);		return 0;	case NR(usr26):		if (!(elf_hwcap & HWCAP_26BIT))			break;		regs->ARM_cpsr &= ~MODE32_BIT;		return regs->ARM_r0;	case NR(usr32):		if (!(elf_hwcap & HWCAP_26BIT))			break;		regs->ARM_cpsr |= MODE32_BIT;		return regs->ARM_r0;	case NR(set_tls):		thread->tp_value = regs->ARM_r0;		/*		 * Our user accessible TLS ptr is located at 0xffff0ffc.		 * On SMP read access to this address must raise a fault		 * and be emulated from the data abort handler.		 * m		 */		*((unsigned long *)0xffff0ffc) = thread->tp_value;		return 0;	default:		/* Calls 9f00xx..9f07ff are defined to return -ENOSYS		   if not implemented, rather than raising SIGILL.  This		   way the calling program can gracefully determine whether		   a feature is supported.  */		if (no <= 0x7ff)			return -ENOSYS;		break;	}#ifdef CONFIG_DEBUG_USER	/*	 * experience shows that these seem to indicate that	 * something catastrophic has happened	 */	if (user_debug & UDBG_SYSCALL) {		printk("[%d] %s: arm syscall %d\n",		       current->pid, current->comm, no);		dump_instr(regs);		if (user_mode(regs)) {			show_regs(regs);			c_backtrace(regs->ARM_fp, processor_mode(regs));		}	}#endif	info.si_signo = SIGILL;	info.si_errno = 0;	info.si_code  = ILL_ILLTRP;	info.si_addr  = (void __user *)instruction_pointer(regs) -			 (thumb_mode(regs) ? 2 : 4);	notify_die("Oops - bad syscall(2)", regs, &info, no, 0);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/652a12ef98d16ccd1ee5cdf2c832ce5411ed3262/traps.c/buggy/arch/arm/kernel/traps.c