MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ktrsyscall

Function ktrsyscall

freebsd/kern/kern_ktrace.c:448–478  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

446}
447
448void
449ktrsyscall(int code, int narg, register_t args[])
450{
451 struct ktr_request *req;
452 struct ktr_syscall *ktp;
453 size_t buflen;
454 char *buf = NULL;
455
456 if (__predict_false(curthread->td_pflags & TDP_INKTRACE))
457 return;
458
459 buflen = sizeof(register_t) * narg;
460 if (buflen > 0) {
461 buf = malloc(buflen, M_KTRACE, M_WAITOK);
462 bcopy(args, buf, buflen);
463 }
464 req = ktr_getrequest(KTR_SYSCALL);
465 if (req == NULL) {
466 if (buf != NULL)
467 free(buf, M_KTRACE);
468 return;
469 }
470 ktp = &req->ktr_data.ktr_syscall;
471 ktp->ktr_code = code;
472 ktp->ktr_narg = narg;
473 if (buflen > 0) {
474 req->ktr_header.ktr_len = buflen;
475 req->ktr_buffer = buf;
476 }
477 ktr_submitrequest(curthread, req);
478}
479
480void
481ktrsysret(int code, int error, register_t retval)

Callers 1

syscallenterFunction · 0.85

Calls 4

mallocFunction · 0.85
ktr_getrequestFunction · 0.85
ktr_submitrequestFunction · 0.85
freeFunction · 0.70

Tested by

no test coverage detected