692 lines
39 KiB
C
692 lines
39 KiB
C
/******************************************************************************/
|
|
/* lua_c.h - include file for SNAP-IX LUA API. */
|
|
/* (C) Copyright Data Connection Ltd. 1990 */
|
|
/******************************************************************************/
|
|
|
|
/*****************************************************************************/
|
|
/* Change History */
|
|
/* */
|
|
/*LUA* 15/05/91 LP This file new for LUA support */
|
|
/*L030* 12/09/91 LP Check for terminated apps in Windows environment */
|
|
/*512S* 25/11/91 LP Extend max # sessions allowed from 16 to 512 for OS/2 */
|
|
/*L055* 13/01/92 LP Move error codes to rui.c to keep lua_c.h like EE file*/
|
|
/*W32* 30/03/92 AD Win32 port */
|
|
/*9999 11/08/93 PP Fix LUA_INVALID_ADAPTED and add LUA_RESPONSE_ALREADY_ */
|
|
/* SENT */
|
|
/*9998 15/09/93 PP Pull substructures out */
|
|
/*l110 16/12/93 PP Add RUI_INIT status messages */
|
|
/*10396 29/04/98 PH Support SLI_SEND_EX (with ulong data_length) */
|
|
/* " 07/05/98 PH Support SLI_RECEIVE_EX */
|
|
/*****************************************************************************/
|
|
|
|
#ifndef LUA_CH_INCLUDED
|
|
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
|
|
#define LUA_CH_INCLUDED
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*************************************************************************W32*/
|
|
/* define type conversion macros *W32*/
|
|
/*************************************************************************W32*/
|
|
#define LUA_LO_UC(w) ((unsigned char)(((unsigned short)(w)) & 0xFF)) /*W32*/
|
|
#define LUA_HI_UC(w) ((unsigned char)(((unsigned short)(w) >> 8) \
|
|
& 0xff)) /*W32*/
|
|
#define LUA_MAKUS(l, h) (((unsigned short)(l)) | \
|
|
((unsigned short)(h)) << 8) /*W32*/
|
|
#define LUA_MAKUL(l, h) ((unsigned long)(((unsigned short)(l))| \
|
|
((unsigned long)((unsigned short)(h))) << 16))/*W32*/
|
|
#define LUA_LO_US(l) ((unsigned short)(((unsigned long)(l)) & 0xFFFF))/*W32*/
|
|
#define LUA_HI_US(l) ((unsigned short)(((unsigned long)(l) >> 16) \
|
|
& 0xffff)) /*W32*/
|
|
/*W32*/
|
|
/*************************************************************************W32*/
|
|
/* IF non-Intel THEN *W32*/
|
|
/* set flipping to nop for now *W32*/
|
|
/* reverse order of bit fields *W32*/
|
|
/*************************************************************************W32*/
|
|
#ifdef NON_INTEL_BYTE_ORDER /*W32*/
|
|
#define LUA_FLIPI(X) (X) /*W32*/
|
|
#define LUA_FLIPL(X) (X) /*W32*/
|
|
#define LUA_FLIPRQD /*W32*/
|
|
/*W32*/
|
|
/*************************************************************************W32*/
|
|
/* ELSE (Intel environment) *W32*/
|
|
/* define flipping macros *W32*/
|
|
/*************************************************************************W32*/
|
|
#else /*W32*/
|
|
#define LUA_FLIPI(X) LUA_MAKUS(LUA_HI_UC(X),LUA_LO_UC(X)) /*W32*/
|
|
#define LUA_FLIPL(X) LUA_MAKUL(LUA_FLIPI(LUA_HI_US(X)), \
|
|
LUA_FLIPI(LUA_LO_US(X))) /*W32*/
|
|
#endif /*W32*/
|
|
|
|
|
|
/*L055************************************************************************/
|
|
/*L055* Error codes moved to rui.c - 10 #defines deleted */
|
|
/*L055************************************************************************/
|
|
|
|
/*W32*************************************************************************/
|
|
/*W32* Make all constant definitions hardware independent */
|
|
/*W32*************************************************************************/
|
|
|
|
/*****************************************************************************/
|
|
/* LUA VERB TYPES */
|
|
/*****************************************************************************/
|
|
#define LUA_VERB_RUI LUA_FLIPI(0x5200)
|
|
#define LUA_VERB_SLI LUA_FLIPI(0x5200)
|
|
|
|
/*****************************************************************************/
|
|
/* LUA OPCODES ( RUI and SLI ) */
|
|
/*****************************************************************************/
|
|
#define LUA_OPCODE_RUI_INIT LUA_FLIPI(0x0180)
|
|
#define LUA_OPCODE_RUI_TERM LUA_FLIPI(0x0280)
|
|
#define LUA_OPCODE_RUI_READ LUA_FLIPI(0x0380)
|
|
#define LUA_OPCODE_RUI_WRITE LUA_FLIPI(0x0480)
|
|
#define LUA_OPCODE_RUI_PURGE LUA_FLIPI(0x0580)
|
|
#define LUA_OPCODE_RUI_BID LUA_FLIPI(0x0680)
|
|
|
|
#define LUA_OPCODE_SLI_OPEN LUA_FLIPI(0x0100)
|
|
#define LUA_OPCODE_SLI_CLOSE LUA_FLIPI(0x0200)
|
|
#define LUA_OPCODE_SLI_RECEIVE LUA_FLIPI(0x0300)
|
|
#define LUA_OPCODE_SLI_SEND LUA_FLIPI(0x0400)
|
|
#define LUA_OPCODE_SLI_PURGE LUA_FLIPI(0x0500)
|
|
#define LUA_OPCODE_SLI_BID LUA_FLIPI(0x0600)
|
|
#define LUA_OPCODE_SLI_SEND_EX LUA_FLIPI(0x0700) /* 10396: */
|
|
#define LUA_OPCODE_SLI_RECEIVE_EX LUA_FLIPI(0x0800) /* 10396: */
|
|
#define LUA_OPCODE_SLI_BIND_ROUTINE LUA_FLIPI(0x1100)
|
|
#define LUA_OPCODE_SLI_STSN_ROUTINE LUA_FLIPI(0x1200)
|
|
#define LUA_OPCODE_SLI_CRV_ROUTINE LUA_FLIPI(0x1300)
|
|
|
|
/*****************************************************************************/
|
|
/* LUA PRIMARY RETURN CODES */
|
|
/*****************************************************************************/
|
|
#define LUA_OK 0x0000
|
|
#define LUA_PARAMETER_CHECK LUA_FLIPI(0x0001)
|
|
#define LUA_STATE_CHECK LUA_FLIPI(0x0002)
|
|
#define LUA_SESSION_FAILURE LUA_FLIPI(0x000F)
|
|
#define LUA_UNSUCCESSFUL LUA_FLIPI(0x0014)
|
|
#define LUA_NEGATIVE_RSP LUA_FLIPI(0x0018)
|
|
#define LUA_CANCELLED LUA_FLIPI(0x0021)
|
|
#define LUA_IN_PROGRESS LUA_FLIPI(0x0030)
|
|
#define LUA_STATUS LUA_FLIPI(0x0040)
|
|
#define LUA_COMM_SUBSYSTEM_ABENDED LUA_FLIPI(0xF003)
|
|
#define LUA_COMM_SUBSYSTEM_NOT_LOADED LUA_FLIPI(0xF004)
|
|
#define LUA_INVALID_VERB_SEGMENT LUA_FLIPI(0xF008)
|
|
#define LUA_UNEXPECTED_DOS_ERROR LUA_FLIPI(0xF011)
|
|
#define LUA_STACK_TOO_SMALL LUA_FLIPI(0xF015)
|
|
#define LUA_INVALID_VERB 0xFFFF
|
|
|
|
/*****************************************************************************/
|
|
/* LUA SECONDARY RETURN CODES */
|
|
/*****************************************************************************/
|
|
#define LUA_SEC_RC_OK LUA_FLIPL(0x00000000)
|
|
#define LUA_INVALID_LUNAME LUA_FLIPL(0x00000001)
|
|
#define LUA_BAD_SESSION_ID LUA_FLIPL(0x00000002)
|
|
#define LUA_DATA_TRUNCATED LUA_FLIPL(0x00000003)
|
|
#define LUA_BAD_DATA_PTR LUA_FLIPL(0x00000004)
|
|
#define LUA_DATA_SEG_LENGTH_ERROR LUA_FLIPL(0x00000005)
|
|
#define LUA_RESERVED_FIELD_NOT_ZERO LUA_FLIPL(0x00000006)
|
|
#define LUA_INVALID_POST_HANDLE LUA_FLIPL(0x00000007)
|
|
#define LUA_PURGED LUA_FLIPL(0x0000000C)
|
|
#define LUA_BID_VERB_SEG_ERROR LUA_FLIPL(0x0000000F)
|
|
#define LUA_NO_PREVIOUS_BID_ENABLED LUA_FLIPL(0x00000010)
|
|
#define LUA_NO_DATA LUA_FLIPL(0x00000011)
|
|
#define LUA_BID_ALREADY_ENABLED LUA_FLIPL(0x00000012)
|
|
#define LUA_VERB_RECORD_SPANS_SEGMENTS LUA_FLIPL(0x00000013)
|
|
#define LUA_INVALID_FLOW LUA_FLIPL(0x00000014)
|
|
#define LUA_NOT_ACTIVE LUA_FLIPL(0x00000015)
|
|
#define LUA_VERB_LENGTH_INVALID LUA_FLIPL(0x00000016)
|
|
#define LUA_REQUIRED_FIELD_MISSING LUA_FLIPL(0x00000019)
|
|
#define LUA_READY LUA_FLIPL(0x00000030)
|
|
#define LUA_NOT_READY LUA_FLIPL(0x00000031)
|
|
#define LUA_INIT_COMPLETE LUA_FLIPL(0x00000032)
|
|
#define LUA_SESSION_END_REQUESTED LUA_FLIPL(0x00000033)
|
|
#define LUA_NO_SLI_SESSION LUA_FLIPL(0x00000034)
|
|
#define LUA_SESSION_ALREADY_OPEN LUA_FLIPL(0x00000035)
|
|
#define LUA_INVALID_OPEN_INIT_TYPE LUA_FLIPL(0x00000036)
|
|
#define LUA_INVALID_OPEN_DATA LUA_FLIPL(0x00000037)
|
|
#define LUA_UNEXPECTED_SNA_SEQUENCE LUA_FLIPL(0x00000038)
|
|
#define LUA_NEG_RSP_FROM_BIND_ROUTINE LUA_FLIPL(0x00000039)
|
|
#define LUA_NEG_RSP_FROM_CRV_ROUTINE LUA_FLIPL(0x0000003A)
|
|
#define LUA_NEG_RSP_FROM_STSN_ROUTINE LUA_FLIPL(0x0000003B)
|
|
#define LUA_CRV_ROUTINE_REQUIRED LUA_FLIPL(0x0000003C)
|
|
#define LUA_STSN_ROUTINE_REQUIRED LUA_FLIPL(0x0000003D)
|
|
#define LUA_INVALID_OPEN_ROUTINE_TYPE LUA_FLIPL(0x0000003E)
|
|
#define LUA_MAX_NUMBER_OF_SENDS LUA_FLIPL(0x0000003F)
|
|
#define LUA_SEND_ON_FLOW_PENDING LUA_FLIPL(0x00000040)
|
|
#define LUA_INVALID_MESSAGE_TYPE LUA_FLIPL(0x00000041)
|
|
#define LUA_RECEIVE_ON_FLOW_PENDING LUA_FLIPL(0x00000042)
|
|
#define LUA_DATA_LENGTH_ERROR LUA_FLIPL(0x00000043)
|
|
#define LUA_CLOSE_PENDING LUA_FLIPL(0x00000044)
|
|
#define LUA_NEGATIVE_RSP_CHASE LUA_FLIPL(0x00000046)
|
|
#define LUA_NEGATIVE_RSP_SHUTC LUA_FLIPL(0x00000047)
|
|
#define LUA_NEGATIVE_RSP_RSHUTD LUA_FLIPL(0x00000048)
|
|
#define LUA_NO_RECEIVE_TO_PURGE LUA_FLIPL(0x0000004A)
|
|
#define LUA_CANCEL_COMMAND_RECEIVED LUA_FLIPL(0x0000004D)
|
|
#define LUA_RUI_WRITE_FAILURE LUA_FLIPL(0x0000004E)
|
|
#define LUA_SLI_BID_PENDING LUA_FLIPL(0x00000051)
|
|
#define LUA_SLI_PURGE_PENDING LUA_FLIPL(0x00000052)
|
|
#define LUA_PROCEDURE_ERROR LUA_FLIPL(0x00000053)
|
|
#define LUA_INVALID_SLI_ENCR_OPTION LUA_FLIPL(0x00000054)
|
|
#define LUA_RECEIVED_UNBIND LUA_FLIPL(0x00000055)
|
|
#define LUA_DATA_INCOMPLETE LUA_FLIPL(0x00000060)
|
|
#define LUA_SLI_LOGIC_ERROR LUA_FLIPL(0x0000007F)
|
|
#define LUA_TERMINATED LUA_FLIPL(0x00000080)
|
|
#define LUA_NO_RUI_SESSION LUA_FLIPL(0x00000081)
|
|
#define LUA_DUPLICATE_RUI_INIT LUA_FLIPL(0x00000082)
|
|
#define LUA_INVALID_PROCESS LUA_FLIPL(0x00000083)
|
|
#define LUA_API_MODE_CHANGE LUA_FLIPL(0x00000085)
|
|
#define LUA_COMMAND_COUNT_ERROR LUA_FLIPL(0x00000087)
|
|
#define LUA_NO_READ_TO_PURGE LUA_FLIPL(0x00000088)
|
|
#define LUA_MULTIPLE_WRITE_FLOWS LUA_FLIPL(0x00000089)
|
|
#define LUA_DUPLICATE_READ_FLOW LUA_FLIPL(0x0000008A)
|
|
#define LUA_DUPLICATE_WRITE_FLOW LUA_FLIPL(0x0000008B)
|
|
#define LUA_LINK_NOT_STARTED LUA_FLIPL(0x0000008C)
|
|
#define LUA_INVALID_ADAPTER LUA_FLIPL(0x0000008D)
|
|
#define LUA_ENCR_DECR_LOAD_ERROR LUA_FLIPL(0x0000008E)
|
|
#define LUA_ENCR_DECR_PROC_ERROR LUA_FLIPL(0x0000008F)
|
|
#define LUA_NEG_NOTIFY_RSP LUA_FLIPL(0x000000BE)
|
|
#define LUA_RUI_LOGIC_ERROR LUA_FLIPL(0x000000BF)
|
|
#define LUA_LU_INOPERATIVE LUA_FLIPL(0x000000FF)
|
|
|
|
/*****************************************************************************/
|
|
/* THE FOLLOWING SECONDARY RETURN CODES ARE SNA SENSE CODES */
|
|
/*****************************************************************************/
|
|
#define LUA_NON_UNIQ_ID LUA_FLIPL(0xC0001001)
|
|
#define LUA_NON_UNIQ_NAU_AD LUA_FLIPL(0xC0001002)
|
|
#define LUA_INV_NAU_ADDR LUA_FLIPL(0xC0002001)
|
|
#define LUA_INV_ADPT_NUM LUA_FLIPL(0xC0002002)
|
|
|
|
#define LUA_RESOURCE_NOT_AVAILABLE LUA_FLIPL(0x08010000)
|
|
#define LUA_SESSION_LIMIT_EXCEEDED LUA_FLIPL(0x08050000)
|
|
#define LUA_SLU_SESSION_LIMIT_EXCEEDED LUA_FLIPL(0x0805000A)
|
|
#define LUA_MODE_INCONSISTENCY LUA_FLIPL(0x08090000)
|
|
#define LUA_BRACKET_RACE_ERROR LUA_FLIPL(0x080B0000)
|
|
#define LUA_INSUFFICIENT_RESOURCES LUA_FLIPL(0x08120000)
|
|
#define LUA_BB_REJECT_NO_RTR LUA_FLIPL(0x08130000)
|
|
#define LUA_BB_REJECT_RTR LUA_FLIPL(0x08140000)
|
|
#define LUA_RECEIVER_IN_TRANSMIT_MODE LUA_FLIPL(0x081B0000)
|
|
#define LUA_REQUEST_NOT_EXECUTABLE LUA_FLIPL(0x081C0000)
|
|
#define LUA_INVALID_SESSION_PARAMETERS LUA_FLIPL(0x08210000)
|
|
#define LUA_UNIT_OF_WORK_ABORTED LUA_FLIPL(0x08240000)
|
|
#define LUA_FM_FUNCTION_NOT_SUPPORTED LUA_FLIPL(0x08260000)
|
|
#define LUA_LU_COMPONENT_DISCONNECTED LUA_FLIPL(0x08310000)
|
|
#define LUA_INVALID_PARAMETER_FLAGS LUA_FLIPL(0x08330000)
|
|
#define LUA_INVALID_PARAMETER LUA_FLIPL(0x08350000)
|
|
#define LUA_NEGOTIABLE_BIND_ERROR LUA_FLIPL(0x08350001)
|
|
#define LUA_BIND_FM_PROFILE_ERROR LUA_FLIPL(0x08350002)
|
|
#define LUA_BIND_TS_PROFILE_ERROR LUA_FLIPL(0x08350003)
|
|
#define LUA_BIND_LU_TYPE_ERROR LUA_FLIPL(0x0835000E)
|
|
#define LUA_CRYPTOGRAPHY_INOPERATIVE LUA_FLIPL(0x08480000)
|
|
#define LUA_REQ_RESOURCES_NOT_AVAIL LUA_FLIPL(0x084B0000)
|
|
#define LUA_SSCP_LU_SESSION_NOT_ACTIVE LUA_FLIPL(0x08570000)
|
|
#define LUA_SYNC_EVENT_RESPONSE LUA_FLIPL(0x08670000)
|
|
#define LUA_REC_CORR_TABLE_FULL LUA_FLIPL(0x08780001)
|
|
#define LUA_SEND_CORR_TABLE_FULL LUA_FLIPL(0x08780002)
|
|
#define LUA_SESSION_SERVICE_PATH_ERROR LUA_FLIPL(0x087D0000)
|
|
|
|
#define LUA_RU_DATA_ERROR LUA_FLIPL(0x10010000)
|
|
#define LUA_RU_LENGTH_ERROR LUA_FLIPL(0x10020000)
|
|
#define LUA_FUNCTION_NOT_SUPPORTED LUA_FLIPL(0x10030000)
|
|
#define LUA_HDX_BRACKET_STATE_ERROR LUA_FLIPL(0x10050121)
|
|
#define LUA_RESPONSE_ALREADY_SENT LUA_FLIPL(0x10050122)
|
|
#define LUA_EXR_SENSE_INCORRECT LUA_FLIPL(0x10050123)
|
|
#define LUA_RESPONSE_OUT_OF_ORDER LUA_FLIPL(0x10050124)
|
|
#define LUA_CHASE_RESPONSE_REQUIRED LUA_FLIPL(0x10050125)
|
|
#define LUA_CATEGORY_NOT_SUPPORTED LUA_FLIPL(0x10070000)
|
|
|
|
#define LUA_INCORRECT_SEQUENCE_NUMBER LUA_FLIPL(0x20010000)
|
|
#define LUA_CHAINING_ERROR LUA_FLIPL(0x20020000)
|
|
#define LUA_BRACKET LUA_FLIPL(0x20030000)
|
|
#define LUA_DIRECTION LUA_FLIPL(0x20040000)
|
|
#define LUA_DATA_TRAFFIC_RESET LUA_FLIPL(0x20050000)
|
|
#define LUA_DATA_TRAFFIC_QUIESCED LUA_FLIPL(0x20060000)
|
|
#define LUA_DATA_TRAFFIC_NOT_RESET LUA_FLIPL(0x20070000)
|
|
#define LUA_NO_BEGIN_BRACKET LUA_FLIPL(0x20080000)
|
|
#define LUA_SC_PROTOCOL_VIOLATION LUA_FLIPL(0x20090000)
|
|
#define LUA_IMMEDIATE_REQ_MODE_ERROR LUA_FLIPL(0x200A0000)
|
|
#define LUA_QUEUED_RESPONSE_ERROR LUA_FLIPL(0x200B0000)
|
|
#define LUA_ERP_SYNC_EVENT_ERROR LUA_FLIPL(0x200C0000)
|
|
#define LUA_RSP_BEFORE_SENDING_REQ LUA_FLIPL(0x200D0000)
|
|
#define LUA_RSP_CORRELATION_ERROR LUA_FLIPL(0x200E0000)
|
|
#define LUA_RSP_PROTOCOL_ERROR LUA_FLIPL(0x200F0000)
|
|
|
|
#define LUA_INVALID_SC_OR_NC_RH LUA_FLIPL(0x40010000)
|
|
#define LUA_BB_NOT_ALLOWED LUA_FLIPL(0x40030000)
|
|
#define LUA_EB_NOT_ALLOWED LUA_FLIPL(0x40040000)
|
|
#define LUA_EXCEPTION_RSP_NOT_ALLOWED LUA_FLIPL(0x40060000)
|
|
#define LUA_DEFINITE_RSP_NOT_ALLOWED LUA_FLIPL(0x40070000)
|
|
#define LUA_PACING_NOT_SUPPORTED LUA_FLIPL(0x40080000)
|
|
#define LUA_CD_NOT_ALLOWED LUA_FLIPL(0x40090000)
|
|
#define LUA_NO_RESPONSE_NOT_ALLOWED LUA_FLIPL(0x400A0000)
|
|
#define LUA_CHAINING_NOT_SUPPORTED LUA_FLIPL(0x400B0000)
|
|
#define LUA_BRACKETS_NOT_SUPPORTED LUA_FLIPL(0x400C0000)
|
|
#define LUA_CD_NOT_SUPPORTED LUA_FLIPL(0x400D0000)
|
|
#define LUA_INCORRECT_USE_OF_FI LUA_FLIPL(0x400F0000)
|
|
#define LUA_ALTERNATE_CODE_NOT_SUPPORT LUA_FLIPL(0x40100000)
|
|
#define LUA_INCORRECT_RU_CATEGORY LUA_FLIPL(0x40110000)
|
|
#define LUA_INCORRECT_REQUEST_CODE LUA_FLIPL(0x40120000)
|
|
#define LUA_INCORRECT_SPEC_OF_SDI_RTI LUA_FLIPL(0x40130000)
|
|
#define LUA_INCORRECT_DR1I_DR2I_ERI LUA_FLIPL(0x40140000)
|
|
#define LUA_INCORRECT_USE_OF_QRI LUA_FLIPL(0x40150000)
|
|
#define LUA_INCORRECT_USE_OF_EDI LUA_FLIPL(0x40160000)
|
|
#define LUA_INCORRECT_USE_OF_PDI LUA_FLIPL(0x40170000)
|
|
|
|
#define LUA_NAU_INOPERATIVE LUA_FLIPL(0x80030000)
|
|
#define LUA_NO_SESSION LUA_FLIPL(0x80050000)
|
|
|
|
/*****************************************************************************/
|
|
/* LUA_RH.RUC masks */
|
|
/*****************************************************************************/
|
|
#define LUA_RH_FMD 0
|
|
#define LUA_RH_NC 1
|
|
#define LUA_RH_DFC 2
|
|
#define LUA_RH_SC 3
|
|
|
|
/*****************************************************************************/
|
|
/* LUA MESSAGE TYPES */
|
|
/*****************************************************************************/
|
|
#define LUA_MESSAGE_TYPE_LU_DATA 0x01
|
|
#define LUA_MESSAGE_TYPE_SSCP_DATA 0x11
|
|
#define LUA_MESSAGE_TYPE_RSP 0x02
|
|
#define LUA_MESSAGE_TYPE_BID 0xC8
|
|
#define LUA_MESSAGE_TYPE_BIND 0x31
|
|
#define LUA_MESSAGE_TYPE_BIS 0x70
|
|
#define LUA_MESSAGE_TYPE_CANCEL 0x83
|
|
#define LUA_MESSAGE_TYPE_CHASE 0x84
|
|
#define LUA_MESSAGE_TYPE_CLEAR 0xA1
|
|
#define LUA_MESSAGE_TYPE_CRV 0xD0
|
|
#define LUA_MESSAGE_TYPE_LUSTAT_LU 0x04
|
|
#define LUA_MESSAGE_TYPE_LUSTAT_SSCP 0x14
|
|
#define LUA_MESSAGE_TYPE_QC 0x81
|
|
#define LUA_MESSAGE_TYPE_QEC 0x80
|
|
#define LUA_MESSAGE_TYPE_RELQ 0x82
|
|
#define LUA_MESSAGE_TYPE_RQR 0xA3
|
|
#define LUA_MESSAGE_TYPE_RTR 0x05
|
|
#define LUA_MESSAGE_TYPE_SBI 0x71
|
|
#define LUA_MESSAGE_TYPE_SHUTD 0xC0
|
|
#define LUA_MESSAGE_TYPE_SIGNAL 0xC9
|
|
#define LUA_MESSAGE_TYPE_SDT 0xA0
|
|
#define LUA_MESSAGE_TYPE_STSN 0xA2
|
|
#define LUA_MESSAGE_TYPE_UNBIND 0x32
|
|
|
|
/*****************************************************************************/
|
|
/* LUA INIT TYPES (Used for SLI only) */
|
|
/*****************************************************************************/
|
|
#define LUA_INIT_TYPE_SEC_IS 0x01
|
|
#define LUA_INIT_TYPE_SEC_LOG 0x02
|
|
#define LUA_INIT_TYPE_PRIM 0x03
|
|
#define LUA_INIT_TYPE_PRIM_SSCP 0x04
|
|
|
|
/*****************************************************************************/
|
|
/* LUA SLI_OPEN EXTENSION ROUTINE TYPES */
|
|
/*****************************************************************************/
|
|
#define LUA_ROUTINE_TYPE_BIND 0x01
|
|
#define LUA_ROUTINE_TYPE_CRV 0x02
|
|
#define LUA_ROUTINE_TYPE_STSN 0x03
|
|
#define LUA_ROUTINE_TYPE_END 0x00
|
|
|
|
/*****************************************************************************/
|
|
/* LUA VERB RECORD STRUCTURES */
|
|
/*****************************************************************************/
|
|
|
|
|
|
/*************************************************************************W32*/
|
|
/* If Win32 environment then ensure that packing is correct *W32*/
|
|
/*************************************************************************W32*/
|
|
#ifdef WIN32 /*W32*/
|
|
#pragma pack(4) /*W32*/
|
|
#endif /*W32*/
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Transmission header structure */
|
|
/*****************************************************************************/
|
|
struct LUA_TH
|
|
{
|
|
#ifdef LUA_FLIPRQD /*W32*/
|
|
unsigned char flags_fid : 4; /* Format Identification Type 2*/
|
|
unsigned char flags_mpf : 2; /* Segmenting Mapping Field */
|
|
unsigned char flags_odai : 1; /* OAF-DAF Assignor Indicator */
|
|
unsigned char flags_efi : 1; /* Expedited Flow Indicator */
|
|
#else /*W32*/
|
|
unsigned char flags_efi : 1; /* Expedited Flow Indicator */
|
|
unsigned char flags_odai : 1; /* OAF-DAF Assignor Indicator */
|
|
unsigned char flags_mpf : 2; /* Segmenting Mapping Field */
|
|
unsigned char flags_fid : 4; /* Format Identification Type 2*/
|
|
#endif /*W32*/
|
|
unsigned char : 8; /* Reserved Field */
|
|
unsigned char daf; /* Destination Address Field */
|
|
unsigned char oaf; /* Originating Address Field */
|
|
unsigned char snf[2]; /* Sequence Number Field */
|
|
};
|
|
|
|
/*****************************************************************************/
|
|
/* Request/Response unit header strcuture */
|
|
/*****************************************************************************/
|
|
struct LUA_RH
|
|
{
|
|
#ifdef LUA_FLIPRQD /*W32*/
|
|
unsigned char rri : 1; /* Request-Response Indicator */
|
|
unsigned char ruc : 2; /* RU Category */
|
|
unsigned char : 1; /* Reserved Field */
|
|
unsigned char fi : 1; /* Format Indicator */
|
|
unsigned char sdi : 1; /* Sense Data Included Ind */
|
|
unsigned char bci : 1; /* Begin Chain Indicator */
|
|
unsigned char eci : 1; /* End Chain Indicator */
|
|
#else /*W32*/
|
|
unsigned char eci : 1; /* End Chain Indicator */
|
|
unsigned char bci : 1; /* Begin Chain Indicator */
|
|
unsigned char sdi : 1; /* Sense Data Included Ind */
|
|
unsigned char fi : 1; /* Format Indicator */
|
|
unsigned char : 1; /* Reserved Field */
|
|
unsigned char ruc : 2; /* RU Category */
|
|
unsigned char rri : 1; /* Request-Response Indicator */
|
|
#endif /*W32*/
|
|
|
|
#ifdef LUA_FLIPRQD /*W32*/
|
|
unsigned char dr1i : 1; /* DR 1 Indicator */
|
|
unsigned char : 1; /* Reserved Field */
|
|
unsigned char dr2i : 1; /* DR 2 Indicator */
|
|
unsigned char ri : 1; /* Response Indicator */
|
|
unsigned char : 2; /* Reserved Field */
|
|
unsigned char qri : 1; /* Queued Response Indicator */
|
|
unsigned char pi : 1; /* Pacing Indicator */
|
|
#else /*W32*/
|
|
unsigned char pi : 1; /* Pacing Indicator */
|
|
unsigned char qri : 1; /* Queued Response Indicator */
|
|
unsigned char : 2; /* Reserved Field */
|
|
unsigned char ri : 1; /* Response Indicator */
|
|
unsigned char dr2i : 1; /* DR 2 Indicator */
|
|
unsigned char : 1; /* Reserved Field */
|
|
unsigned char dr1i : 1; /* DR 1 Indicator */
|
|
#endif /*W32*/
|
|
|
|
#ifdef LUA_FLIPRQD /*W32*/
|
|
unsigned char bbi : 1; /* Begin Bracket Indicator */
|
|
unsigned char ebi : 1; /* End Bracket Indicator */
|
|
unsigned char cdi : 1; /* Change Direction Indicator */
|
|
unsigned char : 1; /* Reserved Field */
|
|
unsigned char csi : 1; /* Code Selection Indicator */
|
|
unsigned char edi : 1; /* Enciphered Data Indicator */
|
|
unsigned char pdi : 1; /* Padded Data Indicator */
|
|
unsigned char : 1; /* Reserved Field */
|
|
#else /*W32*/
|
|
unsigned char : 1; /* Reserved Field */
|
|
unsigned char pdi : 1; /* Padded Data Indicator */
|
|
unsigned char edi : 1; /* Enciphered Data Indicator */
|
|
unsigned char csi : 1; /* Code Selection Indicator */
|
|
unsigned char : 1; /* Reserved Field */
|
|
unsigned char cdi : 1; /* Change Direction Indicator */
|
|
unsigned char ebi : 1; /* End Bracket Indicator */
|
|
unsigned char bbi : 1; /* Begin Bracket Indicator */
|
|
#endif /*W32*/
|
|
};
|
|
|
|
/*****************************************************************************/
|
|
/* Structure for LUA_FLAG1 */
|
|
/*****************************************************************************/
|
|
struct LUA_FLAG1 /* LUA_FLAG1 */
|
|
{
|
|
#ifdef LUA_FLIPRQD /*W32*/
|
|
unsigned char bid_enable : 1; /* Bid Enabled Indicator */
|
|
unsigned char reserv1 : 1; /* reserved */
|
|
unsigned char close_abend : 1; /* Close Immediate Flag */
|
|
unsigned char nowait : 1; /* Don't Wait for Data Flag */
|
|
unsigned char sscp_exp : 1; /* SSCP expedited flow */
|
|
unsigned char sscp_norm : 1; /* SSCP normal flow */
|
|
unsigned char lu_exp : 1; /* LU expedited flow */
|
|
unsigned char lu_norm : 1; /* lu normal flow */
|
|
#else /*W32*/
|
|
unsigned char lu_norm : 1; /* lu normal flow */
|
|
unsigned char lu_exp : 1; /* LU expedited flow */
|
|
unsigned char sscp_norm : 1; /* SSCP normal flow */
|
|
unsigned char sscp_exp : 1; /* SSCP expedited flow */
|
|
unsigned char nowait : 1; /* Don't Wait for Data Flag */
|
|
unsigned char close_abend : 1; /* Close Immediate Flag */
|
|
unsigned char reserv1 : 1; /* reserved */
|
|
unsigned char bid_enable : 1; /* Bid Enabled Indicator */
|
|
#endif /*W32*/
|
|
};
|
|
/*****************************************************************************/
|
|
/* Structure for LUA_FLAG2 */
|
|
/*****************************************************************************/
|
|
struct LUA_FLAG2 /* LUA_FLAG2 */
|
|
{
|
|
#ifdef LUA_FLIPRQD /*W32*/
|
|
unsigned char bid_enable : 1; /* Bid Enabled Indicator */
|
|
unsigned char async : 1; /* flags asynchronous verb
|
|
completion */
|
|
unsigned char : 2; /* reserved */
|
|
unsigned char sscp_exp : 1; /* SSCP expedited flow */
|
|
unsigned char sscp_norm : 1; /* SSCP normal flow */
|
|
unsigned char lu_exp : 1; /* LU expedited flow */
|
|
unsigned char lu_norm : 1; /* lu normal flow */
|
|
#else /*W32*/
|
|
unsigned char lu_norm : 1; /* lu normal flow */
|
|
unsigned char lu_exp : 1; /* LU expedited flow */
|
|
unsigned char sscp_norm : 1; /* SSCP normal flow */
|
|
unsigned char sscp_exp : 1; /* SSCP expedited flow */
|
|
unsigned char : 2; /* reserved */
|
|
unsigned char async : 1; /* flags asynchronous verb
|
|
completion */
|
|
unsigned char bid_enable : 1; /* Bid Enabled Indicator */
|
|
#endif /*W32*/
|
|
};
|
|
|
|
/*****************************************************************************/
|
|
/* Structure for common verb header */
|
|
/*****************************************************************************/
|
|
struct LUA_COMMON
|
|
{
|
|
unsigned short lua_verb; /* Verb Code */
|
|
unsigned short lua_verb_length; /* Length of Verb Record */
|
|
unsigned short lua_prim_rc; /* Primary Return Code */
|
|
unsigned long lua_sec_rc; /* Secondary Return Code */
|
|
unsigned short lua_opcode; /* Verb Operation Code */
|
|
unsigned long lua_correlator; /* User Correlation Field */
|
|
unsigned char lua_luname[8]; /* Local LU Name */
|
|
unsigned short lua_extension_list_offset; /* Offset of DLL Extention Lis*/
|
|
unsigned short lua_cobol_offset; /* Offset of Cobol Extension */
|
|
unsigned long lua_sid; /* Session ID */
|
|
unsigned short lua_max_length; /* Receive Buffer Length */
|
|
unsigned short lua_data_length; /* Data Length */
|
|
char far *lua_data_ptr; /* Data Buffer Pointer */
|
|
unsigned long lua_post_handle; /* Posting handle */
|
|
|
|
struct LUA_TH lua_th; /* LUA TH Fields */
|
|
|
|
struct LUA_RH lua_rh; /* LUA RH Fields */
|
|
|
|
struct LUA_FLAG1 lua_flag1; /* LUA_FLAG1 */
|
|
|
|
unsigned char lua_message_type; /* sna message command type */
|
|
|
|
struct LUA_FLAG2 lua_flag2; /* LUA_FLAG2 */
|
|
|
|
unsigned char lua_resv56[7]; /* Reserved Field */
|
|
unsigned char lua_encr_decr_option; /* Cryptography Option */
|
|
} ;
|
|
|
|
|
|
/******************* COMMAND SPECIFIC VERB DEFINITIONS ***************/
|
|
|
|
/*****************************************************************************/
|
|
/* Structure for extension routines */
|
|
/*****************************************************************************/
|
|
struct LUA_EXT_ENTRY
|
|
{
|
|
unsigned char lua_routine_type; /* Extension Routine Type */
|
|
unsigned char lua_module_name[9]; /* Extension Module Name */
|
|
unsigned char lua_procedure_name[33]; /* Extension Procedure Name */
|
|
} ;
|
|
|
|
/*****************************************************************************/
|
|
/* LUA SPECIFIC FIELDS FOR THE SLI_OPEN VERB */
|
|
/*****************************************************************************/
|
|
struct SLI_OPEN
|
|
{
|
|
unsigned char lua_init_type; /* Type of Session Initiation */
|
|
unsigned char lua_resv65; /* Reserved Field */
|
|
unsigned short lua_wait; /* Secondary Retry Wait Time */
|
|
|
|
struct LUA_EXT_ENTRY lua_open_extension[3];
|
|
|
|
unsigned char lua_ending_delim; /* Extension List Delimiter */
|
|
} ;
|
|
|
|
/*****************************************************************************/
|
|
/* 10396: LUA Specific fields for the SLI_SEND, SLI_SEND_EX verbs */
|
|
/* LUA SPECIFIC FIELDS FOR THE SLI_OPEN, SLI_SEND, RUI_BID AND SLI_BID VERBS */
|
|
/* */
|
|
/* !!!NOTE!!! - MUST Keep lua_sequence_number[2] the first field in the */
|
|
/* SLI_SEND_EX_SPECIFIC structure */
|
|
/* */
|
|
/* To support backward compatibility for Applications, the */
|
|
/* lua_sequence_number array is included both in the union itself and as the */
|
|
/* FIRST element of the SLI_SEND_EX_SPECIFIC structure (thus it refers to */
|
|
/* exactly the same variable in both cases.) */
|
|
/*****************************************************************************/
|
|
struct SLI_SEND_EX_SPECIFIC
|
|
{
|
|
unsigned char lua_sequence_number[2]; /* This field **MUST** be first */
|
|
unsigned long lua_data_length_ex; /* data length field for SLI_SEND_EX */
|
|
} ;
|
|
|
|
struct SLI_RECEIVE_EX_SPECIFIC
|
|
{
|
|
unsigned long lua_max_length_ex; /* max buffer for SLI_RECEIVE_EX */
|
|
unsigned long lua_data_length_ex; /* data length for SLI_RECEIVE_EX */
|
|
} ;
|
|
|
|
|
|
union LUA_SPECIFIC
|
|
{
|
|
struct SLI_OPEN open;
|
|
unsigned char lua_sequence_number[2]; /* sequence number */
|
|
struct SLI_SEND_EX_SPECIFIC send; /* extra length fields */
|
|
struct SLI_RECEIVE_EX_SPECIFIC receive; /* extra length fields */
|
|
unsigned char lua_peek_data[12]; /* Data Pending */
|
|
} ;
|
|
|
|
/*****************************************************************************/
|
|
/* GENERIC LUA VERB RECORD TYPEDEF DECLARATION */
|
|
/*****************************************************************************/
|
|
typedef struct
|
|
{
|
|
struct LUA_COMMON common; /* common verb header command */
|
|
union LUA_SPECIFIC specific; /* command specific portion of record */
|
|
} LUA_VERB_RECORD;
|
|
|
|
|
|
|
|
#if (defined WINDOWS) || (defined WIN32)
|
|
|
|
#ifdef WIN32
|
|
// The callback routine registered by the TN3270 Service
|
|
typedef BOOL (__stdcall *TN3270SERVICECALLBACK)(unsigned long);
|
|
#endif // #ifdef WIN32
|
|
|
|
/*****************************************************************************/
|
|
/*WLUA* Return codes from WinLUAStartup */
|
|
/*****************************************************************************/
|
|
#define WLUASYSNOTREADY 1
|
|
#define WLUAVERNOTSUPPORTED 2
|
|
#define WLUAINVALID 3
|
|
#define WLUAFAILURE 4
|
|
#define WLUAINITREJECT 5
|
|
|
|
#define WLUADESCRIPTION_LEN 40
|
|
|
|
typedef struct
|
|
{
|
|
WORD wVersion;
|
|
char szDescription[WLUADESCRIPTION_LEN + 1];
|
|
} LUADATA;
|
|
|
|
/*****************************************************************************/
|
|
/*WLUA* Return codes from WinLUA */
|
|
/*****************************************************************************/
|
|
#define WLUAINVALIDHANDLE 10
|
|
#define WLUASTARTUPNOTCALLED 11
|
|
/*l110************************************************************************/
|
|
/*l110* New codes for RUI_INIT status messages */
|
|
/*l110************************************************************************/
|
|
#define WLUALINKINACTIVE 12
|
|
#define WLUALINKACTIVATING 13
|
|
#define WLUAPUINACTIVE 14
|
|
#define WLUAPUACTIVE 15
|
|
#define WLUAPUREACTIVATED 16
|
|
#define WLUALUINACTIVE 17
|
|
#define WLUALUACTIVE 18
|
|
#define WLUALUREACTIVATED 19
|
|
#define WLUASIDINVALID 20
|
|
#define WLUASIDZERO 21
|
|
#define WLUAALREADYACTIVE 22
|
|
#define WLUANTFYINVALID 23
|
|
#define WLUAGLOBALHANDLER 24
|
|
#define WLUAGETLU 25
|
|
#define WLUAUNKNOWN 255
|
|
|
|
|
|
#define WLUA_NTFY_EVENT 1
|
|
#define WLUA_NTFY_MSG_CORRELATOR 2
|
|
#define WLUA_NTFY_MSG_SID 3
|
|
/*l110************************************************************************/
|
|
/*l110* End changes */
|
|
/*l110************************************************************************/
|
|
|
|
|
|
#endif
|
|
|
|
/*WLUA************************************************************************/
|
|
/*WLUA* Function prototypes */
|
|
/*WLUA************************************************************************/
|
|
#ifdef WIN32
|
|
#define LOADDS
|
|
#else
|
|
#define LOADDS _loadds
|
|
#endif
|
|
#if (defined WINDOWS) || (defined WIN32)
|
|
|
|
int WINAPI LOADDS WinRUI (HWND, LUA_VERB_RECORD FAR *);
|
|
int WINAPI LOADDS WinSLI (HWND, LUA_VERB_RECORD FAR *);
|
|
BOOL WINAPI LOADDS WinRUICleanup (void);
|
|
BOOL WINAPI LOADDS WinSLICleanup (void);
|
|
int WINAPI LOADDS WinRUIStartup (WORD, LUADATA FAR *);
|
|
int WINAPI LOADDS WinSLIStartup (WORD, LUADATA FAR *);
|
|
void WINAPI LOADDS RUI (LUA_VERB_RECORD FAR *);
|
|
void WINAPI LOADDS RUI_CALL (LUA_VERB_RECORD FAR *);
|
|
void WINAPI LOADDS SLI (LUA_VERB_RECORD FAR *);
|
|
|
|
int WINAPI LOADDS WinRUIGetLastInitStatus (DWORD dwSid, /*l110*/
|
|
HANDLE hStatusHandle, /*l110*/
|
|
DWORD dwNotifyType, /*l110*/
|
|
BOOL bClearPrevious); /*l110*/
|
|
int WINAPI GetLuaReturnCode (struct LUA_COMMON FAR *, UINT, unsigned char FAR *);
|
|
|
|
#else
|
|
void pascal far _loadds RUI (LUA_VERB_RECORD FAR *);
|
|
#endif
|
|
|
|
|
|
/*************************************************************************W32*/
|
|
/* If Win32 environment then restore original packing format *W32*/
|
|
/*************************************************************************W32*/
|
|
#ifdef WIN32 /*W32*/
|
|
#pragma pack() /*W32*/
|
|
#endif /*W32*/
|
|
|
|
/*****************************************************************************/
|
|
/* RUI ENTRY POINT DECLARATION */
|
|
/*PORT* Remove prototype defintions since EE header file does not have any */
|
|
/*****************************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#pragma option pop /*P_O_Pop*/
|
|
#endif
|