Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ SLI_SEND(3) — SNA LUA 1.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

SLI_SEND(3)  —  Subroutines

 
 
 
 

Name

SLI_SEND − Transmits data, an SNA command, or an SNA response to the remote host application program. 
 
 
 

FORMAT

#include <lua_c.h>
 
void SLI(LUA_VERB_RECORD ∗sli_send_vcb);
 
 
 
 

Parameter

 

sli_send_vcb
 
 
A pointer to an LUA_VERB_RECORD structure appropriately initialized for the SLI_SEND verb. 
 
 
 

Required Verb Control Block Fields

 

common.lua_verb
 
 
An unsigned short value specifying the verb code LUA_VERB_SLI. 
 

common.lua_verb_length
 
 
An unsigned short value specifying the length of the verb control block. Specify the value LUA_SLI_SEND_LENGTH. 
 

common.lua_post_handle
 
 
A pointer to a sem_t structure specifying the wait object that the interface should use for asynchronous calls. 
 

common.lua_opcode
 
 
An unsigned short value specifying the verb opcode.  Specify the value LUA_OPCODE_SLI_SEND. 
 

common.lua_luname
 
 
An unsigned char 8-element array specifying the local LU name (in ASCII). If the name is fewer than 8 characters in length, pad the name with space characters. 
 
 

common.lua_cobol_ptr
 
 
 
This parameter is not currently implemented and should be set to NULL.
 

common.sid
 
 
An unsigned int value specifying the session ID that the interface should use to identify the local LU. If this parameter is 0, the interface uses the common.lua_luname parameter. 
 

common.lua_data_length
 
 
An unsigned short value specifying the length of the data in the buffer referenced by the common.lua_data_ptr parameter. 
 

common.lua_data_ptr
 
 
An unsigned char pointer to the data buffer that contains the data or SNA command to be transmitted. 
 

common.lua_th
 
 
An LUA_TH structure containing the transmission header (TH) which should accompany the transmitted data. Specify the following TH field:

 

snf---The sequence number field.  As discussed in the Description section, this field is only required for responses. 

 
 
 
 

common.lua_rh
 
 
An LUA_RH structure containing the request/response header (RH) which should accompany the transmitted data. Specify the following RH fields (subject to the restrictions described in the Description section):

 

sdi---The sense data included indicator. 
 

 
 

fi---The format indicator. 
 

 
 

qri---The queued response indicator. 
 

 
 

ri---The exception response indicator (ERI) for requests or the response type indicator (RTI) for responses. 
 

 
 

dr2i---The definite response 2 indicator. 
 

 
 

dr1i---The definite response 1 indicator. 
 

 
 

pdi---The padded data indicator. 
 

 
 

edi---The enciphered data indicator. 
 

 
 

csi---The code selection indicator. 
 

 
 

cdi---The change direction indicator. 
 

 
 

ebi---The end bracket indicator. 
 

 
 

bbi---The begin bracket indicator. 

 
 
 

common.lua_flag1
 
 
An LUA_FLAG1 structure specifying various flags that control how the interface executes the verb.  The following flags are available:

 

sscp_exp---If set, specifies that the interface should transmit this message on the SSCP-expedited data flow. 
 

 
 

sscp_norm---If set, specifies that the interface should transmit this message on the SSCP-normal data flow. 
 

 
 

lu_exp---If set, specifies that the interface should transmit this message on the LU-expedited data flow. 
 

 
 

lu_norm---If set, specifies that the interface should transmit this message on the LU-normal data flow. 

 
 
You cannot set a flow flag that has already been set on another pending SLI_SEND verb.

 
 

common.lua_flag3
 
 
 
This parameter is not currently implemented. Any fields set are ignored.
 

common.lua_message_type
 
 
An unsigned char value containing the SNA message type.  The following values are possible:

 

LUA_MESSAGE_TYPE_BID
 

LUA_MESSAGE_TYPE_BIS
 

