trcgenkt Kernel Service for Data Link Control (DLC) Devices

Purpose

Records a trace event, including a time stamp, for a DLC trace channel.

Syntax

#include <sys/trchkid.h>

void trcgenkt (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 Contains the trace hook identifier defined in the /usr/include/sys/trchkid.h file. The types of link trace entries registered using the hook ID include:
HKWD_SYSX_DLC_START
Start link station completions
HKWD_SYSX_DLC_TIMER
Time-out completions
HKWD_SYSX_DLC_XMIT
Transmit completions
HKWD_SYSX_DLC_RECV
Receive completions
HKWD_SYSX_DLC_HALT
Halt link station completions
data_word Specifies trace data format field. This field varies depending on the hook ID. Each of these definitions are in the /usr/include/sys/gdlextcb.h file:
  • The first half-word always contains the data link protocol field including one of these definitions:
    DLC_DL_SDLC
    SDLC
    DLC_DL_HDLC
    HDLC
    DLC_DL_BSC
    BISYNC
    DLC_DL_ASC
    ASYNC
    DLC_DL_PCNET
    PC Network
    DLC_DL_ETHER
    Standard Ethernet
    DLC_DL_802_3
    IEEE 802.3
    DLC_DL_TOKEN
    Token-Ring
 
  • On start or halt link station completion, the second half-word contains the physical link protocol in use:
    DLC_PL_EIA232
    EIA-232D Telecommunications
    DLC_PL_EIA366
    EIA-366 Auto Dial
    DLC_PL_X21
    CCITT X.21 Data Network
    DLC_PL_PCNET
    PC Network Broadband
    DLC_PL_ETHER
    Standard Baseband Ethernet
    DLC_PL_SMART
    Smart Modem Auto Dial
    DLC_PL_802_3
    IEEE 802.3 Baseband Ethernet
    DLC_PL_TBUS
    IEEE 802.4 Token Bus
    DLC_PL_TRING
    IEEE 802.5 Token-Ring
    DLC_PL_EIA422
    EIA-422 Telecommunications
    DLC_PL_V35
    CCITT V.35 Telecommunications
    DLC_PL_V25BIS
    CCITT V.25 bis Autodial for Telecommunications
 
  • On timeout completion, the second half-word contains the type of timeout occurrence:
    DLC_TO_SLOW_POLL
    Slow station poll
    DLC_TO_IDLE_POLL
    Idle station poll
    DLC_TO_ABORT
    Link station aborted
    DLC_TO_INACT
    Link station receive inactivity
    DLC_TO_FAILSAFE
    Command failsafe
    DLC_TO_REPOLL_T1
    Command repoll
    DLC_TO_ACK_T2
    I-frame acknowledgment
 
  • On transmit completion, the second half-word is set to the data link control bytes being sent. Some transmit packets only have a single control byte; in that case, the second control byte is not displayed.
  • On receive completion, the second half-word is set to the data link control bytes that were received. Some receive packets only have a single control byte; in that case, the second control byte is not displayed.
len Specifies the length in bytes of the entry specific data specified by the buf parameter.
buf Specifies the pointer to the entry specific data that consists of:
Start Link Station Completions
Link station diagnostic tag and the remote station's name and address.
Time-out Completions
No specific data is recorded.
Transmit Completions
Either the first 80 bytes or all the transmitted data, depending on the short/long trace option.
Receive Completions
Either the first 80 bytes or all the received data, depending on the short/long trace option.
Halt Link Station Completions
Link station diagnostic tag, the remote station's name and address, and the result code.

Description

The trcgenkt 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 trcgenkt kernel service simply returns. The trcgenkt kernel service is located in pinned kernel memory.

The trcgenkt 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 a time stamp.

Execution Environment

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

Return Values

The trcgenkt kernel service has no return values.