/**MOD+***********************************************************************/ /* Module: acsmgtc.c */ /* */ /* Purpose: header file for CNOS and DISPLAY API structures */ /* */ /* (C) COPYRIGHT DATA CONNECTION LIMITED 1991, 1992 */ /* */ /**MOD-***********************************************************************/ #ifndef ACSMGTCH_INCLUDED #pragma option push -b -a8 -pc -A- /*P_O_Push*/ #define ACSMGTCH_INCLUDED /*****************************************************************************/ /* Change for ES1.0 which also defines luw_id_overlay */ /*****************************************************************************/ #include #ifdef __cplusplus extern "C" { #endif /*****************************************************************************/ /* Ensure the correct packing of structures */ /*****************************************************************************/ #ifdef WIN32 #pragma pack(4) #endif /*****************************************************************************/ /* Definitions from APPCDEF.H file (retired) */ /*****************************************************************************/ typedef struct fqpcid_overlay { unsigned char unique_proc_id[8]; /* Unique procedure identifier */ unsigned char fq_length; /* Length of Fully Qualified Name */ unsigned char fq_name[17]; /* Fully Qualified Name (EBCDIC) */ /* 1-17 bytes (EBCDIC type A) */ } FQPCID_OVERLAY; typedef struct alt_alias_overlay { unsigned char alt_plu_alias[8]; /* Alternate Partner LU Alias (ASCII */ /* 1-8 bytes */ } ALT_ALIAS_OVERLAY; #define MGT_LO_UC(w) ((unsigned char)(((unsigned short)(w)) & 0xFF)) #define MGT_HI_UC(w) ((unsigned char)(((unsigned short)(w) >> 8) & 0xff)) #define MGT_MAKUS(l, h) (((unsigned short)(l)) | ((unsigned short)(h)) << 8) #define MGT_MAKUL(l, h) ((unsigned long)(((unsigned short)(l))| \ ((unsigned long)((unsigned short)(h))) << 16)) #define MGT_LO_US(l) ((unsigned short)(((unsigned long)(l)) & 0xFFFF)) #define MGT_HI_US(l) ((unsigned short)(((unsigned long)(l) >> 16) \ & 0xffff)) /*****************************************************************************/ /* CONSTFLIP macros. Ordinary flipping macros include function calls and so */ /* PFLIPI(constant) does not appear constant to the compiler */ /*****************************************************************************/ #ifdef NON_INTEL_BYTE_ORDER #define CONSTFLIPI(X) (X) #define CONSTFLIPL(X) (X) /*****************************************************************************/ /* ELSE (Intel environment) */ /* define flipping macros */ /*****************************************************************************/ #else #define CONSTFLIPI(X) MGT_MAKUS(MGT_HI_UC(X),MGT_LO_UC(X)) #define CONSTFLIPL(X) MGT_MAKUL(CONSTFLIPI(MGT_HI_US(X)), \ CONSTFLIPI(MGT_LO_US(X))) #endif /*****************************************************************************/ /* Primary Return Codes */ /*****************************************************************************/ #define AP_CNOS_LOCAL_RACE_REJECT CONSTFLIPI(0x0017) /* 0017 */ #define AP_CNOS_PARTNER_LU_REJECT CONSTFLIPI(0x0018) /* 0018 */ #define AP_INVALID_KEY CONSTFLIPI(0xF020) /* F020 */ /*****************************************************************************/ /* Secondary Return Codes */ /*****************************************************************************/ #define AP_ALL_MODE_MUST_RESET CONSTFLIPL(0x00000153L) #define AP_AUTOACT_EXCEEDS_SESSLIM CONSTFLIPL(0x00000152L) #define AP_BAD_MODE_NAME CONSTFLIPL(0x00000157L) #define AP_BAD_SNASVCMG_LIMITS CONSTFLIPL(0x00000154L) #define AP_CANT_RAISE_LIMITS CONSTFLIPL(0x00000151L) #define AP_CHANGE_SRC_DRAINS CONSTFLIPL(0x0000015DL) #define AP_CNOS_ACCEPTED CONSTFLIPL(0x00000000L) #define AP_CNOS_COMMAND_RACE_REJECT CONSTFLIPL(0x0000015FL) #define AP_CNOS_IMPLICIT_PARALLEL CONSTFLIPL(0x00000150L) #define AP_CNOS_MODE_CLOSED CONSTFLIPL(0x00000156L) #define AP_CNOS_MODE_NAME_REJECT CONSTFLIPL(0x00000157L) #define AP_CNOS_NEGOTIATED CONSTFLIPL(0x00000007L) #define AP_CPSVCMG_MODE_NOT_ALLOWED CONSTFLIPL(0x00000519L) #define AP_EXCEEDS_MAX_ALLOWED CONSTFLIPL(0x0000015CL) #define AP_LU_DETACHED CONSTFLIPL(0x0000015EL) #define AP_MIN_GT_TOTAL CONSTFLIPL(0x00000155L) #define AP_MODE_CLOSED CONSTFLIPL(0x00000156L) #define AP_RESET_SNA_DRAINS CONSTFLIPL(0x00000159L) #define AP_SINGLE_NOT_SRC_RESP CONSTFLIPL(0x0000015AL) #define AP_SNASVCMG_RESET_NOT_ALLOWED CONSTFLIPL(0x00000167L) #define AP_DISPLAY_INFO_EXCEEDS_LEN CONSTFLIPL(0x000001B4L) #define AP_DISPLAY_INVALID_CONSTANT CONSTFLIPL(0x000001B5L) /*****************************************************************************/ /* Parameter values */ /*****************************************************************************/ #define AP_SOURCE (0x00) #define AP_TARGET (0x01) #define AP_ONE (0x00) #define AP_ALL (0x01) #define AP_QUEUED_OPERATOR_STARTED (0x00) #define AP_QUEUED_AM_STARTED (0x01) #define AP_NONQUEUED_AM_STARTED (0x02) #define AP_QUEUED_OPERATOR_PRELOADED (0x03) #define AP_BACKGROUND (0x00) #define AP_FULL_SCREEN (0x01) #define AP_PRESENTATION_MANAGER (0x02) #define AP_VIO_WINDOWABLE (0x03) #define AP_LEARN (0x00) #define AP_LEN (0x01) #define AP_NN (0x02) #define AP_EN (0x03) #define AP_SEC_NONSECURE (0x01) #define AP_SEC_PUBLIC_SWITCHED_NETWORK (0x20) #define AP_SEC_UNDERGROUND_CABLE (0x40) #define AP_SEC_SECURE_CONDUIT (0x60) #define AP_SEC_GUARDED_CONDUIT (0x80) #define AP_SEC_ENCRYPTED (0xA0) #define AP_SEC_GUARDED_RADIATION (0xC0) #define AP_SEC_MAXIMUM (0xFF) #define AP_PROP_DELAY_MINIMUM (0x00) #define AP_PROP_DELAY_LAN (0x4C) #define AP_PROP_DELAY_TELEPHONE (0x71) #define AP_PROP_DELAY_PKT_SWITCHED_NET (0x91) #define AP_PROP_DELAY_SATELLITE (0x99) #define AP_PROP_DELAY_MAXIMUM (0xFF) #define AP_SWITCHED (0x01) #define AP_NONSWITCHED (0x02) #define AP_SECONDARY (0x00) #define AP_PRIMARY (0x01) #define AP_NEGOTIABLE (0x03) #define AP_OUTBOUND (0x00) #define AP_INBOUND (0x01) #define AP_NOT_IN_PROGRESS (0x00) #define AP_IN_PROGRESS (0x01) #define AP_NOT_SUPPORTED (0x00) #define AP_SUPPORTED (0x01) #define AP_SSCP_PU_SESSION (0x00) #define AP_SSCP_LU_SESSION (0x01) #define AP_LU_LU_SESSION (0x02) #define AP_DEACTIVATED (0x00) #define AP_ACTIVATED (0x80) #define AP_ACTIVATING (0x40) #define AP_DEACTIVATING (0x20) #define AP_DETACHING (0x10) #define AP_HOST_CONNECTION (0x01) #define AP_PEER_CONNECTION (0x02) #define AP_BOTH_CONNECTION (0x03) #define AP_CONALS_PND (0x02) #define AP_XID_PND (0x03) #define AP_CONTACT_PND (0x05) #define AP_CONTACTED (0x06) #define AP_DISC_PND (0x07) #define AP_DISC_RQ (0x08) #define AP_3270_EMULATION (0x00) #define AP_LUA (0x01) #define AP_LU0 (0x00) #define AP_LU1 (0x01) #define AP_LU2 (0x02) #define AP_LU3 (0x03) #define AP_LU62 (0x06) #define AP_UNKNOWN (0xFF) #define AP_LEASED_LINE (0x00) #define AP_VX32 (0x01) #define AP_DISCONNECT (0x00) #define AP_CONNECT (0x01) #define AP_AUTO_CONNECT (0x02) #define AP_FIXED (0x12) #define AP_ADAPTIVE (0x13) #define AP_NOT_BOUND (0x00) #define AP_BOUND (0x80) #define AP_BINDING (0x40) #define AP_UNBINDING (0x20) /*****************************************************************************/ /* End Definitions from APPCDEF.H file (retired) */ /*****************************************************************************/ typedef struct cnos { unsigned short opcode; /* Verb operation code */ /* AP_CNOS */ unsigned char reserv2[2]; /* Reserved */ unsigned short primary_rc; /* Primary RETURN_CODE */ unsigned long secondary_rc; /* Secondary RETURN_CODE */ unsigned char key[8]; /* Key (ASCII) */ unsigned char lu_alias[8]; /* LU Alias (ASCII) */ /* 0 or 1-8 bytes */ unsigned char plu_alias[8]; /* Partner LU Alias (ASCII) */ /* 0 or 1-8 bytes */ unsigned char fqplu_name[17]; /* FQ Partner LU Name (EBCDIC type A */ /* 0-17 bytes */ unsigned char reserv3; /* Reserved */ unsigned char mode_name[8]; /* Mode Name (EBCDIC type A) */ /* 0-8 bytes */ unsigned int mode_name_select:1; /* Bit 15 */ /* Mode name select */ /* AP_ONE */ /* AP_ALL */ unsigned int set_negotiable:1; /* Bit 14 */ /* Set negotiable? */ /* AP_NO */ /* AP_YES */ unsigned int reserv4:6; /* Bits 8-13 */ /* Reserved */ unsigned int reserv5:8; /* Bits 0-7 */ /* Reserved */ unsigned short plu_mode_sess_lim; /* Partner LU mode session limit */ /* 0-32767 */ unsigned short min_conwinners_source; /* Minimum contention winners source */ /* 0-32767 */ unsigned short min_conwinners_target; /* Minimum contention winners target */ /* 0-32767 */ unsigned short auto_act; /* Auto Activate */ /* 0-32767 */ unsigned int drain_target:1; /* Bit 15 */ /* Drain Target? */ /* AP_NO */ /* AP_YES */ unsigned int drain_source:1; /* Bit 14 */ /* Drain Source? */ /* AP_NO */ /* AP_YES */ unsigned int responsible:1; /* Bit 13 */ /* Responsible? */ /* AP_SOURCE */ /* AP_TARGET */ unsigned int reserv6:5; /* Bits 8-12 */ /* Reserved */ unsigned int reserv7:8; /* Bit 0-7 */ /* Reserved */ } CNOS; typedef struct display { unsigned short opcode; /* Verb operation code */ /* AP_DISPLAY */ unsigned char reserv2[2]; /* Reserved */ unsigned short primary_rc; /* Primary RETURN_CODE */ unsigned long secondary_rc; /* Secondary RETURN_CODE */ unsigned long init_sect_len; /* Length of this section */ unsigned long buffer_len; /* Length of passed buffer */ unsigned char far *buffer_ptr; /* Passed address */ unsigned long num_sections; /* Number of sections */ unsigned long display_len; /* Returned, length used */ unsigned long area_needed; /* Returned, length required */ unsigned char sna_global_info; /* SNA global info? */ /* AP_NO */ /* AP_YES */ unsigned char lu62_info; /* LU 6.2 info? */ /* AP_NO */ /* AP_YES */ unsigned char am_info; /* Attach Manager info? */ /* AP_NO */ /* AP_YES */ unsigned char tp_info; /* TP info? */ /* AP_NO */ /* AP_YES */ unsigned char sess_info; /* Session info? */ /* AP_NO */ /* AP_YES */ unsigned char link_info; /* Link info? */ /* AP_NO */ /* AP_YES */ unsigned char lu_0_3_info; /* LU 0, 1, 2, & 3 info? */ /* AP_NO */ /* AP_YES */ unsigned char gw_info; /* Gateway info? */ /* AP_NO */ /* AP_YES */ unsigned char x25_physical_link_info; /* X.25 info? */ /* AP_NO */ /* AP_YES */ unsigned char sys_def_info; /* System Default info? */ /* AP_NO */ /* AP_YES */ unsigned char adapter_info; /* Adapter info? */ /* AP_NO */ /* AP_YES */ unsigned char lu_def_info; /* LU definition info? */ /* AP_NO */ /* AP_YES */ unsigned char plu_def_info; /* Remote LU def info? */ /* AP_NO */ /* AP_YES */ unsigned char mode_def_info; /* Mode Definition info? */ /* AP_NO */ /* AP_YES */ unsigned char link_def_info; /* Link Definition info? */ /* AP_NO */ /* AP_YES */ unsigned char ms_info; /* Management Services info? */ /* AP_NO */ /* AP_YES */ /* Returned Pointers */ /* Note that the address of the first of these pointers is */ /* address of the verb control block + init_sect_len */ struct sna_global_info_sect far *sna_global_info_ptr; struct lu62_info_sect far *lu62_info_ptr; struct am_info_sect far *am_info_ptr; struct tp_info_sect far *tp_info_ptr; struct sess_info_sect far *sess_info_ptr; struct link_info_sect far *link_info_ptr; struct lu_0_3_info_sect far *lu_0_3_info_ptr; struct gw_info_sect far *gw_info_ptr; struct x25_physical_link_info_sect far *x25_physical_link_info_ptr; struct sys_def_info_sect far *sys_def_info_ptr; struct adapter_info_sect far *adapter_info_ptr; struct lu_def_info_sect far *lu_def_info_ptr; struct plu_def_info_sect far *plu_def_info_ptr; struct mode_def_info_sect far *mode_def_info_ptr; struct link_def_info_sect far *link_def_info_ptr; struct ms_info_sect far *ms_info_ptr; } DISPLAY; typedef struct psid_struct /* Product set id structure */ { unsigned char machine_type[4]; /* Machine type */ unsigned char machine_mod_num[3]; /* Machine model number */ unsigned char plant_of_mfg[2]; /* IBM manufacturing plant */ unsigned char machine_seq_num[7]; /* Machine sequence number */ } type_product_set_id; typedef struct sna_global_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: sna_global_info_ptr */ /**************************************************************************/ unsigned char version; /* Communications Manager version */ unsigned char release; /* Communications Manager release */ unsigned char net_name[8]; /* NETID (EBCDIC type A) */ unsigned char pu_name[8]; /* PU name (EBCDIC type A) */ unsigned char node_id[4]; /* Node ID used in XID */ type_product_set_id product_set_id; /* Product Set ID */ unsigned char alias_cp_name[8]; /* Alias CP Name (ASCII) */ unsigned char node_type; /* Node Type */ /* AP_NN */ /* AP_EN */ /* AP_LEN */ unsigned char cp_nau_addr; /* CP NAU Address */ /* 0 (not used...independent LU) OR */ /* 1-254 */ unsigned char corr_serv_disk; /* Reserved */ unsigned char reserved; /* Reserved */ unsigned char appc_version; /* APPC version */ unsigned char appc_release; /* APPC release */ unsigned short appc_fixlevel; /* APPC fix level */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } SNA_GLOBAL_INFO_SECT; typedef struct lu62_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: lu62_info_ptr */ /**************************************************************************/ unsigned long lu62_init_sect_len; /* Structure length */ unsigned short num_lu62s; /* Number of configured LUs displaye */ unsigned short total_lu62s; /* Total Number of configured LUs */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } LU62_INFO_SECT; typedef struct lu62_overlay { /* One for each LU */ /**************************************************************************/ /* The address of the first of these structures should be: lu62_info_ptr +*/ /* lu62_info_ptr->lu62_init_sect_len to find the next LU, add: */ /* lu62_entry_len */ /**************************************************************************/ unsigned long lu62_entry_len; /* Size of this LU entry */ unsigned long lu62_overlay_len; /* This value contains */ /* sizeof(struct lu62_overlay) - */ /* sizeof(lu62_entry_len) */ unsigned char lu_name[8]; /* LU Name (EBCDIC type A) */ unsigned char lu_alias[8]; /* LU Alias (ASCII) */ unsigned short num_plus; /* Number of partner LUs */ unsigned char fqlu_name[17]; /* Fully Qualified LU Name */ /* (EBCDIC type A) */ unsigned char default_lu; /* Default LU? */ /* AP_NO */ /* AP_YES */ unsigned char reserv3; /* Reserved */ unsigned char lu_local_addr; /* NAU address 0-254 */ unsigned short lu_sess_lim; /* Configured session limit */ /* 0-255 */ unsigned char max_tps; /* Max number of TPs 1-255 */ unsigned char lu_type; /* Always LU type 6.2 */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } LU62_OVERLAY; typedef struct plu62_overlay { /* One for each partner LU */ /**************************************************************************/ /* The address of the first of these structures should be: The address of */ /* the current lu62_overlay + lu62_overlay_len + sizeof(lu62_entry_len) */ /* To find the next partner LU, add: plu62_entry_len. */ /**************************************************************************/ unsigned long plu62_entry_len; /* Size of this partner LU */ unsigned long plu62_overlay_len; /* This value contains */ /* sizeof(struct plu62_overlay) - */ /* sizeof(plu62_entry_len) */ unsigned char plu_alias[8]; /* Partner LU Alias (ASCII) */ unsigned short num_modes; /* Number of modes */ unsigned char plu_un_name[8]; /* Partner LU Uninterpreted Name */ /* (EBCDIC) */ unsigned char fqplu_name[17]; /* Fully Qualified Partner LU Name */ /* (EBCDIC type A) */ unsigned char reserv3; /* Reserved */ unsigned short plu_sess_lim; /* Partner LU session limit */ unsigned char dlc_name[8]; /* DLC name (ASCII) */ unsigned char adapter_num; /* DLC adapter number */ unsigned char dest_addr_len; /* Length of adapter addr */ unsigned char dest_addr[32]; /* Destination adapter addr */ unsigned int par_sess_supp:1; /* Bit 15 Parallel sessions? */ /* AP_NOT_SUPPORTED */ /* AP_SUPPORTED */ unsigned int reserv4:7; /* Bits 8-14 Reserved */ unsigned int def_already_ver:1; /* Bit 7 Configured already verif? */ /* AP_NOT_SUPPORTED */ /* AP_SUPPORTED */ unsigned int def_conv_sec:1; /* Bit 6 Configured conv security? */ /* AP_NOT_SUPPORTED */ /* AP_SUPPORTED */ unsigned int def_sess_sec:1; /* Bit 5 Configured session securit */ /* AP_NOT_SUPPORTED */ /* AP_SUPPORTED */ unsigned int reserv5:5; /* Bits 0-4 Reserved */ unsigned int act_already_ver:1; /* Bit 15 Active already verified? */ /* AP_NOT_SUPPORTED */ /* AP_SUPPORTED */ unsigned int act_conv_sec:1; /* Bit 14 Active conversation sec? */ /* AP_NOT_SUPPORTED */ /* AP_SUPPORTED */ unsigned int reserv6:6; /* Bits 8-13 Reserved */ unsigned int implicit_part:1; /* Bit 7 Implicit partner? */ /* AP_NO */ /* AP_YES */ unsigned int reserv7:7; /* Bits 0-6 Reserved */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } PLU62_OVERLAY; typedef struct mode_overlay { /* One for each mode */ /**************************************************************************/ /* The address of the first of these structures should be: The address of */ /* the current plu62_overlay + plu62_overlay_len + sizeof(plu62_entry_len)*/ /* To find the next mode, add: mode_entry_len. */ /**************************************************************************/ unsigned long mode_entry_len; /* Size of this mode */ unsigned char mode_name[8]; /* Mode Name (EBCDIC type A) */ unsigned short max_ru_size_upp; /* Upper Limit on Max RU */ unsigned short max_ru_size_low; /* Lower Limit on Max RU */ unsigned short max_neg_sess_lim; /* Max Limit on Sessions */ unsigned short curr_sess_lim; /* Current Session Limit */ unsigned short min_win_lim; /* Min Negotiated Winners */ unsigned short min_lose_lim; /* Min Negotiated Losers */ unsigned short act_sess_count; /* Active Session Count */ unsigned short pend_sess_count; /* Pending Session Count */ unsigned short auto_act_sess_count; /* Auto Activate Session Count */ unsigned short act_win_lim; /* Active Winner Sessions */ unsigned short act_lose_lim; /* Active Loser Sessions */ unsigned short term_count; /* Session Termination Count */ unsigned int drain_target:1; /* Bit 15 Drain Target? */ /* AP_NO */ /* AP_YES */ unsigned int drain_source:1; /* Bit 14 Drain Source? */ /* AP_NO */ /* AP_YES */ unsigned int reserv3:6; /* Bits 8-13 Reserved */ unsigned int pacing_size:8; /* Bits 0-7 Pacing size */ /* The preceeding fields were previously defined as "unsigned char". */ /* They have been integrated into a bitfield to eliminate warning */ /* messages about 'bitfield types other than int'. */ unsigned int implicit_mode:1; /* Bit 15 Implicit Mode? */ /* AP_NO */ /* AP_YES */ unsigned int reserv4:7; /* Bits 8-14 Reserved */ unsigned int reserv5:8; /* Bits 0-7 Reserved */ /************************************************************************/ /* Reserved Additional fields may be added here in future releases */ /************************************************************************/ } MODE_OVERLAY; typedef struct am_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: am_info_ptr */ /**************************************************************************/ unsigned long am_init_sect_len; /* Structure length */ unsigned char am_active; /* Attach Manager active? */ /* AP_NO */ /* AP_YES */ unsigned char reserv4; /* Reserved */ unsigned short num_tps; /* Number of configured TPs */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } AM_INFO_SECT; typedef struct am_overlay { /* One for each configued TP */ /**************************************************************************/ /* The address of the first of these structures should be: am_info_ptr + */ /* am_info_ptr->am_init_sect_len. To find the next block of TP, */ /* information, add: am_entry_len. */ /**************************************************************************/ unsigned long am_entry_len; /* Size of this structure */ unsigned char tp_name[64]; /* TP name (EBCDIC type AE) */ unsigned char filespec[64]; /* TP filespec (ASCII) */ unsigned int reserv3:1; /* Bit 15 Reserved */ unsigned int sync_level_conf:1; /* Bit 14 Sync Level (Confirm) ? */ /* AP_NOT_SUPPORTED */ /* AP_SUPPORTED */ unsigned int sync_level_none:1; /* Bit 13 Sync Level (None) ? */ /* AP_NOT_SUPPORTED */ /* AP_SUPPORTED */ unsigned int reserv4:5; /* Bits 8-12 Reserved */ unsigned int conv_type:8; /* Bits 0-7 Conversation type */ /* AP_BASIC_CONVERSATION */ /* AP_MAPPED_CONVERSATION */ /* AP_EITHER */ /* The preceeding fields were previously defined as "unsigned char". */ /* They have been integrated into a bitfield to eliminate warning */ /* messages about 'bitfield types other than int'. */ unsigned short in_all_qdpth_lim; /* Incoming Allocate queue depth lim */ unsigned short in_all_qdpth; /* Incoming Allocate queue depth */ short in_all_timeout; /* Incoming Allocate t/o */ /* AP_HOLD_FOREVER or time in sec */ unsigned short num_rcv_all_pend; /* Number of pending */ /* RECEIVE_ALLOCATEs */ short rcv_all_timeout; /* RECEIVE_ALLOCATE t/o */ /* AP_HOLD_FOREVER or time in sec */ unsigned char tp_type; /* TP type */ /* AP_QUEUED_OPERATOR_STARTED */ /* AP_QUEUED_AM_STARTED */ /* AP_NONQUEUED_AM_STARTED */ /* AP_QUEUED_OPERATOR_PRELOADED */ unsigned char pgm_state; /* Program state */ /* AP_INACTIVE */ /* AP_LOADED */ /* AP_LOADING */ /* AP_RUNNING */ unsigned char conv_sec; /* Conversation security? */ /* AP_NO */ /* AP_YES */ unsigned char reserv5; /* Reserved */ unsigned short process_id; /* OS/2 process ID */ unsigned char parm_string[32]; /* Pgm parameter string */ unsigned char program_type; /* Program Type */ /* AP_BACKGROUND */ /* AP_FULL_SCREEN */ /* AP_PRESENTATION_MANAGER */ /* AP_VIO_WINDOWABLE */ unsigned char reserv5a; /* Reserved */ unsigned char tp_initiated; /* TP initiated */ /* AP_LOCALLY */ /* AP_REMOTELY */ unsigned char reserv6; /* Reserved */ unsigned char icon_filespec[80]; /* Icon Filespec (ASCII) */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } AM_OVERLAY; typedef struct tp_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: tp_info_ptr */ /**************************************************************************/ unsigned long tp_init_sect_len; /* Structure length */ unsigned short num_tps; /* Number of active TPs displayed */ unsigned short total_tps; /* Total Number of Active TPs */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } TP_INFO_SECT; typedef struct tp_overlay { /* One for each active TP */ /**************************************************************************/ /* The address of the first of these structures should be: tp_info_ptr + */ /* tp_info_ptr->tp_init_sect_len. To find the next block of active TP */ /* information, add: tp_entry_len */ /**************************************************************************/ unsigned long tp_entry_len; /* Size of this TP record */ unsigned long tp_overlay_len; /* This value contains */ /* sizeof(struct tp_overlay) - */ /* sizeof(tp_entry_len) */ unsigned short num_conv; /* Number of conversations */ unsigned char tp_id[8]; /* TP ID */ unsigned char tp_name[64]; /* TP name (EBCDIC type AE) */ unsigned char user_id[10]; /* User ID (EBCDIC type AE) */ unsigned int reserv3:7; /* Bits 9-15 Reserved */ unsigned int loc_or_rem:1; /* Bit 8 Initiated local or remote? */ /* AP_LOCAL */ /* AP_REMOTE */ unsigned int reserv4:8; /* Bits 0-7 Reserved */ unsigned char lu_alias[8]; /* LU_ALIAS (ASCII) */ LUW_ID_OVERLAY luw_id; /* Logical Unit of Work ID */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } TP_OVERLAY; typedef struct conv_overlay { /* One for each active conv */ /**************************************************************************/ /* The address of the first of these structures should be: The address of */ /* the current tp_overlay + tp_overlay_len + sizeof(tp_entry_len). To find*/ /* the next block of conversation information, add: conv_entry_len */ /**************************************************************************/ unsigned long conv_entry_len; /* Size of conversation information */ unsigned long conv_id; /* Conversation ID */ unsigned char reserv3[9]; /* Reserved */ unsigned char state; /* Conversation state */ /* AP_SEND_STATE */ /* AP_RECEIVE_STATE */ /* AP_CONFIRM_STATE */ /* AP_CONFIRM_SEND_STATE */ /* AP_CONFIRM_DEALL_STATE */ /* AP_PEND_POST_STATE */ unsigned char sess_id[8]; /* Session ID */ unsigned char sync_level; /* Sync level */ /* AP_NONE */ /* AP_CONFIRM */ unsigned char conv_type; /* Conversation type */ /* AP_BASIC_CONVERSATION */ /* AP_MAPPED_CONVERSATION */ unsigned long conv_group_id; /* Conversation Group ID */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } CONV_OVERLAY; typedef struct sess_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: sess_info_ptr */ /**************************************************************************/ unsigned long sess_init_sect_len; /* Structure length */ unsigned short num_sessions; /* Number of Active Sessions */ unsigned short total_sessions; /* Total Number of Active Sessions */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } SESS_INFO_SECT; typedef struct sess_overlay { /* One for each active sess */ /**************************************************************************/ /* The address of the first of these structures should be: sess_info_ptr +*/ /* sess_info_ptr->sess_init_sect_len. To find the next block of session */ /* information, add: sess_entry_len */ /**************************************************************************/ unsigned long sess_entry_len; /* Size of session info */ unsigned long reserv3; /* Reserved */ unsigned char sess_id[8]; /* Session ID */ unsigned long conv_id; /* Conversation ID */ unsigned char lu_alias[8]; /* LU Alias (ASCII) */ unsigned char plu_alias[8]; /* Partner LU Alias (ASCII) */ unsigned char mode_name[8]; /* Mode Name (EBCDIC type A) */ unsigned short send_ru_size; /* Max RU size for send */ unsigned short rcv_ru_size; /* Max RU size for receive */ unsigned char send_pacing_size; /* Send pacing size */ unsigned char rcv_pacing_size; /* Receive pacing size */ unsigned char link_id[12]; /* Link ID (in APPC), or */ /* First Hop Link Name (in APPN) */ unsigned char daf; /* Outbound DAF */ unsigned char oaf; /* Outbound OAF */ unsigned char odai; /* ODAI */ unsigned char sess_type; /* Type of session */ /* AP_SSCP_PU_SESSION */ /* AP_SSCP_LU_SESSION */ /* AP_LU_LU_SESSION */ unsigned char conn_type; /* Type of connection */ /* AP_HOST_CONNECTION */ /* AP_PEER_CONNECTION */ /* AP_BOTH_CONNECTION */ unsigned char reserv4; /* Reserved */ FQPCID_OVERLAY fqpcid; /* Fully Qualified Procedure */ /* Correlation Identifier */ unsigned char cgid[4]; /* Conversation Group ID */ unsigned char fqlu_name[17]; /* Local Fully Qualifed LU Name */ /* (EBCDIC) */ unsigned char fqplu_name[17]; /* Partner Fully Qualifed LU Name */ /* (EBCDIC) */ unsigned char pacing_type; /* Type of Pacing */ /* AP_FIXED */ /* AP_ADAPTIVE */ unsigned char reserv5; /* Reserved */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } SESS_OVERLAY; typedef struct link_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: link_info_ptr */ /**************************************************************************/ unsigned long link_init_sect_len; /* Structure length */ unsigned short num_links; /* Number of active links */ /*************************************************************************/ /* This field added to make link_info_sect in API match the Link info */ /* section returned by the NS/2 management DLL. */ /*************************************************************************/ unsigned short total_links; /* Total number of active links */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } LINK_INFO_SECT; typedef struct link_overlay { /* One for each active link */ /**************************************************************************/ /* The address of the first of these structures should be: link_info_ptr +*/ /* link_info_ptr->link_init_sect_len. To find the next block of link */ /* information, add: link_entry_len */ /**************************************************************************/ unsigned long link_entry_len; /* Size of link info, incl link spec */ unsigned char link_id[12]; /* Link ID (Link Name in EBCDIC A) */ unsigned char dlc_name[8]; /* DLC name (ASCII) */ unsigned char adapter_num; /* DLC adapter number */ unsigned char dest_addr_len; /* Length of adapter addr */ unsigned char dest_addr[32]; /* Destination adapter addr */ unsigned char inbound_outbound; /* Inbound or outbound? */ /* AP_OUTBOUND */ /* AP_INBOUND */ unsigned char state; /* Link state */ /* AP_CONALS_PND */ /* AP_XID_PND */ /* AP_CONTACT_PND */ /* AP_CONTACTED */ /* AP_DISC_PND */ /* AP_DISC_RQ */ unsigned char deact_link_flag; /* Deactivate logical link */ /* AP_NOT_IN_PROGRESS */ /* AP_IN_PROGRESS */ unsigned char reserv3; /* Reserved */ unsigned short num_sessions; /* Number of active sessions 0-65535 */ unsigned short ru_size; /* RU size 99-32767 (BTU Size) */ unsigned short reserv4; /* Reserved */ unsigned char adj_fq_cp_name[17]; /* Adjacent Fully Qualified CP Name */ unsigned char reserv5; /* Reserved */ unsigned char adj_node_type; /* Adjacent Node Type */ /* AP_EN */ /* AP_NN */ /* AP_LEN */ unsigned char cp_cp_sess_spt; /* CP CP Session Support */ /* AP_NO */ /* AP_YES */ unsigned char conn_type; /* Type of Connection */ /* AP_HOST_CONNECTION */ /* AP_PEER_CONNECTION */ /* AP_BOTH_CONNECTION */ unsigned char ls_role; /* Link Station Role */ /* AP_NEGOTIABLE */ /* AP_PRIMARY */ /* AP_SECONDARY */ unsigned char line_type; /* Line Type */ /* AP_SWITCHED */ /* AP_NONSWITCHED */ unsigned char tg_number; /* Transmission Group Number */ unsigned long eff_capacity; /* Effective Capacity */ /* 0 | 1200 | 2400 | ... */ /* ... | 16M | ... */ unsigned char conn_cost; /* Cost Per Connect Time */ unsigned char byte_cost; /* Cost Per Byte */ unsigned char propagation_delay; /* AP_PROP_DELAY_MINIMUM */ /* AP_PROP_DELAY_LAN */ /* AP_PROP_DELAY_TELEPHONE */ /* AP_PROP_DELAY_PKT_SWITCHED_NET */ /* AP_PROP_DELAY_SATELLITE */ /* AP_PROP_DELAY_MAXIMUM */ unsigned char user_def_1; /* User Defined 1 */ unsigned char user_def_2; /* User Defined 2 */ unsigned char user_def_3; /* User Defined 3 */ unsigned char security; /* Security */ /* AP_SEC_NONSECURE */ /* AP_SEC_PUBLIC_SWITCHED_NETWORK */ /* AP_SEC_UNDERGROUND_CABLE */ /* AP_SEC_SECURE_CONDUIT */ /* AP_SEC_GUARDED_CONDUIT */ /* AP_SEC_ENCRYPTED */ /* AP_SEC_GUARDED_RADIATION */ unsigned char reserv6; /* Reserved */ /************************************************************************/ /* Additional fields of unspecified length are located in this position.*/ /* Use link_entry_len to skip over them. */ /************************************************************************/ } LINK_OVERLAY; typedef struct lu_0_3_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: lu_0_3_info_ptr */ /**************************************************************************/ unsigned long lu_0_3_init_sect_len; /* Structure length */ unsigned short num_lu_0_3s; /* Number of configured LUs */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } LU_0_3_INFO_SECT; typedef struct lu_0_3_overlay { /* One for each configured LU */ /**************************************************************************/ /* The address of the first of these structures should be: lu_0_3_info_ptr*/ /* + lu_0_3_info_ptr->lu_0_3_init_sect_len. To find the next one, add: */ /* lu_0_3_entry_len. */ /**************************************************************************/ unsigned long lu_0_3_entry_len; /* Size of this LU info */ unsigned char access_type; /* Access type */ /* AP_3270_EMULATION */ /* AP_LUA */ unsigned char lu_type; /* LU type */ /* AP_LU0 */ /* AP_LU1 */ /* AP_LU2 */ /* AP_LU3 */ unsigned char lu_daf; /* NAU address */ unsigned char lu_short_name; /* LU Short Name (ASCII) */ unsigned char lu_long_name[8]; /* LU Long Name (ASCII) */ unsigned char sess_id[8]; /* Session ID */ unsigned char dlc_name[8]; /* DLC Name (ASCII) */ unsigned char adapter_num; /* DLC Adapter number */ unsigned char dest_addr_len; /* Length of Adapter Addr */ unsigned char dest_addr[32]; /* Destination Adapter Addr */ unsigned char sscp_lu_sess_state; /* SSCP-LU Session State */ /* AP_DEACTIVATED */ /* AP_ACTIVATED */ /* AP_ACTIVATING */ /* AP_DEACTIVATING */ /* any of these 4 states can be */ /* &'ed with: AP_DETACHING */ unsigned char lu_lu_sess_state; /* LU-LU Session State */ /* AP_NOT_BOUND */ /* AP_BOUND */ /* AP_BINDING */ /* AP_UNBINDING */ unsigned char link_id[12]; /* Link ID */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } LU_0_3_OVERLAY; typedef struct gw_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: gw_info_ptr */ /**************************************************************************/ unsigned long gw_init_sect_len; /* Structure length */ unsigned short num_gw_lus; /* Number of configured */ /************************************************************************/ /* gateway LUs Additional fields may be added here in future releases */ /************************************************************************/ } GW_INFO_SECT; typedef struct gw_overlay { /* One for each gateway LU */ /**************************************************************************/ /* The address of the first of these structures should be: gw_info_ptr + */ /* gw_info_ptr->gw_init_sect_len. To find the next one, add: gw_entry_len.*/ /**************************************************************************/ unsigned long gw_entry_len; /* Size of the gateway info */ unsigned char ws_lu_name[8]; /* WS LU name (EBCDIC) */ unsigned char ws_pu_name[8]; /* WS PU name (EBCDIC) */ unsigned char ws_pool_class; /* WS pool class */ unsigned char ws_local_addr; /* Workstation local address */ unsigned char host_local_addr; /* Host local address */ unsigned char ws_lu_type; /* Workstation LU type */ /* AP_LU0 */ /* AP_LU1 */ /* AP_LU2 */ /* AP_LU3 */ /* AP_LU62 */ /* AP_UNKNOWN */ unsigned char host_lu_name[17]; /* Host LU name (EBCDIC) */ unsigned char reserv3; /* Reserved */ unsigned char ws_dlc_name[8]; /* WS DLC name (ASCII) */ unsigned char ws_adapter_num; /* Workstation adapter num */ unsigned char ws_dest_addr_len; /* WS dest addr length */ unsigned char ws_dest_addr[32]; /* WS destination addr */ unsigned int ws_link_act:1; /* Bit 15 WS link active? */ /* AP_NO */ /* AP_YES */ unsigned int lu_lu_pend_term:1; /* Bit 14 LU-LU pending termination? */ /* AP_NO */ /* AP_YES */ unsigned int lu_lu_pend_init:1; /* Bit 13 LU-LU pending initiation? */ /* AP_NO */ /* AP_YES */ unsigned int lu_lu_act:1; /* Bit 12 LU-LU Active? */ /* AP_NO */ /* AP_YES */ unsigned int lu_cp_pend_term:1; /* Bit 11 LU-CP Pending Termination? */ /* AP_NO */ /* AP_YES */ unsigned int lu_cp_pend_init:1; /* Bit 10 LU-CP pending initiation? */ /* AP_NO */ /* AP_YES */ unsigned int lu_cp_act_offline:1; /* Bit 9 LU-CP active offline? */ /* AP_NO */ /* AP_YES */ unsigned int lu_cp_act_online:1; /* Bit 8 LU-CP active online? */ /* AP_NO */ /* AP_YES */ unsigned int reserv4:8; /* Bits 0-7 Reserved */ /************************************************************************/ /* Reserved Additional fields may be added here in future releases */ /************************************************************************/ } GW_OVERLAY; typedef struct x25_physical_link_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: x25_info_ptr */ /**************************************************************************/ unsigned long x25_init_sect_len; /* Structure length */ unsigned short num_x25_links; /* Number of X.25 physical links */ unsigned short num_x25_link_entries; /* Total Number of X.25 phys. links */ /************************************************************************/ /* physical link entries Additional fields may be added here in future */ /* releases */ /************************************************************************/ } X25_PHYSICAL_LINK_INFO_SECT; typedef struct x25_overlay { /* One for each X.25 link */ /**************************************************************************/ /* The address of the first of these structures should be: x25_info_ptr + */ /* x25_info_ptr->x25_init_sect_len. To find the next one, add: */ /* x25_entry_len */ /**************************************************************************/ unsigned long x25_entry_len; /* Size of X.25 information */ unsigned char link_name[8]; /* X.25 Link Name (ASCII) */ unsigned char link_comments[60]; /* Comment Field (ASCII) */ unsigned short adapter_slot_num; /* Adapter Slot Number */ unsigned char link_type; /* Link Type */ /* AP_LEASED_LINE */ /* AP_VX32 */ unsigned char link_mode; /* Link Mode */ /* AP_DISCONNECT */ /* AP_CONNECT */ /* AP_AUTO_CONNECT */ unsigned char link_state; /* Link State */ /* AP_CONNECTING */ /* AP_CONNECTED */ /* AP_ERROR_LEVEL_1 */ /* AP_ERROR_LEVEL_2 */ /* AP_DISCONNECTING */ /* AP_DISCONNECTED */ /* AP_ADAPTER_ERROR */ /* AP_ADAPTER_ACCESS_ERROR */ /* AP_INCOMING_WAIT */ unsigned char link_direction; /* Link Direction */ /* AP_INCOMING */ /* AP_OUTGOING */ /* AP_2_WAY */ unsigned short num_act_pvcs; /* Number of Active PVCs */ unsigned short total_num_pvcs; /* Total Number of PVCs */ unsigned short num_act_svcs; /* Number of Active SVCs */ unsigned short num_incoming_svcs; /* Num of Incoming SVCs */ unsigned short num_2_way_svcs; /* Number of 2-way SVCs */ unsigned short num_outgoing_svcs; /* Num of Outgoing SVCs */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } X25_OVERLAY; typedef struct sys_def_info_sect { /* */ /**************************************************************************/ /* The address of this structure should be: sys_def_info_ptr */ /**************************************************************************/ unsigned char default_mode_name[8]; /* Default Mode Name (EBCDIC type A) */ unsigned char default_local_lu_name[8]; /* Default Local LU Name (EBCDIC */ /* type A) */ unsigned char implicit_inb_rlu_supp; /* Implicit Remote LU Support */ /* AP_NO */ /* AP_YES */ unsigned char max_held_alerts; /* Max Held Alerts 0-255 */ unsigned char tp_conv_sec_rqd; /* TP Conversation Security Requeste */ /* AP_NO */ /* AP_YES */ unsigned char reserv3; /* Reserved */ unsigned short max_mc_ll_send_size; /* Maximum Mapped Conversation */ /* Logical Record Send Size */ /* 0 or 2048 - 32767 */ unsigned char dir_for_attaches[64]; /* Directory For Inbound Attaches */ unsigned char tp_operation; /* Default TP Operation */ /* AP_QUEUED_OPERATOR_STARTED */ /* AP_QUEUED_AM_STARTED */ /* AP_NONQUEUED_AM_STARTED */ /* AP_QUEUED_OPERATOR_PRELOADED */ unsigned char tp_program_type; /* Default TP Program Type */ /* AP_BACKGROUND */ /* AP_FULL_SCREEN */ /* AP_PRESENTATION_MANAGER */ /* AP_VIO_WINDOWABLE */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } SYS_DEF_INFO_SECT; typedef struct adapter_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: adapter_info_ptr */ /**************************************************************************/ unsigned long adapter_init_sect_len; /* Structure length */ unsigned short num_adapters; /* Number of Adapters Displayed */ unsigned short total_adapters; /* Total Number of Adapters */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } ADAPTER_INFO_SECT; typedef struct adapter_overlay { /* One for each adapter Displayed */ /**************************************************************************/ /* The address of the first of these structures should be: */ /* adapter_info_ptr + adapter_info_ptr->adapter_init_sect_len. */ /* To find the next one, add: adapter_entry_len */ /**************************************************************************/ unsigned long adapter_entry_len; /* Size of Adapter Info */ unsigned char dlc_name[8]; /* DLC Name (ASCII) */ unsigned char adapter_number; /* Adapter Number */ /* 0-255 */ unsigned char ls_role; /* Link Station Role */ /* AP_NEGOTIABLE */ /* AP_PRIMARY */ /* AP_SECONDARY */ unsigned long eff_capacity; /* Effective Capacity */ /* 1200 | 2400 |...|16M|... */ unsigned char conn_cost; /* Cost Per Connect Time */ unsigned char byte_cost; /* Cost Per Byte */ unsigned char propagation_delay; /* AP_PROP_DELAY_MINIMUM */ /* AP_PROP_DELAY_LAN */ /* AP_PROP_DELAY_TELEPHONE */ /* AP_PROP_DELAY_PKT_SWITCHED_NET */ /* AP_PROP_DELAY_SATELLITE */ /* AP_PROP_DELAY_MAXIMUM */ unsigned char user_def_1; /* User Defined 1 */ unsigned char user_def_2; /* User Defined 2 */ unsigned char user_def_3; /* User Defined 3 */ unsigned char security; /* Security */ /* AP_SEC_NONSECURE */ /* AP_SEC_PUBLIC_SWITCHED_NETWORK */ /* AP_SEC_UNDERGROUND_CABLE */ /* AP_SEC_SECURE_CONDUIT */ /* AP_SEC_GUARDED_CONDUIT */ /* AP_SEC_ENCRYPTED */ /* AP_SEC_GUARDED_RADIATION */ unsigned char reserv3; /* Reserved */ unsigned char line_type; /* Line Yype */ /* AP_SWITCHED */ /* AP_NONSWITCHED */ unsigned char lim_res; /* Limited Resource ? */ /* AP_NO */ /* AP_YES */ unsigned short lim_res_timeout; /* Limited Resource Timeout */ /* 0-127 ??? */ unsigned short max_btu_size; /* Maximum BTU Size 99-32767 */ unsigned char rcv_window; /* Receive Window 0-127 */ unsigned char send_window; /* Send Window 0-127 */ unsigned short max_ls_used; /* Max Link Stations */ unsigned char abm_support; /* Asynchronous Balanced Mode Used? */ /* AP_NO */ /* AP_YES */ unsigned char reserv4; /* Reserved */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } ADAPTER_OVERLAY; typedef struct lu_def_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: lu_def_info_ptr */ /**************************************************************************/ unsigned long lu_def_init_sect_len; /* Structure length */ unsigned short num_lu_def; /* Number of LU Definitions Displaye */ unsigned short total_lu_def; /* Total Number of LU Definitions */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } LU_DEF_INFO_SECT; typedef struct lu_def_overlay { /* One for each lu_def Displayed */ /**************************************************************************/ /* The address of the first of these structures should be: lu_def_info_ptr*/ /* + lu_def_info_ptr->lu_def_init_sect_len. To find the next one, add: */ /* lu_def_entry_len */ /**************************************************************************/ unsigned long lu_def_entry_len; /* Size of lu def info */ unsigned char lu_name[8]; /* LU_NAME (EBCDIC type A) */ unsigned char lu_alias[8]; /* LU_ALIAS (ASCII) */ unsigned char lu_nau_addr; /* NAU address 0-254 */ unsigned char reserv3; /* Reserved */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } LU_DEF_OVERLAY; typedef struct plu_def_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: plu_def_info_ptr */ /**************************************************************************/ unsigned long plu_def_init_sect_len; /* Struct length */ unsigned short num_plu_def; /* Number of Partner LU defs Display */ unsigned short total_plu_def; /* Total Number of Partner LU defs */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } PLU_DEF_INFO_SECT; typedef struct plu_def_overlay { /* One for each plu_def displayed */ /**************************************************************************/ /* The address of the first of these structures should be: */ /* plu_def_info_ptr + plu_def_info_ptr->plu_def_init_sect_len. To find */ /* the next one, add: plu_def_entry_len. */ /**************************************************************************/ unsigned long plu_def_entry_len; /* Size of plu def info */ unsigned char fqplu_name[17]; /* PLU Name (EBCDIC) */ unsigned char reserv3; /* Reserved */ unsigned char plu_alias[8]; /* Partner LU Alias */ unsigned char plu_uninterpreted_name[8]; /* Partner LU Uninterpreted Name */ /* (EBCDIC) */ unsigned short max_mc_ll_ssize; /* Maximum Mapped Conversation */ /* Logical Record Send Size */ /* 0 or 2048 - 32767 */ unsigned char conv_security; /* Conversation Security */ /* AP_NO */ /* AP_YES */ unsigned char parallel_sess; /* Parallel Session Support */ /* AP_NO */ /* AP_YES */ unsigned char alt_alias_flag; /* Alternate PLU aliases flag */ /* 0 = Alternate PLU aliases */ /* appended to end of struct */ unsigned char num_of_alt_aliases; /* Number of alternate PLU aliases */ /* (not including the plu_alias). */ /* 0 or # of alt_alias_overlays */ /************************************************************************/ /* The address of the first alternate partner LU alias is: */ /* plu_def_overlay + sizeof(struct plu_def_overlay). To build the addr */ /* of the next partner LU alias, add: sizeof(struct alt_alias_overlay). */ /* See struct alt_alias_overlay in APPCDEF.H. */ /************************************************************************/ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } PLU_DEF_OVERLAY; typedef struct mode_def_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: mode_def_info_ptr */ /**************************************************************************/ unsigned long mode_def_init_sect_len; /* Struct length */ unsigned short num_mode_def; /* Number of Mode Definitions Dsplyd */ unsigned short total_mode_def; /* Total Number of Mode Definitions */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } MODE_DEF_INFO_SECT; typedef struct mode_def_overlay { /* One for each mode_def Displayed */ /**************************************************************************/ /* The address of the first of these structures should be: */ /* mode_def_info_ptr + mode_def_info_ptr->mode_def_init_sect_len. To find*/ /* the next one, add: mode_def_entry_len */ /**************************************************************************/ unsigned long mode_def_entry_len; /* Size of mode def info */ unsigned char cos_name[8]; /* COS Name (EBCDIC) */ unsigned char mode_name[8]; /* Mode Name (EBCDIC) */ unsigned short reserv3; /* reserved */ unsigned short rusize_upper; /* max RU size upper bound */ /* 256-65535 */ unsigned char rcv_window; /* receive pacing window */ /* 0 or 1-63 */ unsigned char default_ru_size; /* default ru size? */ /* AP_NO */ /* AP_YES */ unsigned short max_neg_sess_lim; /* Max limit on sessions */ unsigned short curr_sess_lim; /* Current session limit */ unsigned short min_win_lim; /* Min negotiated winners */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } MODE_DEF_OVERLAY; typedef struct link_def_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: link_def_info_ptr */ /**************************************************************************/ unsigned long link_def_init_sect_len; /* Structure length */ unsigned short num_link_def; /* Number of Active Links Displayed */ unsigned short total_link_def; /* Total Number of Active Links */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } LINK_DEF_INFO_SECT; typedef struct link_def_overlay { /* One for each active link Displayed*/ /**************************************************************************/ /* The address of the first of these structures should be: */ /* link_def_info_ptr + link_def_info_ptr->link_def_init_sect_len. To find */ /* the next block of link information, add: link_def_entry_len */ /**************************************************************************/ unsigned long link_def_entry_len; /* Size of link info, */ /* including link specific */ unsigned char link_name[8]; /* Link Name (EBCDIC) */ unsigned char adj_fq_cp_name[17]; /* Adjacent Fully Qualified CP Name */ /* (EBCDIC) */ unsigned char adj_node_type; /* adjacent node type */ /* AP_LEARN */ /* AP_LEN */ /* AP_ADJACENT_NN */ unsigned char dlc_name[8]; /* DLC name (ASCII) */ unsigned char adapter_num; /* DLC adapter number */ unsigned char dest_addr_len; /* Length of adapter addr */ unsigned char dest_addr[32]; /* Destination adapter addr */ unsigned char cp_cp_sess_spt; /* CP CP session support? */ /* AP_NO */ /* AP_YES */ unsigned char preferred_nn_server; /* Is this the Pref. NN Server? */ /* AP_NO */ /* AP_YES */ unsigned char auto_act_link; /* Auto Activate Link? */ /* AP_NO */ /* AP_YES */ unsigned char tg_number; /* Transmission Group Number */ unsigned char lim_res; /* Limited Resource ? */ /* AP_NO */ /* AP_YES */ /* AP_USE_ADAPTER_DEF_CHAR */ unsigned char solicit_sscp_session; /* Solicit SSCP Session? */ /* AP_NO */ /* AP_YES */ unsigned char initself; /* Initself Indicator */ /* AP_NO */ /* AP_YES */ unsigned char bind_support; /* Bind Support? */ /* AP_NO */ /* AP_YES */ unsigned char ls_role; /* link station role */ /* AP_NEGOTIABLE */ /* AP_PRIMARY */ /* AP_SECONDARY */ unsigned char line_type; /* Line Type */ /* AP_SWITCHED */ /* AP_NONSWITCHED */ unsigned long eff_capacity; /* Effective Capacity */ /* 0 | 1200 | 2400 | ... */ /* ... | 16M | ... */ unsigned char conn_cost; /* Cost Per Connect Time */ unsigned char byte_cost; /* Cost Per Byte */ unsigned char propagation_delay; /* AP_PROP_DELAY_MINIMUM */ /* AP_PROP_DELAY_LAN */ /* AP_PROP_DELAY_TELEPHONE */ /* AP_PROP_DELAY_PKT_SWITCHED_NET */ /* AP_PROP_DELAY_SATELLITE */ /* AP_PROP_DELAY_MAXIMUM */ unsigned char user_def_1; /* User Defined 1 */ unsigned char user_def_2; /* User Defined 2 */ unsigned char user_def_3; /* User Defined 3 */ unsigned char security; /* Security */ /* AP_SEC_NONSECURE */ /* AP_SEC_PUBLIC_SWITCHED_NETWORK */ /* AP_SEC_UNDERGROUND_CABLE */ /* AP_SEC_SECURE_CONDUIT */ /* AP_SEC_GUARDED_CONDUIT */ /* AP_SEC_ENCRYPTED */ /* AP_SEC_GUARDED_RADIATION */ unsigned char reserv; /* Reserved */ /************************************************************************/ /* Additional fields of unspecified length are located in this position.*/ /* Use link_entry_len to skip over them. */ /************************************************************************/ } LINK_DEF_OVERLAY; typedef struct ms_info_sect { /* One of these */ /**************************************************************************/ /* The address of this structure should be: ms_info_ptr */ /**************************************************************************/ unsigned long ms_init_sect_len; /* Structure length */ unsigned char held_mds_mu_alerts; /* Held mds alerts */ /* 1-255 */ unsigned char held_nmvt_alerts; /* Held nmvt alerts */ /* 1-255 */ unsigned short num_fps; /* Number of Focal Points Displayed */ unsigned short total_fps; /* Total Number of Focal Points */ unsigned short num_ms_appls; /* Num. of MS Applications Displayed */ unsigned short total_ms_appls; /* Total Number of MS Applications */ unsigned short num_act_trans; /* # of Active Transactions Displaye */ unsigned short total_act_trans; /* Total Num. of Active Transactions */ /************************************************************************/ /* Additional fields may be added here in future releases */ /************************************************************************/ } MS_INFO_SECT; typedef struct ms_fp_overlay { /* One each MS Focal Point Displayed */ /**************************************************************************/ /* The address of the first of these structures should be: ms_info_ptr + */ /* ms_info_ptr->ms_init_sect_len. To find the next the next one, add: */ /* ms_fp_entry_len. */ /**************************************************************************/ unsigned long ms_fp_entry_len; /* Size of MS Focal point info */ unsigned char ms_appl_name[8]; /* MS Application name */ /* 4 byte SNA Defined MS Appl Name*/ /* or 1-8 byte (EBCDIC type A) */ unsigned char ms_category[4]; /* MS Category */ /* 0 or 4 byte SNA Defined Category */ unsigned char fp_fq_cp_name[17]; /* Focal Point Fully Qual. CP Name */ /* (EBCDIC type A) */ unsigned char bkup_appl_name[8]; /* Backup MS Application Name */ /* 4 byte SNA Defined MS Appl Name*/ /* or 1-8 byte (EBCDIC type A) */ unsigned char bkup_fp_fq_cp_name[17]; /* Backup Focal Point Name */ /* (EBCDIC type A) */ unsigned char reserv1; /* Reserved */ unsigned char fp_type; /* focal point rank */ /* AP_EXPLICIT_PRIMARY_FP */ /* AP_BACKUP_FP */ /* AP_DEFAULT_PRIMARY_FP */ /* AP_DOMAIN_FP */ /* AP_HOST_FP */ /* AP_NO_FP */ unsigned char fp_status; /* focal point status */ /* AP_NOT_ACTIVE */ /* AP_ACTIVE */ /* AP_PENDING */ /* AP_NEVER_ACTIVE */ unsigned char fp_routing; /* focal point routing */ /* AP_DEFAULT */ /* AP_DIRECT */ /************************************************************************/ /* Additional fields of unspecified length are located in this position.*/ /* Use ms_fp_entry_len to skip over them. */ /************************************************************************/ } MS_FP_OVERLAY; typedef struct ms_appl_overlay { /* One each MS application Displayed */ /**************************************************************************/ /* The first ms_appl_overlay follows immediately after the last ms_fp */ /* overlay. Hence, the address of the first ms_appl_overlay should be: */ /* the address of the last ms_fp_overlay + ms_fp_entry length. */ /* To find the next ms_appl_overlay, add: ms_appl_entry_length. */ /**************************************************************************/ unsigned long ms_appl_entry_len; /* Size of MS application info */ unsigned char ms_appl_name[8]; /* MS Application name */ /* 4 byte SNA Defined MS Appl Name*/ /* or 1-8 byte (EBCDIC type A) */ unsigned char ms_category[4]; /* MS Category */ /* 0 or 4 byte SNA Defined Category */ unsigned char q_name[81]; /* OS/2 Queue Name (ASCIIZ) */ unsigned char reserv3; /* Reserved */ unsigned char reserv4; /* Reserved */ unsigned char reserv5; /* Reserved */ /************************************************************************/ /* Additional fields of unspecified length are located in this position.*/ /* Use ms_appl_entry_len to skip over them. */ /************************************************************************/ } MS_APPL_OVERLAY; typedef struct ms_act_trans_overlay { /* One each MS active trans Displayed*/ /**************************************************************************/ /* The first ms_act_trans_overlay follows immediately after the last */ /* ms_appl overlay. Hence, the address of the first ms_act_trans_overlay */ /* should be: */ /* the address of the last ms_appl_overlay + ms_appl_entry length. */ /* To find the next ms_act_trans_overlay, add: ms_act_trans_entry_length.*/ /**************************************************************************/ unsigned long ms_act_trans_entry_len; /* Size of info */ unsigned char fq_origin_cp_name[17]; /* Fully Qualified Origin CP Name */ /* (EBCDIC type A) */ unsigned char origin_ms_appl_name[8]; /* Origin MS Application Name */ /* 4 byte SNA Defined MS Appl Name*/ /* or 1-8 byte (EBCDIC type A) */ unsigned char fq_dest_cp_name[17]; /* Fully Qualified Dest. CP Name */ /* (EBCDIC type A) */ unsigned char dest_ms_appl_name[8]; /* Dest. MS Application Name */ /* 4 byte SNA Defined MS Appl Name*/ /* or 1-8 byte (EBCDIC type A) */ /************************************************************************/ /* the following 3 fields are part of the Unit of Work (UOW) */ /************************************************************************/ unsigned char fq_req_loc_cp_name[17]; /* Requester Location */ /* (EBCDIC type A) */ unsigned char req_agent_appl_name[8]; /* Requester Application Name */ /* 4 byte SNA Defined MS Appl Name*/ /* or 1-8 byte (EBCDIC type A) */ unsigned char seq_num_dt[15]; /* Sequence Number / date - time */ /************************************************************************/ /* Additional fields of unspecified length are located in this position.*/ /* Use ms_act_trans_entry_len to skip over them. */ /************************************************************************/ } MS_ACT_TRANS_OVERLAY; #ifdef __cplusplus } #endif /*****************************************************************************/ /* Restore to default packing of structures */ /*****************************************************************************/ #ifdef WIN32 #pragma pack() #endif #pragma option pop /*P_O_Pop*/ #endif