return 0; 
void ia32_setup_frame(int sig, struct k_sigaction *ka,			compat_sigset_t *set, struct pt_regs * regs){	struct sigframe __user *frame;	int err = 0;	frame = get_sigframe(ka, regs, sizeof(*frame));	if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))		goto give_sigsegv;	{		struct exec_domain *ed = current_thread_info()->exec_domain;		err |= __put_user((ed		           && ed->signal_invmap		           && sig < 32		           ? ed->signal_invmap[sig]		           : sig),		          &frame->sig);	}	if (err)		goto give_sigsegv;	err |= ia32_setup_sigcontext(&frame->sc, &frame->fpstate, regs,					set->sig[0]);	if (err)		goto give_sigsegv;	if (_COMPAT_NSIG_WORDS > 1) {		err |= __copy_to_user(frame->extramask, &set->sig[1],				      sizeof(frame->extramask));	}	if (err)		goto give_sigsegv;	/* Return stub is in 32bit vsyscall page */	{ 		void __user *restorer = VSYSCALL32_SIGRETURN; 		if (ka->sa.sa_flags & SA_RESTORER)			restorer = ka->sa.sa_restorer;       		err |= __put_user(ptr_to_compat(restorer), &frame->pretcode);	}	/* These are actually not used anymore, but left because some 	   gdb versions depend on them as a marker. */	{ 		/* copy_to_user optimizes that into a single 8 byte store */		static const struct { 			u16 poplmovl;			u32 val;			u16 int80;    			u16 pad; 		} __attribute__((packed)) code = { 			0xb858,		 /* popl %eax ; movl $...,%eax */			__NR_ia32_sigreturn,   			0x80cd,		/* int $0x80 */			0,		}; 		err |= __copy_to_user(frame->retcode, &code, 8); 	}	if (err)		goto give_sigsegv;	/* Set up registers for signal handler */	regs->rsp = (unsigned long) frame;	regs->rip = (unsigned long) ka->sa.sa_handler;	asm volatile("movl %0,%%ds" :: "r" (__USER32_DS)); 	asm volatile("movl %0,%%es" :: "r" (__USER32_DS)); 	regs->cs = __USER32_CS; 	regs->ss = __USER32_DS; 	set_fs(USER_DS);	if (regs->eflags & TF_MASK) {		if (current->ptrace & PT_PTRACED) {			ptrace_notify(SIGTRAP);		} else {			regs->eflags &= ~TF_MASK;		}	}#if DEBUG_SIG	printk("SIG deliver (%s:%d): sp=%p pc=%p ra=%p\n",		current->comm, current->pid, frame, regs->rip, frame->pretcode);#endif	return;give_sigsegv:	force_sigsegv(sig, current);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/0928d6ef7f204979749fb241a90a04a35dae133a/ia32_signal.c/clean/arch/x86_64/ia32/ia32_signal.c