Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

Appendix: Kernel Call Arguments and Return Values

The following table lists the wide- and fast-emitting mode kernel call arguments and return values for each kernel call.


Note: 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 that begin with _
  • InterruptDetachFunc()
  • SignalFault().

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