| 478 | } |
| 479 | |
| 480 | void |
| 481 | ktrsysret(int code, int error, register_t retval) |
| 482 | { |
| 483 | struct ktr_request *req; |
| 484 | struct ktr_sysret *ktp; |
| 485 | |
| 486 | if (__predict_false(curthread->td_pflags & TDP_INKTRACE)) |
| 487 | return; |
| 488 | |
| 489 | req = ktr_getrequest(KTR_SYSRET); |
| 490 | if (req == NULL) |
| 491 | return; |
| 492 | ktp = &req->ktr_data.ktr_sysret; |
| 493 | ktp->ktr_code = code; |
| 494 | ktp->ktr_error = error; |
| 495 | ktp->ktr_retval = ((error == 0) ? retval: 0); /* what about val2 ? */ |
| 496 | ktr_submitrequest(curthread, req); |
| 497 | } |
| 498 | |
| 499 | /* |
| 500 | * When a setuid process execs, disable tracing. |
no test coverage detected