#include #include #include #include extern void __sparc_sigtramp_setup(void); void sigcode(int sig, int code, void *uc, void *si, void (*handler)(int)) { handler(sig); exit(sigreturn(uc)); } void sigint(int sig) { printf("sigint\n"); } int main(void) { struct sparc_sigtramp_install_args sia; struct sigaction sa, osa; sia.sia_new = sigcode; sia.sia_old = NULL; sysarch(SPARC_SIGTRAMP_INSTALL, &sia); sa.sa_handler = sigint; sigemptyset(&sa.sa_mask); sa.sa_flags = SA_SIGINFO; sigaction(SIGINT, &sa, &osa); kill(getpid(), SIGINT); return (0); }