Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
ACC Programmer's Reference Guide > Chapter 3 ZCOM Tables and Data Structures

ZCOM Header Structure

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Index

The ZCOM Header structure holds the system parameters and pointers to other areas of the ZCOM memory tables as well as other information that pertains to the whole ZCOM subsystem. The layout of the ZCOM Header structure zheader_type is shown in Table 3-1 “ ZCOM Header Structure”.

Table 3-1  ZCOM Header Structure

Field Name

Field Description

Field Type

Size (Bytes)

HLABEL

Header label

char [4]

4

HZREVC

ZCOM rev code

uns.short

2

HTREVC

TTGEN rev code

uns.short

2

HNAME1

Name of TTGEN source file

char [256]

256

HNAME2

Name of TTGEN object file

char [256]

256

HSNAME

System name (79 characters max)

char [80]

80

HSSOFF

System starting offset

uns.long long

8

HSSSIZE

Total system size in bytes

uns.int

4

HBPSIZE

Buffer pool size in bytes

uns.int

4

HNDMAX

Total number of node table entries

uns.short

2

HZLMAX

Total number of ZLUs

uns.short

2

HTMZLU

Number of terminal ZLUs

uns.short

2

HSPZLU

Number of program ZLUs

uns.short

2

HSPZL1

First program ZLU number

uns.short

2

HLTDSZE

Size of LTDATA in LT Table

uns.short

2

HLTMAX

Number of logical terminal tables

uns.short

2

HPTMAX

Number of physical terminal tables

uns.short

2

HNCARD

Number of interface tables

uns.short

2

HNRESP

Number of response records

uns.short

2

HNLTQL

Number of LTT queue labels

uns.short

2

HNLTSL

Number of LTT storage labels

uns.short

2

HPNTBL

Pointer to 1st Node table entry

pointer

8

HPZLU

Pointer to 1st Zlu table

pointer

8

HPTTBL

Pointer to 1st Logical terminal table

pointer

8

HPPTBL

Pointer to 1st Physical terminal table

pointer

8

HPIFTP

Pointer to 1st Interface table

pointer

HPRESP

Pointer to 1st response record

pointer

8

HPQUES

Pointer to 1st Queue header

pointer

8

HPBFFR

Pointer to data buffer pool

pointer

8

HPQLIM

Default program queue limit (msgs)

uns.int

4

HUNACK

Default terminal unack limit (bytes)

uns.int

4

HMAXTX

Default pending TX limit (messages)

uns.int

4

HIPLIM

Default IFT port TX limit (msgs)

uns.int

4

HCTOTAL

Total number of DSC requests

uns.int

4

HCSTATE

DSC state

If positive, it is the number of active DSC requests. If negative, DSC feature is suspended.

short

2

HCSWAIT

Number of DSC state waiters

uns.short

2

HRDATAQ

Remote data queue header

zqhd_type

56

HNDPID

ZNODE Process ID

int

4

HNDSIG

ZNODE required signal

int

4

HNIDLE

ZNODE idle timer value

uns.int

4

HNHIGH

ZNODE queue high-water mark

uns.int

4

HNLOW

ZNODE queue low-water mark

uns.int

4

HNWAIT

ZNODE high-water mark waiter

uns.short

2

HLCLND

Local node number

uns.short

2

HLTQTB

Queue label entries (16 bytes each)

struct [20]

20*16

HLTSTB

Storage label entries (16 bytes each)

struct[20]

20*16

DSC_ercvrs

Dyn. Reconfig. SEM receivers

pointer

8

ETPLIM

Default E1/T1 port transmit limit

uns.int

4

HOSTYPE

Type of operating system

int

4

 

HLABEL - ZMON identifier label

The identifier label contains the word 'ZMON' and provides compatibility with HP1000 version of ZCOM. The memory image file contains the word 'TTGE' in this position. The LDM overwrites this after the ZCOM subsystem has been initialized.

