WinLua.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:36k
- /*****************************************************************************/
- /* winlua.h - include file for LUA API. */
- /* */
- /* (C) Copyright Data Connection Ltd. 1990 - 2000 */
- /* Copyright (c) Microsoft Corporation. All rights reserved. */
- /*****************************************************************************/
- #ifndef LUA_CH_INCLUDED
- #define LUA_CH_INCLUDED
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*****************************************************************************/
- /* define type conversion macros */
- /*****************************************************************************/
- #define LUA_LO_UC(w) ((unsigned char)(((unsigned short)(w)) & 0xFF))
- #define LUA_HI_UC(w) ((unsigned char)(((unsigned short)(w) >> 8)
- & 0xff))
- #define LUA_MAKUS(l, h) (((unsigned short)(l)) |
- ((unsigned short)(h)) << 8)
- #define LUA_MAKUL(l, h) ((unsigned long)(((unsigned short)(l))|
- ((unsigned long)((unsigned short)(h))) << 16))
- #define LUA_LO_US(l) ((unsigned short)(((unsigned long)(l)) & 0xFFFF))
- #define LUA_HI_US(l) ((unsigned short)(((unsigned long)(l) >> 16)
- & 0xffff))
- /*****************************************************************************/
- /* IF non-Intel THEN */
- /* set flipping to nop for now */
- /* reverse order of bit fields */
- /*****************************************************************************/
- #ifdef NON_INTEL_BYTE_ORDER
- #define LUA_FLIPI(X) (X)
- #define LUA_FLIPL(X) (X)
- #define LUA_FLIPRQD
- /*****************************************************************************/
- /* ELSE (Intel environment) */
- /* define flipping macros */
- /*****************************************************************************/
- #else
- #define LUA_FLIPI(X) LUA_MAKUS(LUA_HI_UC(X),LUA_LO_UC(X))
- #define LUA_FLIPL(X) LUA_MAKUL(LUA_FLIPI(LUA_HI_US(X)),
- LUA_FLIPI(LUA_LO_US(X)))
- #endif
- /*****************************************************************************/
- /* Keywords used for single sign-on. */
- /*****************************************************************************/
- #define SSO_3270_USERNAME "MS$SAMEU"
- #define SSO_3270_PASSWORD "MS$SAMEP"
- /*****************************************************************************/
- /* 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)
- #define LUA_OPCODE_SLI_RECEIVE_EX LUA_FLIPI(0x0800)
- #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 */
- /*****************************************************************************/
- /*****************************************************************************/
- /* If Win32 environment then ensure that packing is correct */
- /*****************************************************************************/
- #ifdef WIN32
- #pragma pack(4)
- #endif
- /*****************************************************************************/
- /* Transmission header structure */
- /*****************************************************************************/
- struct LUA_TH
- {
- #ifdef LUA_FLIPRQD
- 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
- 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
- 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
- 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
- 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
- #ifdef LUA_FLIPRQD
- 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
- 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
- #ifdef LUA_FLIPRQD
- 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
- 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
- };
- /*****************************************************************************/
- /* Structure for LUA_FLAG1 */
- /*****************************************************************************/
- struct LUA_FLAG1 /* LUA_FLAG1 */
- {
- #ifdef LUA_FLIPRQD
- 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
- 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
- };
- /*****************************************************************************/
- /* Structure for LUA_FLAG2 */
- /*****************************************************************************/
- struct LUA_FLAG2 /* LUA_FLAG2 */
- {
- #ifdef LUA_FLIPRQD
- 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
- 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
- };
- /*****************************************************************************/
- /* 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 */
- } ;
- /*****************************************************************************/
- /* 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
- /*****************************************************************************/
- /* 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;
- /*****************************************************************************/
- /* Return codes from WinLUA */
- /*****************************************************************************/
- #define WLUAINVALIDHANDLE 10
- #define WLUASTARTUPNOTCALLED 11
- #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
- #endif
- /*****************************************************************************/
- /* Function prototypes */
- /*****************************************************************************/
- #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,
- HANDLE hStatusHandle,
- DWORD dwNotifyType,
- BOOL bClearPrevious);
- int WINAPI GetLuaReturnCode (struct LUA_COMMON FAR *, UINT, unsigned char FAR *);
- #else
- void pascal far _loadds RUI (LUA_VERB_RECORD FAR *);
- #endif
- /*****************************************************************************/
- /* If Win32 environment then restore original packing format */
- /*****************************************************************************/
- #ifdef WIN32
- #pragma pack()
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif