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