trcgenk Kernel Service

Purpose

Records a trace event for a generic trace channel.

Syntax

#include <sys/types.h>
#include <sys/errno.h>
#include <sys/trchkid.h>
void trcgenk (chan, hk_word, data_word, len, buf)
unsigned int  chan,  hk_word,  data_word,  len;
char * buf;

Parameters

Item Description
chan Specifies the channel number for the trace session. This number is obtained from the trcstart subroutine.
hk_word An integer containing a hook ID and a hook type:
hk_id
Before AIX® 6.1 the hook identifier is a 12-bit value. On AIX 6.1 and above, the hook identifier is a 16-bit value. A 16-bit value of the form hhh0 is equivalent to a 12-bit value of the form hhh.
hk_type
A 4-bit hook type. The trcgenk service automatically records this information. This value is only valid before AIX 6.1.
data_word Specifies a word of user-defined data.
len Specifies the length in bytes of the buffer specified by the buf parameter.
buf Points to a buffer of trace data. The maximum amount of trace data is 4096 bytes.

Description

The trcgenk kernel service records a trace event if a trace session is active for the specified trace channel. If a trace session is not active, the trcgenk kernel service simply returns. The trcgenk kernel service is located in pinned kernel memory.

The trcgenk kernel service is used to record a trace entry consisting of an hk_word entry, a data_word entry, a variable number of bytes of trace data, and, in AIX 5L Version 5.3 with the 5300-05 Technology Level and above, a time stamp.

Execution Environment

The trcgenk kernel service can be called from either the process or interrupt environment.

Return Values

The trcgenk kernel service has no return values.