motorhead demo installer, tomb raider 3 demo will trigger this
| 1268 | |
| 1269 | // motorhead demo installer, tomb raider 3 demo will trigger this |
| 1270 | void KThread::seg_access(U32 address, bool readFault, bool writeFault, bool throwException) { |
| 1271 | if (this->process->sigActions[K_SIGSEGV].handlerAndSigAction!=K_SIG_IGN && this->process->sigActions[K_SIGSEGV].handlerAndSigAction!=K_SIG_DFL) { |
| 1272 | |
| 1273 | this->process->sigActions[K_SIGSEGV].sigInfo[0] = K_SIGSEGV; |
| 1274 | this->process->sigActions[K_SIGSEGV].sigInfo[1] = 0; |
| 1275 | this->process->sigActions[K_SIGSEGV].sigInfo[2] = 2; // SEGV_ACCERR |
| 1276 | this->process->sigActions[K_SIGSEGV].sigInfo[3] = address; |
| 1277 | this->runSignal(K_SIGSEGV, EXCEPTION_PAGE_FAULT, 1 | (writeFault?2:0)); |
| 1278 | if (throwException) { |
| 1279 | throw 1; |
| 1280 | } |
| 1281 | } else { |
| 1282 | this->memory->logPageFault(this, address); |
| 1283 | } |
| 1284 | } |
| 1285 | |
| 1286 | void KThread::clone(KThread* from) { |
| 1287 | this->sigMask = from->sigMask; |