LUA_MESSAGE_TYPE_CHASE
 

LUA_MESSAGE_TYPE_LU_DATA
 

LUA_MESSAGE_TYPE_LUSTAT_LU
 

LUA_MESSAGE_TYPE_LUSTAT_SSCP
 

LUA_MESSAGE_TYPE_QC
 

LUA_MESSAGE_TYPE_QEC
 

LUA_MESSAGE_TYPE_RELQ
 

LUA_MESSAGE_TYPE_RSP
 

LUA_MESSAGE_TYPE_RTR
 

LUA_MESSAGE_TYPE_SBI
 

LUA_MESSAGE_TYPE_SIGNAL
 

LUA_MESSAGE_TYPE_SSCP_DATA

 
 
 
 
 

Optional Verb Control Block Fields

 

common.lua_correlator
 
 
A void ∗ pointer that can contain either a value or an address of a user-supplied data structure. The LUA application can use this parameter to correlate this verb control block with other user-supplied data structures.  The interface does not read from or write to this field. 
 
 
 
 

Returned Verb Control Block Fields

 

common.lua_prim_rc
 
 
An unsigned short value containing the primary error code. 
 
 

common.lua_sec_rc
 
 
An unsigned int value containing the secondary error code. 
 
 

common.lua_sid
 
 
An unsigned int value containing the session ID that subsequent verbs can use to specify the session to the interface. 
 

common.lua_th
 
 
An LUA_TH structure containing the transmission header (TH) which accompanied the transmitted data. The following TH fields are returned:

 

flags_efi---The single-bit expedited flow indicator. 
 

 
 

flags_odai---The single-bit originating address field (OAF) destination address field (DAF) assignor indicator. 
 

 
 

flags_mpf---The 2-bit segmenting mapping field. 
 

 
 

flags_fid---The 4-bit format identification type field. 
 

 
 

daf---The destination address field. 
 

 
 

oaf---The originating address field. 
 

 
 

snf---The sequence number field.  This field contains the sequence number of the last-in-chain request/response unit. 

 
 
 
 

common.lua_rh
 
 
An LUA_RH structure containing the request/response header (RH) which accompanied the transmitted data.  Except for the ri field, the returned fields are a composite of all RUs in the data chain. The ri field is the status of this field in the last-in-chain RU. 

 

 
The following RH fields are returned:

 

eci---The end chain indicator. 
 

 
 

bci---The begin chain indicator. 
 

 
 

sdi---The sense data included indicator. 
 

 
 

fi---The format indicator. 
 

 
 

ruc---The request unit category. 
 

 
 

rri---The request-response indicator. 
 

 
 

pi---The pacing indicator. 
 

 
 

qri---The queued response indicator. 
 

 
 

ri---The exception response indicator (ERI) for requests or the response type indicator (RTI) for responses. 
 

 
 

dr2i---The definite response 2 indicator. 
 

 
 

dr1i---The definite response 1 indicator. 
 

 
 

pdi---The padded data indicator. 
 

 
 

edi---The enciphered data indicator. 
 

 
 

csi---The code selection indicator. 
 

 
 

cdi---The change direction indicator. 
 

 
 

ebi---The end bracket indicator. 
 

 
 

bbi---The begin bracket indicator. 

 
 
 

common.lua_flag2
 
 
An LUA_FLAG2 structure containing various flags that indicate how the interface executed the verb.  The following flags are returned:

 

async---If set, indicates that the interface is completing the verb asynchronously. 
 

 
 

sscp_exp---If set, indicates that the message was sent on the SSCP-expedited data flow. 
 

 
 

sscp_norm---If set, indicates that the message was sent on the SSCP-normal data flow. 
 

 
 

lu_exp---If set, indicates that the message was sent on the LU-expedited data flow. 
 

 
 

lu_norm---If set, indicates that the message was sent on the LU-normal data flow. 

 
 
 