HZREVC - ZCOM revision code

TTGEN initializes this field with a 16-bit revision code, indicating the version of the table structures. This revision code is stored as four 4-bit digits. The first two digits represent the revision of a major release and the last two digits represent a minor release revision. Data structures and applications linked with a previous revision of the ZCOM software will be compatible if they have same major revision code. ZMON checks whether the revision code is acceptable. The different minor numbers indicate compatible revisions, such as bug fixes (as long as the major release revision code is the same).

HTREVC - TTGEN revision code

TTGEN inserts its integer revision code in this field in the memory image file. It is loaded into memory (unchanged) by ZMON and the LDM. This 16-bit revision code is stored in the same format as the ZCOM revision code (HZREVC). However, there is no validation of this field.

HNAME1 - Name of the TTGEN source file

Full path name of the source file used by TTGEN to generate the object file. This field is limited to 256 bytes and is null terminated.

HNAME2 - Name of TTGEN object file

Full path name of the TTGEN produced object file which was then used to startup (initialize) the ZCOM subsystem. This field is limited to 256 bytes and is null terminated.

HSNAME - ZCOM subsystem runtime instance name

Contains the contents of the System-Name parameter supplied in the TTGEN configuration file. This field is limited to 80 bytes and is null terminated.

HSSOFF - System starting offset

This pointer contains the starting physical kernel memory address of the ZCOM subsystem memory. It is initialized to zero by TTGEN. ZMON initializes it with the memory address while loading the memory tables into kernel memory. It is a 64-bit value when used in a 64-bit kernel.

HSSIZE - Total runtime system size in bytes

This is the total size in bytes of the ZCOM subsystem memory, including all tables, queue headers, and the buffer pool.

HBPSIZE - Buffer pool size in bytes

This is the size in bytes of the ZCOM buffer pool. It is defined by the Buffer-Pool parameter in the TTGEN configuration file.

HNDMAX - Number of node entries

This contains the maximum number of node entries which may exist in the node entries memory section. This value is defined by the Node-Entry keyword in the TTGEN configuration file. Each Local-Node and Remote-Node definition consumes one node table entry.

HZLMAX - Total number of ZLUs

Total number of terminal ZLUs and spare (i.e., program) ZLUs. That is, this is the combined values of the Program-ZLU and Terminal-ZLU parameters specified in the TTGEN configuration file.

HTMZLU - Number of terminal ZLUs

This is the number of ZLUs out of the total (HZLMAX) that are allocated to terminals. The terminal ZLU numbers are allocated from 1 up to the number specified in this field. The TTGEN Terminal-ZLU parameter is used to initialize this field.

HSPZLU - Number of program ZLUs

Total number of available program ZLUs. The TTGEN Program-ZLU parameter is used to initialize this field.

HSPZL1 - First program ZLU number

Number of the first ZLU not allocated to terminal ZLUs. This field is initialized to the value of the TTGEN parameter Terminal-ZLU + 1. It indicates where the program ZLUs begin within the ZLU Table. Note that program ZLUs are assigned from the range (Terminal-ZLU+1) to (Terminal-ZLU + Program-ZLU).

HLTDSZE - Logical terminal table LDATA buffer size

This specifies the size of the LDATA buffer in the logical terminal tables. This value is initialized from the Logical-Size parameter in the TTGEN configuration file. Set this parameter to 212 for backward compatibility with HP 1000 programs (so that the total size of Logical Terminal Table with extension is 512 bytes).

HLTMAX - Number of logical terminal tables

Contains the maximum number of Logical Terminal Tables (LTT) which may exist in the configuration. This value is initialized from the Logical-Term parameter in the TTGEN configuration file.

HPTMAX - Number of physical terminal tables

Contains the maximum number of Physical Terminal Tables (PTT) which may exist in the configuration. This value is initialized from the Physical-Term parameter in the TTGEN configuration file.

HNCARD - Number of Mux interface tables

