SLI_BID(3) — Subroutines
Name
SLI_BID − Receives an indication from the interface that an incoming message is available.
FORMAT
#include <lua_c.h>
void SLI(LUA_VERB_RECORD ∗sli_bid_vcb);
Parameter
sli_bid_vcb
A pointer to an LUA_VERB_RECORD structure appropriately initialized for the SLI_BID 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_BID_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_BID.
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_flag3
This parameter is not currently implemented. Any fields set are ignored.
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_data_length
An unsigned short value indicating the length of the peek data available in the specific.lua_peek_data parameter.
common.lua_th
An LUA_TH structure containing the transmission header (TH) which accompanied the received 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 received data. 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 next available message is on the SSCP-expedited data flow.
sscp_norm---If set, indicates that the next available message is on the SSCP-normal data flow.
lu_exp---If set, indicates that the next available message is on the LU-expedited data flow.
lu_norm---If set, indicates that the next available message is on the LU-normal data flow.
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_CANCEL
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
specific.open.lua_peek_data
An unsigned char array containing up to the first 12 bytes of the RU data. The actual number of bytes returned is indicated in the common.lua_data_length parameter.
Description
An LUA application can have only one SLI_BID pending for each LU. After the SLI_BID operation completes, the application can read the incoming data on the indicated data flow.
To reissue the SLI_BID verb, the LUA application can do one of the following:
•Reissue the SLI_BID referencing the SLI_BID verb control block.
•Issue an SLI_RECEIVE request with the lua_flag1.bid_enable parameter set to 1. See SLI_RECEIVE for additional information.
If data chaining is in use, SLI_BID completes after the first-in-chain request unit is received. Therefore, a subsequent SLI_RECEIVE will likely return a primary return code of LUA_IN_PROGRESS until all chain elements are received.
A special use of the SLI_BID verb allows the LUA interface to return session status to the LUA application. If the interface has session status to return, it sets the primary return code to LUA_STATUS and the secondary return to the session’s status. The LUA application must read this status before it can use any other verb (with the exceptions of SLI_CLOSE and SLI_SEND for the SSCP-LU data flow). The interface returns the following four status values:
•LUA_NOT_READY---Indicates that the interface received a CLEAR command or UNBIND command with a type value of X’01’ or X’02’ from the IBM system. As a result, the DIGITAL SNA gateway has suspended the underlying session.
•CLEAR suspends the session until the IBM system sends an SDT command.
•UNBIND type X’02’ suspends the session until the IBM system sends a BIND (possibly followed by STSN and SDT commands).
•If the LUA application opened the session with an SLI_OPEN verb whose specific.open.lua_session_type parameter was set to LUA_SESSION_TYPE_DEDICATED, an UNBIND type X’01’ functions like an UNBIND type X’02’. That is, it suspends the session until the IBM system sends a BIND (possibly followed by STSN and SDT commands).
After reading the LUA_NOT_READY status, the LUA application can send and receive SSCP-LU data.
•LUA_READY---Indicates that the underlying session is now ready for additional message flow.
•LUA_SESSION_END_REQUESTED---Indicates that the IBM system has sent a SHUTD command. This command requests the LUA application and the LUA interface to perform an orderly shutdown. The LUA application should issue an SLI_CLOSE verb with the lua_flag1.close_abend flag set to 0.
•LUA_INIT_COMPLETE---Indicates that the SSCP-LU session initialization processing has completed. The LUA application can now send and receive data on the SSCP-LU flow. The interface only returns this status when the LUA application opened the session with an SLI_OPEN verb whose specific.open.lua_init_type parameter was set to LUA_INIT_TYPE_PRIM_SSCP.
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