specific.lua_sequence_number
 
 
An unsigned char array containing the sequence number of the transmitted message.  This parameter contains the sequence number of the first-in-chain request/response unit. 
 
 

Description

 
Parameter settings for the SLI_SEND verb depend on whether the LUA application is sending a request or a response. The LUA application can have up to two pending SLI_SEND verbs (each on a unique data flow).
 

Sending Requests

 
When sending requests, the LUA application must do the following:
 
 

1Set the common.lua_message_type parameter to
  specify the type of request being sent.
 

2Set the common.lua_rh fields as shown in the following
  table:
    .

LU_DATA
SSCP_DATA
      @BID
BIS
RTR
      @CHASE
QC
      @QEC
RELQ
SBI
SIG
      @RQR
      @LUSTAT_LU
LUSTAT_SSCP  
    FI
DR1I
DR2I
RI
BBI
EBI
CDI
 
      CDI
CSI
EDI
      @SDI
QRI
      @SDI
QRI
EBI
CDI
      @SDI
      @(None)
      @T{ SDI
QRI
DR1I
DR2I
RI
BBI
EBI
CDI T}     .TE

 
  .IP
 
  Note that the interface sets all other common.lua_rh fields not
  shown in the previous table.
 

3Set all common.lua_th fields to 0. Note that the interface
  sets all common.lua_th fields. 
 

4Set the common.lua_data_ptr parameter as shown in the following
  table:
    .

LU_DATA
SSCP_DATA
      @BID
BIS
RTR
      @CHASE
QC
      @QEC
RELQ
SBI
SIG
      @RQR
      @LUSTAT_LU
LUSTAT_SSCP  
    address or NULL if no data
      @NULL
      @NULL
      @NULL
      @NULL
      @T{ address or NULL if no data T}     .TE

 
 

5Set the common.lua_data_length parameter as shown in the
  following table:
    .

LU_DATA
SSCP_DATA
      @BID
BIS
RTR
      @CHASE
QC
      @QEC
RELQ
SBI
SIG
      @RQR
      @LUSTAT_LU
LUSTAT_SSCP  
    length or 0 if no data
      @0
      @0
      @0
      @0
      @T{ length or 0 if no data T}     .TE

 
 

6Set all flow flags in the common.lua_data_flag1 parameter
  to 0. Note that the interface sets the correct data flow automatically.
 

 
When the verb completes with the LUA_OK status, the specific.lua_sequence_number field contains the sequence number of the first-in-chain or only-in-chain request unit.  The common.lua_th_snf field contains the sequence number of the last-in-chain or only-in-chain request unit.  The sequence numbers are stored in MSB order. 
 

Sending Responses

 
When sending responses, the LUA application must do the following:
 
 

1Set the common.lua_message_type parameter to LUA_MESSAGE_TYPE_RSP. 
 

2Set the common.lua_th.snf field to the sequence number of the message to which the LUA application is responding. 
 

3Set the common.lua_flag1 to the appropriate flow. 
 

4For positive responses, set the common.lua_rh.ri flag to 0 and the common.lua_data_length parameter to 0. 

 
For negative responses, set the common.lua_rh.ri flag to 1, the common.lua_data_ptr parameter to the address of the sense data, and the common.lua_data_length parameter to the length of the sense data (always 4). 
 
 

Primary Return Codes

 

LUA_OK
 

 

LUA_CANCELLED
 

LUA_COMM_SUBSYSTEM_ABENDED
 

LUA_COMM_SUBSYSTEM_NOT_LOADED
 

LUA_IN_PROGRESS
 

LUA_INVALID_VERB
 

LUA_INVALID_VERB_SEGMENT
 

LUA_PARAMETER_CHECK
 

LUA_SESSION_FAILURE
 
 

LUA_STATE_CHECK
 

LUA_UNEXPECTED_DOS_ERROR
 

LUA_UNSUCCESSFUL
 
 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026