| 169 | }; |
| 170 | |
| 171 | static __inline void |
| 172 | call_trapsignal(struct thread *td, int sig, int code, vm_offset_t addr, |
| 173 | int trapno) |
| 174 | { |
| 175 | ksiginfo_t ksi; |
| 176 | |
| 177 | CTR4(KTR_TRAP, "%s: addr: %#x, sig: %d, code: %d", |
| 178 | __func__, addr, sig, code); |
| 179 | |
| 180 | /* |
| 181 | * TODO: some info would be nice to know |
| 182 | * if we are serving data or prefetch abort. |
| 183 | */ |
| 184 | |
| 185 | ksiginfo_init_trap(&ksi); |
| 186 | ksi.ksi_signo = sig; |
| 187 | ksi.ksi_code = code; |
| 188 | ksi.ksi_addr = (void *)addr; |
| 189 | ksi.ksi_trapno = trapno; |
| 190 | trapsignal(td, &ksi); |
| 191 | } |
| 192 | |
| 193 | /* |
| 194 | * abort_imprecise() handles the following abort: |
no test coverage detected