return; 
return 1; 
void ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,			   compat_sigset_t *set, struct pt_regs * regs){	struct rt_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);	}	err |= __put_user(ptr_to_compat(&frame->info), &frame->pinfo);	err |= __put_user(ptr_to_compat(&frame->uc), &frame->puc);	err |= copy_siginfo_to_user32(&frame->info, info);	if (err)		goto give_sigsegv;	/* Create the ucontext.  */	err |= __put_user(0, &frame->uc.uc_flags);	err |= __put_user(0, &frame->uc.uc_link);	err |= __put_user(current->sas_ss_sp, &frame->uc.uc_stack.ss_sp);	err |= __put_user(sas_ss_flags(regs->rsp),			  &frame->uc.uc_stack.ss_flags);	err |= __put_user(current->sas_ss_size, &frame->uc.uc_stack.ss_size);	err |= ia32_setup_sigcontext(&frame->uc.uc_mcontext, &frame->fpstate,			        regs, set->sig[0]);	err |= __copy_to_user(&frame->uc.uc_sigmask, set, sizeof(*set));	if (err)		goto give_sigsegv;		{ 		void __user *restorer = VSYSCALL32_RTSIGRETURN; 		if (ka->sa.sa_flags & SA_RESTORER)			restorer = ka->sa.sa_restorer;       		err |= __put_user(ptr_to_compat(restorer), &frame->pretcode);	}	/* This is movl $,%eax ; int $0x80 */	/* Not actually used anymore, but left because some gdb versions	   need it. */ 	{ 		/* __copy_to_user optimizes that into a single 8 byte store */		static const struct { 			u8 movl; 			u32 val; 			u16 int80; 			u16 pad;			u8  pad2;						} __attribute__((packed)) code = { 			0xb8,			__NR_ia32_rt_sigreturn,			0x80cd,			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