The following table lists the wide- and fast-emitting mode kernel call arguments and return values for each kernel call.
Many functions listed below are internal function calls that you won't find documented in the Library Reference. They're included in this table because you may see them listed in your trace output. Some of the internal functions include:
All functions with a _r (restartable) use the same call arguments and return values as the equivalent function without the _r. The rmsg tag indicates the contents of the message. When several are specified, the contents of rmsg are bytes 0-3 in the first, 4-7 in the second, and so on. |
Function | Wide-emitting call arguments |
Fast-emitting call arguments |
Wide-emitting return values |
Fast-emitting return values |
---|---|---|---|---|
_bad() | A1: empty, A2: empty |
A1: empty, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
ChannelCreate() | A1: flags, A2: empty |
A1: flags, A2: empty |
R1: chid, R2: empty |
R1: chid, R2: empty |
ChannelDestroy() | A1: chid, A2: empty |
A1: chid, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
ClockAdjust() | A1: id, A2: new->tick_count, A3: new->tick_nsec_inc |
A1: id, A2: new->tick_count |
R1: ret_val, R2: old->tick_count, R3: old->tick_nsec_inc |
R1: ret_val, R2: old->tick_count |
ClockId() | A1: pid, A2: tid |
A1: pid, A2: tid |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
ClockPeriod() | A1: id, A2: new->nsec, A3: new->fract |
A1: id, A2: new->nsec |
R1: ret_val, R2: old->nsec, R3: old->fract |
R1: ret_val, R2: old |
ClockTime() | A1: id, A2: new(sec), A3: new(nsec) |
A1: id, A2: new(sec) |
R1: ret_val, R2: old(sec), R3: old(nsec) |
R1: ret_val, R2: old |
ConnectAttach() | A1: nd, A2: pid, A3: chid, A4: index, A5: flags |
A1: nd, A2: pid |
R1: coid, R2: empty |
R1: coid, R2: empty |
ConnectClientInfo() | A1: scoid, A2: ngroups |
A1: scoid, A2: ngroups |
R1: ret_val, R2: info->nd, R3: info->pid, R4: info->sid, R5: flags, R6: info->ruid, R7: info->euid, R8: info->suid, R9: info->rgid, R10: info->egid, R11: info->sgid, R12: info->ngroups, R13: info->grouplist[0], R14: info->grouplist[1], R15: info->grouplist[2], R16: info->grouplist[3], R17: info->grouplist[4], R18: info->grouplist[5], R19: info->grouplist[6], R20: info->grouplist[7] |
R1: ret_val, R2: info->nd |
ConnectDetach() | A1: coid, A2: empty |
A1: coid, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
ConnectFlags() | A1: pid, A2: coid, A3: masks, A4: bits |
A1: coid, A2: bits |
R1: old_flags, R2: empty |
R1: old_flags, R2: empty |
ConnectServerInfo() | A1: pid, A2: coid |
A1: pid, A2: coid |
R1: coid, R2: info->nd, R3: info->srcnd, R4: info->pid, R5: info->tid, R6: info->chid, R7: info->scoid, R8: info->coid, R9: info->msglen, R10: info->srcmsglen, R11: info->dstmsglen, R12: info->priority, R13: info->flags, R14: info->reserved |
R1: coid, R2: info->nd |
InterruptAttach() | A1: intr, A2: handler_p, A3: area_p, A4: areasize, A5: flags |
A1: intr, A2: flags |
R1: int_fun_id, R2: empty |
R1: int_fun_id, R2: empty |
InterruptDetachFunc() | A1: intr, A2: handler_p |
A1: intr, A2: handler_p |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
InterruptMask() | A1: intr, A2: id |
A1: intr, A2: id |
R1: mask_level, R2: empty |
R1: mask_level, R2: empty |
InterruptUnmask() | A1: intr, A2: id |
A1: intr, A2: id |
R1: mask_level, R2: empty |
R1: mask_level, R2: empty |
InterruptWait() | A1: flags, A2: timeout_tv_sec, A3: timeout_tv_nsec |
A1: flags, A2: empty |
R1: ret_val, R2: timeout_p |
R1: ret_val, R2: empty |
MsgDeliverEvent() | A1: rcvid, A2: event->sigev_notify, A3: event->sigev_notify_function_p, A4: event->sigev_value, A5: event->sigev_notify_attributes_p |
A1: rcvid, A2: event->sigev_notify |
R1: ret_val, R2: event_p |
R1: ret_val, R2: empty |
MsgError() | A1: rcvid, A2: err |
A1: rcvid, A2: err |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
MsgInfo() | A1: rcvid, A2: info_p |
A1: rcvid, A2: info_p |
R1: ret_val, R2: info->nd, R3: info->srcnd, R4: info->pid, R5: info->tid, R6: info->chid, R7: info->scoid, R8: info->coid, R9: info->msglen, R10: info->srcmsglen, R11: info->dstmsglen, R12: info->priority, R13: info->flags, R14: empty |
R1: ret_val, R2: info->nd |
MsgKeyData() | A1: rcvid, A2: op |
A1: rcvid, A2: op |
R1: ret_val, R2: newkey |
R1: ret_val, R2: newkey |
MsgReadv() | A1: rcvid, A2: rmsg_p, A3: rparts, A4: offset |
A1: rcvid, A2: offset |
R1: rbytes, R2: rmsg, R3: rmsg, R4: rmsg |
R1: rbytes, R2: rmsg |
MsgReceivePulse() | A1: chid, A2: rparts |
A1: chid, A2: rparts |
R1: ret_val, R2: rmsg, R3:rmsg, R4:rmsg |
R1: ret_val, R2: empty |
MsgReceivev() | A1: chid, A2: rparts |
A1: chid, A2: rparts |
R1: rcvid, R2: rmsg, R3: rmsg, R4: rmsg, R5: info->nd, R6: info->srcnd, R7: info->pid, R8: info->tid, R9: info->chid, R10: info->scoid, R11: info->coid, R12: info->msglen, R13: info->srcmsglen, R14: info->dstmsglen, R15: info->priority, R16: info->flags, R17: empty, R18:empty |
R1: rcvid, R2: rmsg |
MsgReplyv() | A1: rcvid, A2: sparts, A3: status, A4: smsg, A5: smsg, A6: smsg |
A1: rcvid, A2: status |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
MsgSendPulse() | A1: coid, A2: priority, A3: code, A4: value |
A1: coid, A2: code |
R1: status, R2: empty |
R1: status, R2: empty |
MsgSendv() | A1: coid, A2: rcvid, A3: pid, A4: msg, A5: msg, A6: msg A7: sparts A8: rparts |
A1: coid, A2: rcvid, A3: pid, A4: msg |
R1: status, R2: rmsg, R3: rmsg, R4: rmsg |
R1: status, R2:rmsg (pid returns 0 for network processes) |
MsgSendvnc() | A1: coid, A2: rcvid, A3: pid, A4: msg, A5: msg, A6: msg A7: sparts A8: rparts |
A1: coid, A2: rcvid, A3: pid, A4: msg |
R1: status, R2: rmsg, R3: rmsg, R4: rmsg |
R1: status, R2:rmsg (pid returns 0 for network processes) |
MsgVerifyEvent() | A1: rcvid, A2: event->sigev_notify, A3: event->sigev_notify_function_p, A4: event->sigev_value, A5: event->sigev_notify_attributes_p |
A1: rcvid, A2: event->sigev_notify |
R1: status, R2: empty |
R1: status, R2: empty |
MsgWritev() | A1: rcvid, A2: sparts, A3: offset, A4: msg, A5: msg, A6: msg |
A1: rcvid, A2: offset |
R1: wbytes, R2: empty |
R1: wbytes, R2: empty |
Function | Wide-emitting call arguments |
Fast-emitting call arguments |
Wide-emitting return values |
Fast-emitting return values |
---|---|---|---|---|
NetCred() | A1: coid, A2: info_p |
A1: coid, A2: info_p |
R1: ret_val, R2: info->nd, R3: info->pid, R4: info->sid, R5: info->flags, R6: info->ruid, R7: info->euid, R8: info->suid, R9: info->rgid, R10: info->egid, R11: info->sgid, R12: info->ngroups, R13: info->grouplist[0], R14: info->grouplist[1], R15: info->grouplist[2], R16: info->grouplist[3], R17: info->grouplist[4], R18: info->grouplist[5], R19: info->grouplist[6], R20: info->grouplist[7] |
R1: ret_val, R2: info->nd |
NetInfoscoid() | A1: scoid, A2: empty |
A1: scoid, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
NetSignalKill() | A1: cred->ruid, A2: cred->euid, A3: nd, A4: pid, A5: tid, A6: signo, A7: code, A8: value |
A1: pid, A2: signo |
R1: empty, R2: empty |
R1: status, R2: empty |
NetUnblock() | A1: vtid, A2: empty |
A1: vtid, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
NetVtid() | A1: vtid, A2: info_p, A3: tid, A4: coid, A5: priority, A6: srcmsglen, A7: keydata, A8: srcnd, A9: dstmsglen, A10: zero |
A1: vtid, A2: info_p |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
_nop() | A1: dummy, A2: empty |
A1: dummy, A2: empty |
R1: empty, R2: empty |
R1: empty, R2: empty |
_Ring0() | A1: func_p, A2: arg_p |
A1: func_p, A2: arg_p |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SchedGet() | A1: pid, A2: tid |
A1: pid, A2: tid |
R1: ret_val, R2: sched_priority, R3: sched_curpriority, R4: param.__ss_low_priority, R5: param.__ss_max_repl, R6: param.__ss_repl_period.tv_sec, R7: param.__ss_repl_period.tv_nsec, R8: param.__ss_init_budget.tv_sec, R9: param.__ss_init_budget.tv_nsec, R10: param.empty, R11: param.empty |
R1: ret_val, R2: sched_priority |
SchedInfo() | A1: pid, A2: policy |
A1: pid, A2: policy |
R1: ret_val, R2: priority_min, R3: priority_max, R4: interval_sec, R5: interval_nsec, R6: priority_priv, |
R1: ret_val, R2: priority_max |
SchedSet() | A1: pid, A2: tid, A3: policy, A4: sched_priority, A5: sched_curpriority, A6: param.__ss_low_priority, A7: param.__ss_max_repl, A8: param.__ss_repl_period.tv_sec, A9: param.__ss_repl_period.tv_nsec, A10: param.__ss_init_budget.tv_sec, A11: param.__ss_init_budget.tv_nsec, A12: param.empty, A13: param.empty |
A1: pid, A2: priority |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SchedYield() | A1: empty, A2: empty |
A1: empty, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SignalAction() | A1: pid, A2: sigstub_p, A3: signo, A4: act->sa_handler_p, A5: act->sa_flags, A6: act->sa_mask.bits[0], A7: act->sa_mask.bits[1] |
A1: signo, A2: act->sa_handler_p |
R1: ret_val, R2: oact->sa_handler_p, R3: oact->sa_flags, R4: oact->sa_mask.bits[0], R5: oact->sa_mask.bits[1] |
R1: ret_val, R2: oact->sa_handler_p |
SignalFault() | A1: sigcode, A2: addr |
A1: sigcode, A2: addr |
R1: ret_val, R2: reg_1, R3: reg_2, R4: reg_3, R5: reg_4, R6: reg_5 |
R1: ret_val, R2: reg_1 |
SignalKill() | A1: nd, A2: pid, A3: tid, A4: signo, A5: code, A6: value |
A1: pid, A2: signo |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SignalProcmask() | A1: pid, A2: tid, A3: how, A4: sig_blocked->bits[0], A5: sig_blocked->bits[1] |
A1: pid, A2: tid |
R1: ret_val, R2: old_sig_blocked->bits[0], R3: old_sig_blocked->bits[1] |
R1: ret_val, R2: old_sig_blocked->bits[0] |
SignalReturn() | A1: s_p, A2: empty |
A1: s_p, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SignalSuspend() | A1: sig_blocked->bits[0], A2: sig_blocked->bits[1] |
A1: sig_blocked->bits[0], A2: sig_blocked->bits[1] |
R1: ret_val, R2: sig_blocked_p |
R1: ret_val, R2: sig_blocked_p |
SignalWaitinfo() | A1: sig_wait->bits[0], A2: sig_wait->bits[1] |
A1: sig_wait->bits[0], A2: sig_wait->bits[1] |
R1: sig_num, R2: si_signo, R3: si_code, R4: si_errno, R5: p[0], R6: p[1], R7: p[2], R8: p[3], R9: p[4], R10: p[5], R11: p[6] |
R1: sig_num, R2: si_code |
SyncCondvarSignal() | A1: sync_p, A2: all, A3: sync->count, A4: sync->owner |
A1: sync_p, A2: all |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SyncCondvarWait() | A1: sync_p, A2: mutex_p, A3: sync->count, A4: sync->owner, A5: mutex->count, A6: mutex->owner |
A1: sync_p, A2: mutex_p |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SyncCtl() | A1: cmd, A2: sync_p, A3: data_p, A4: count, A5: owner |
A1: cmd, A2: sync_p |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SyncDestroy() | A1: sync_p, A2: count, A3: owner |
A1: sync_p, A2: owner |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SyncMutexLock() | A1: sync_p, A2: count, A3: owner |
A1: sync_p, A2: owner |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SyncMutexRevive() | A1: sync_p, A2: count, A3: owner |
A1: sync_p, A2: owner |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SyncMutexUnlock() | A1: sync_p, A2: count, A3: owner |
A1: sync_p, A2: owner |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SyncSemPost() | A1: sync_p, A2: count, A3: owner |
A1: sync_p, A2: count |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SyncSemWait() | A1: sync_p, A2: try, A3: count, A4: owner |
A1: sync_p, A2: count |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SyncTypeCreate() | A1: type, A2: sync_p, A3: count, A4: owner, A5: protocol, A6: flags, A7: prioceiling, A8: clockid |
A1: type, A2: sync_p |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SysCpupageGet() | A1: index, A2: empty |
A1: index, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
SysCpupageSet() | A1: index, A2: value |
A1: index, A2: value |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
ThreadDestroyAll() | A1: empty, A2: empty |
A1: empty, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
ThreadCancel() | A1: tid, A2: canstub_p |
A1: tid, A2: canstub_p |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
ThreadCreate() | A1: pid, A2: func_p, A3: arg_p, A4: flags, A5: stacksize, A6: stackaddr_p, A7: exitfunc_p, A8: policy, A9: sched_priority, A10: sched_curpriority, A11: param.__ss_low_priority, A12: param.__ss_max_repl, A13: param.__ss_repl_period.tv_sec, A14: param.__ss_repl_period.tv_nsec, A15: param.__ss_init_budget.tv_sec, A16: param.__ss_init_budget.tv_nsec, A17: param.empty, A18: param.empty, A19: guardsize, A20: empty, A21: empty, A22: empty |
A1: func_p, A2: arg_p |
R1: thread_id, R2: owner |
R1: thread_id, R2: owner |
ThreadCtl() | A1: cmd, A2: data_p |
A1: cmd, A2: data_p |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
ThreadDestroy() | A1: tid, A2: priority, A3: status_p |
A1: tid, A2: status_p |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
ThreadDetach() | A1: tid, A2: empty |
A1: tid, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
ThreadJoin() | A1: tid, A2: status_pp |
A1: tid, A2: status_pp |
R1: ret_val, R2: status_p |
R1: ret_val, R2: status_p |
TimerAlarm() | A1: id, A2: itime->nsec(sec), A3: itime->nsec(nsec), A4: itime->interval_nsec(sec), A5: itime->interval_nsec(nsec) |
A1: id, A2: itime->nsec(sec) |
R1: ret_val, R2: oitime->nsec(sec), R3: oitime->nsec(nsec), R4: oitime->interval_nsec(sec), R5: oitime->interval_nsec(nsec) |
R1: ret_val, R2: oitime->nsec(sec) |
TimerCreate() | A1: id, A2: event->sigev_notify, A3: event->sigev_notify_function_p, A4: event->sigev_value, A5: event->sigev_notify_attributes_p |
A1: id, A2: event->sigev_notify |
R1: timer_id, R2: empty |
R1: timer_id, R2: empty |
TimerDestroy() | A1: id, A2: empty |
A1: id, A2: empty |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |
TimerInfo() | A1: pid, A2: id, A3: flags, A4: info_p |
A1: pid, A2: id |
R1: prev_id, R2: info->itime.nsec(sec), R3: info->itime.nsec(nsec), R4: info->itime.interval_nsec(sec), R5: info->itime.interval_nsec(nsec), R6: info->otime.nsec(sec), R7: info->otime.nsec(nsec), R8: info->otime.interval_nsec(sec), R9: info->otime.interval_nsec(nsec), R10: info->flags, R11: info->tid, R12: info->notify, R13: info->clockid, R14: info->overruns, R15: info->event.sigev_notify, R16: info->event.sigev_notify_function_p, R17: info->event.sigev_value, R18: info->event.sigev_notify_attributes_p |
R1: prev_id, R2: info->itime.nsec(sec) |
TimerSettime() | A1: id, A2: flags, A3: itime->nsec(sec), A4: itime->nsec(nsec), A5: itime->interval_nsec(sec), A6: itime->interval_nsec(nsec) |
A1: id, A2: itime->nsec(sec) |
R1: ret_val, R2: oitime->nsec(sec), R3: oitime->nsec(nsec), R4: oitime->interval_nsec(sec), R5: oitime->interval_nsec(nsec) |
R1: ret_val, R2: oitime->nsec(sec) |
TimerTimeout() | A1: id, A2: timeout_flags, A3: ntime(sec), A4: ntime(nsec), A5: event->sigev_notify, A6: event->sigev_notify_function_p, A7: event->sigev_value, A8: event->sigev_notify_attributes_p |
A1: timeout_flags, A2: ntime(sec) |
R1: prev_timeout_flags, R2: otime(sec), R3: otime(nsec) |
R1: prev_timeout_flags, R2: otime(sec) |
TraceEvent() | A1: mode, A2: class[header], A3: event[time_off], A4: data_1, A5: data_2 |
A1: mode, A2: class |
R1: ret_val, R2: empty |
R1: ret_val, R2: empty |