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