Number of Interface Tables (IFTs) which may exist in the configuration. This value is initialized from the Interface-Table parameter in the TTGEN configuration file. Note that there is one Interface Table (IFT) per Mux card defined.

HNRESP - Number of response records

This field contains the number of response records in the ZCOM subsystem. This value is initialized from the Program-ZLU parameter in the TTGEN configuration file.

HNLTQL - Number of LTT queue labels

Number of entries in the queue label table, up to a maximum value of 20. It is initialized by TTGEN to the number of Logical-Data statements defined in the TTGEN configuration file. This value can be modified by calling the zltqueue() routine.

HNLTSL - Number of LTT storage labels

Number of entries in the storage label table, up to a maximum value of 20. It is initially set up by TTGEN and subsequently maintained by the LDM.

HPNTBL - Node Table pointer (znode_type *)

This is a pointer to the first entry in the Node Table. Note that all of the node entries are stored in sequential order within kernel memory.

HPZLU - ZLU table pointer (zlu_type *)

This is a pointer to the 1st entry in the ZLU table. Note that all of the ZLU table entries are stored in sequential order within kernel memory.

HPTTBL - Logical Terminal Table pointer (zltt_type *)

This is a pointer to the 1st Logical Terminal table. Note that all of the LTTs are stored in sequential order within kernel memory.

HPPTBL - Physical Terminal Table pointer (zptt_type *)

This is a pointer to the 1st physical terminal table. Note that all of the PTTs are stored in sequential order within kernel memory.

HPIFTP - Interface Table pointer (zift_type *)

This is a pointer to the first Interface Table (IFT). Note that all of the IFTs are stored in sequential order within kernel memory.

HPRESP - Pointer to the first response record (zrsp_type *)

This is a pointer to the first response record. Note that all of the response records are stored in sequential order within kernel memory.

HPQUES - Queue Header pointer (zqhd_type *)

This is a pointer to the first Queue Header. Note that all of the Queue Headers are stored in sequential order within kernel memory.

HPBFFR - Data buffer pointer (char *)

This is a pointer to the start of the data buffer pool. The data buffer pool is a block of contiguous kernel memory used for dynamically allocating data buffers for a variety of uses. The size of this block of memory is determined by the Buffer-Pool parameter from the TTGEN configuration file.

HPQLIM - Default program ZLU message queue limit

The default program ZLU message queue limit is the maximum number of messages that may be queued on each program ZLU. This value is initialized from the Queue-Limit parameter in the TTGEN configuration file. The default limit may be overridden during a zopen() by specifying a non-zero value in the limit parameter. The program ZLU queue limit may be changed dynamically by calling the zsetql() routine.

HUNACK - Maximum number of unacknowledged Tx buffers pending on a terminal ZLU

Upper limit of the total size (in bytes) of all unacknowledged transmit messages to a terminal ZLU. If this limit has been reached, any further write requests to the terminal ZLU will be queued up in the terminal table, but will not processed by the driver immediately. The driver will resume processing of queued transmit requests when the Mux card acknowledges the completion of a previously issued transmit request for this terminal ZLU. This mechanism is used to prevent a few (or only one) terminal from consuming all of the transmit buffers on the Mux interface card. This field is initialized from the Unack-Limit parameter in the TTGEN configuration file. The unacknowledged queue limit may be changed dynamically by calling the zsetql() routine.

HMAXTX - Maximum number of Tx buffers pending on a terminal ZLU

Limit of transmit buffers pending on a terminal. When this limit is reached, the program doing write requests to the terminal will be suspended until some of the pending transmit requests are sent. Together with the limit imposed by HUNACK, this protects the ZCOM system buffers from excessive usage due to dead terminals (or other kind of device).

HIPLIM - Default IFT port TX limit (bytes)

