1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright (C) 2004 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) 3*4882a593Smuzhiyun * Licensed under the GPL 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun #include <sysdep/stub.h> 7*4882a593Smuzhiyun #include <sysdep/faultinfo.h> 8*4882a593Smuzhiyun #include <sysdep/mcontext.h> 9*4882a593Smuzhiyun #include <sys/ucontext.h> 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun void __attribute__ ((__section__ (".__syscall_stub"))) stub_segv_handler(int sig,siginfo_t * info,void * p)12*4882a593Smuzhiyunstub_segv_handler(int sig, siginfo_t *info, void *p) 13*4882a593Smuzhiyun { 14*4882a593Smuzhiyun ucontext_t *uc = p; 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun GET_FAULTINFO_FROM_MC(*((struct faultinfo *) STUB_DATA), 17*4882a593Smuzhiyun &uc->uc_mcontext); 18*4882a593Smuzhiyun trap_myself(); 19*4882a593Smuzhiyun } 20*4882a593Smuzhiyun 21