This field contains the limit (in bytes) of all unacknowledged transmit messages to terminal ZLUs belonging to the same port of a 2/8-port Mux card. Each port on the card has approximately 24,480 bytes of buffer space available for both internal use and transmit requests. If the DAM issues a transmit request to the Mux card and the Mux card does not have enough free buffers to hold the request data, the Mux will reject the request with an "out of buffers" error. The DAM will retry the request after an unacknowledged transmit request completes. This field is used to minimize the number of retries (and thereby increase overall performance) by imposing a limit on the size of unacknowledged transmit requests. This value is configured through the Port-Limit parameter in the TTGEN configuration file and is used to initialize the individual port limits iplimit[] kept in the interface table (zift_type).

HCTOTAL - Total number of Dynamic System Configuration (DSC) requests

This field contains the number of DSC requests processed by the ZCOM subsystem since it was initialized and started up. It is incremented every time a DSC request is processed. This value is for information purposes only.

HCSTATE - Dynamic System Configuration (DSC) State

This field is used by the ZCOM subsystem as an indicator for controlling DSC functions. When the value is zero or positive, the DSC functions are enabled. The value represents the number of active DSC requests. When the value is negative, DSC functions are disabled. DSC requests are rejected until this field is set to zero. This field is initialized to zero by TTGEN.

HCSWAIT - Number of DSC state waiters

This field contains the number of processes suspended, waiting for the DSC state to be set to zero. That is, the processes are waiting for the DSC functions to be enabled. A process will be suspended if it issues a DSC request while the DSC functions are disabled or if it issues a DSC disable request while other DSC requests are in progress.

HRDATAQ - Remote data queue (ZNODE Queue)

This is the data queue for remote ZCOM requests. All ZCOM API requests to a remote node or deferred remote request responses will be added to this queue by the LDM. The remote node request daemon, ZNODE, reads and processes the request from this queue. This special queue is sometimes referred to as the ZNODE queue or ZNODE data queue.

HNDPID - ZNODE HP-UX process ID (PID)

This field contains the process ID (PID) of the local ZNODE daemon to use for signalling the arrival of data on the ZNODE queue. If this value is positive, the LDM will send a signal to this process ID whenever new data is placed in the queue. If this value is negative, a signal will be sent to the process group. The group ID used is the absolute value of this field. This field is initialized to zero by TTGEN and is set up by the ZNODE program when it starts up.

HNDSIG - ZNODE signal number

Contains the type of signal to use when informing ZNODE of the arrival of new data in the ZNODE queue. This field is initialized to zero by TTGEN and is set up by the ZNODE program when it starts up.

HNIDLE - ZNODE idle timer

This contains the time in seconds since ZNODE last issued a Node-Status Update ioctl request to the ZCOM subsystem (LDM). The LDM timer increments this field once every second and marks all nodes as DOWN when it exceeds the inactivity period (currently 20 seconds). This field is initialized to zero when the ZCOM runtime subsystem is started up.

HNHIGH, HNLOW - ZNODE queue high and low water marks (flow control)

These two fields are used by the LDM to control the flow of data between the ZNODE daemon and the LDM. When the number of pending messages on the ZNODE queue reaches the high-water mark, programs initiating remote requests are suspended to avoid excessive buffer usage. Suspended programs will be allowed to resume execution when the number of queued messages drops to or below the low-water mark.

A special case exists when both the high and low water marks are set to the same value. In this situation, whenever the number of pending messages on the ZNODE queue is at or above this mark, all remote requests are rejected with an immediate error return value of ZENBUSY (-1, ZNODE is busy).

Note that this mechanism is only applicable to programs initiating remote requests and does not limit the messages or responses generated as a result of ZCOM subsystem operation (e.g. a terminal ZLU returns a message to its receiver in a remote system).

These two values are defined by the Flow-Control keyword in the TTGEN configuration file. If not specified, they will default to a high-water mark value of the maximum queue limit and a low-water mark value of zero (i.e. the mechanism is disabled).

HNWAIT - ZNODE queue high-water mark waiter

This field is maintained and used by the LDM to keep track of the number of programs currently suspended due to the high/low water mark flow control mechanism. It is initialized to zero by TTGEN.

HLCLND - Local node number

The node number of the local ZCOM subsystem. If the Node-Definition section in the TTGEN configuration file is omitted, TTGEN defaults this field to one (1). Otherwise, it is initialized to the value of the Local-Node parameter. It is set up by TTGEN as the first node table entry that has zero ZLU number. There may be other numbers that also refer to the local node but HLCLND is the only one that is used to identify the local node on outbound messages.

HLTQTB - Queue label table

Each entry in the queue label table indicates the ownership of a data queue in a logical terminal table. Each entry has a structure of 16 bytes (zqlb_type) as shown in Table 3-2 “Queue Label Table”.

Table 3-2 Queue Label Table

Field Name

Field Description

Field Type

Size (bytes)

QLBGRP

Appl. grp. number (0 = globally assigned)

uns.short

2

QLBNAM

Queue label name

char

8

QLBQNB

Allocated queue number

uns.short

2

QLBRSV

<reserved>, unused

char

4

 

The table is initialized by TTGEN from the Logical-Data statements in the TTGEN configuration file. There is one entry in the Queue label table for each Logical-Data statement. Additional entries can be added to this table by calling the zltqueue routine (up to a maximum of 20 queue labels).

HLTSTB - Storage label table

The storage label entry indicates the ownership of an application data storage area in the logical terminal table extension area. Each entry is a structure of 16 bytes (zslb_type), as shown in Table 3-3 “Storage Label Table”.

Table 3-3 Storage Label Table

Field Name

Field Description

Field Type

Size (Bytes)

SLBGRP

Appl. grp. number (0 = globally assigned)

uns.short

2

SLBNAM

Storage label name

char

8

SLBSZE

Size of the application data in bytes

uns.short

2

SLBOFF

Offset from the start of the LTT to the application data in the extension area. Therefore, this value is the size of the LTT plus the offset of the application data from the start of the LTT extension area.

short

2

SLBRSV

<reserved>, unused

char

2

 

The table is initialized by TTGEN from the Logical-Data statements in the TTGEN configuration file. There is one entry in the Storage label table for each Logical-Data statement. Additional entries can be added to this table by calling the zltqueue() routine (up to a maximum of 20 storage labels).

DSC_ercvrs - Dynamic Reconfiguration System Event Receivers pointer (zshaddr_type *)

This field contains a pointer to a linked list of all applications that wish to be notified whenever a ZCOM subsystem dynamic reconfiguration system event message is generated (through the zconfig routine). This field is initialized by TTGEN to zero. It will only contain a value if at least one application has requested notification.

ETPLIM- Default E1/T1 IFT port TX limit (bytes)

This field contains the limit (in bytes) of all unacknowledged transmit messages to terminal ZLUs belonging to the same port and subchannel of an E1/T1 card. Each E1/T1 card has approximately 16 M-bytes of buffer space available for both internal use and transmit requests. If the DAM issues a transmit request to the E1/T1 card and the card does not have enough free buffers to hold the request data, the Mux will reject the request with an “out of buffers” error. The DAM will retry the request after an unacknowledged transmit request completes. This field is used to minimize the number of retries (and thereby increase overall performance) by imposing a limit on the size of unacknowledged transmit requests. This value is configured through the E1T1-Port-Limit parameter in the TTGEN configuration file and is used to initialize the individual port and subchannel limit array iplimit[] kept in the interface table (zift_type).

HOSTYPE - Type of operating system

This field indicates the type of operating system that manipulates the data structures. The allowed values are 0, 32 (32-bit kernel) or 64 (64-bit kernel). It is first set up by TTGEN to 0. Then it is set to 32 or 64 by ZMON when it initializes the ZCOM kernel memory block.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 2000 Hewlett-Packard Development Company, L.P.