📄 suicacse.h
字号:
extern MMS_OBJ_ID *context_table;#define CTXT_USER_BASE 4 /* where user-defined contexts begin *//************************************************************************//* The following are the default masks *//************************************************************************//* AP Context names */#define SM_ISO_MMS_AP_CTXT 0x01#define SM_MAP_MMS_AP_CTXT 0x02#define SM_PRIVATE_AP_CTXT 0x04#define SM_ISO_MMS_IS_AP_CTXT 0x08/* Abstract Syntax names */#define SM_ISO_MMS_ASN 0x01#define SM_MAP_MMS_ASN 0x02#define SM_PRIVATE_ASN 0x04#ifdef SECURITY_SUPPORT#define SM_SECURE_ISO_MMS_ASN 0x08#endif/* Transfer Syntax names */#define SM_ASN1_TSN 0x01/************************************************************************//* The structure below is used to identify components of the presenta- *//* tion context list (both definition and result) *//************************************************************************/struct pc_def{ ST_INT result; /* result, used on response only */ ST_INT pci; /* pci, used only on confirms/indications */ /* This field must not be modified by the user */ ST_UINT asn_mask; /* abstract syntax name mask */ ST_UINT tsn_mask; /* transfer syntax name mask */} ;typedef struct pc_def PC_DEF;/************************************************************************//* The structure below is used to represent the user data list before *//* presentation contexts have been negotiated *//************************************************************************/struct u_data{ ST_INT list_index; /* for request/indication, this refers to an */ /* index into pc_deflist whose entry represents */ /* presentation context on which data is to be */ /* carried. For response/confirm, this refers */ /* to an index into result list */ ST_UINT tsn_mask; /* transfer syntax name mask */ ST_INT u_data_len; /* user data length */ ST_CHAR *user_data; /* pointer to user data */} ;typedef struct u_data U_DATA;/************************************************************************//* The structure below is used to represent the user data list after *//* presentation contexts have been negotiated *//************************************************************************/struct trans_data{ /* This is really asn_mask */ ST_UINT pci_mask; /* mask representing index into pci_table */ ST_INT len; /* data length */ ST_CHAR *data; /* pointer to data */} ;typedef struct trans_data TRANS_DATA;/************************************************************************//* The structure below is used to save Directory and other information *//* about local and remote AE's read in from SUIC.DIB *//************************************************************************/#if defined (MARBEN) || defined (DECNP5)#ifndef DIB_ENTRY_DEFINED#define DIB_ENTRY_DEFINEDstruct dib_entry{ DBL_LNK lnk; /* link pointer */ ST_LONG reserved; /* reserved field */ ST_LONG reserved2; /* reserved field */#if defined (MARBEN) && defined (_WIN32) ST_INT mngt_tag; /* management operation tag */ ST_CHAR host_name[MAX_HOST_LEN + 1]; ST_CHAR *comment;#endif#if DIRECTORY_SUPPORT ST_CHAR *name; /* user-defined ASCII character string */#else ST_CHAR name[MAX_NAME_LEN + 1]; /* user-defined ASCII character string */#endif ST_BOOLEAN local; /* local or remote name */#ifdef MARBEN ST_BOOLEAN sharable; /* shared flag (local names only) */#endif ST_INT transport; /* transport provider: TP4 vs. TCP */ ST_BOOLEAN AP_title_pres; /* present flag */ MMS_OBJ_ID AP_title; /* AP title */ ST_BOOLEAN AP_inv_id_pres; /* present flag */ ST_INT32 AP_invoke_id; /* AP invocation ID */ ST_BOOLEAN AE_qual_pres; /* present flag */ ST_INT32 AE_qual; /* AE qualifier */ ST_BOOLEAN AE_inv_id_pres; /* present flag */ ST_INT32 AE_invoke_id; /* AE invocation ID */ ST_INT p_sel_len; /* P-selector length */ ST_UCHAR p_sel[MAX_P_SEL]; /* P-selector */ ST_INT s_sel_len; /* S-selector length */ ST_UCHAR s_sel[MAX_T_SEL]; /* S-selector */ ST_INT t_sel_len; /* T-selector length */ ST_UCHAR t_sel[MAX_T_SEL]; /* T-selector */ ST_INT net_addr_len; /* Network address length */ ST_UCHAR net_addr[MAX_N_SEL]; /* Network address */ ST_INT port; /* TCP/IP port number */ ST_CHAR ip_addr[HOST_NAME_LEN + 1]; /* TCP/IP dotted decimal or host name *//*#ifdef PRODUCT_ONLY_VMS_ALPHA */ ST_INT ChannelTypeToUse; /*#endif */} ;typedef struct dib_entry DIB_ENTRY;#if defined (MARBEN)#if defined (_WIN32)typedef struct { ST_CHAR host_name[MAX_HOST_LEN + 1]; ST_INT net_addr_len; /* Network address length */ ST_UCHAR net_addr[MAX_N_SEL]; /* Network address */ ST_CHAR ip_addr[HOST_NAME_LEN + 1]; /* TCP/IP dotted decimal or host name */ } HOSTNAME_INFO;#endif /* defined (_WIN32) */#endif /* defined (MARBEN) *//************************************************************************//* Variables used for reading DIB file */extern ST_BOOLEAN s_manual_dib_load; /* User to set DIB Table */extern ST_INT num_dib_entries; /* Number of entries */extern DIB_ENTRY *dib_table; /* Pointer to dib table */#endif /* !DIB_ENTRY_DEFINED */#endif /* defined MARBEN */#define TYPE_ORIGINAL 0#define TYPE_UNIVERSAL 1extern ST_INT s_activate_type; /* local name activation type *//************************************************************************//************************************************************************//* Application Reference data structure *//************************************************************************/#define APP_REF_FORM1 0#define APP_REF_FORM2 1struct form1 { ST_UCHAR *ptr; /* ptr to something */ ST_INT16 len; /* length of contents at ptr */ };typedef struct form1 FORM1_T;struct app_ref { ST_INT16 form; /* tells if form 1 or form 2 */ ST_BOOLEAN ap_title_pres; /* tells if AP title is there */ union /* AP title differs in form */ { struct form1 form_1; /* form 1 of AP title is ASN.1 */ struct mms_obj_id form_2; /* form 2 of AP title is objectid*/ } ap_title; ST_BOOLEAN ap_invoke_pres; /* tells if AP invoke is there */ ST_INT32 ap_invoke; ST_BOOLEAN ae_qual_pres; /* tells if AE qualifier is there*/ union /* AE qualifier differs in form */ { struct form1 form_1; /* form 1 of AE qual is ASN.1 */ ST_INT32 form_2; /* form 2 if AE qual is long word*/ } ae_qual; ST_BOOLEAN ae_invoke_pres; /* tells if AE invoke is there */ ST_INT32 ae_invoke; };typedef struct app_ref APP_REF;/************************************************************************//* The structure below is used to identify PCI *//* Used by s_lookup_pci (). *//************************************************************************/struct pc{ ST_INT asn_index; /* index into asn_table */ ST_INT tsn_index; /* index into tsn_table */} ;typedef struct pc PC;/************************************************************************/ST_RET s_start (ST_VOID);ST_VOID s_end (ST_VOID);extern ST_VOID (*s_event_notify) (ST_VOID);extern ST_VOID (*s_usr_nap) (ST_VOID);extern ST_CHAR *(*s_send_priv_data) (ST_INT *);ST_BOOLEAN s_serve (ST_VOID);ST_VOID s_comm_disable (ST_VOID);ST_VOID s_comm_enable (ST_VOID);ST_BOOLEAN s_read_mail (ST_VOID);ST_VOID s_send_mail (ST_VOID);ST_INT s_lookup_pci (ST_INT chan, ST_INT pci_mask, PC *pc_arr);/* User defined 'done' functions */ST_VOID s_activate_done (ST_CHAR *name, ST_RET retcode);ST_VOID s_deactivate_done (ST_CHAR *name, ST_RET retcode);ST_VOID s_listen_done (ST_INT chan, ST_RET retcode);ST_VOID s_canlisten_done (ST_INT chan, ST_RET retcode);ST_VOID s_assreq_done (ST_INT chan, ST_RET retcode);ST_VOID s_assrsp_done (ST_INT chan, ST_RET retcode);ST_VOID s_relreq_done (ST_INT chan, ST_RET retcode);ST_VOID s_relrsp_done (ST_INT chan, ST_RET retcode);ST_VOID s_u_abort_done (ST_INT chan, ST_RET retcode);ST_VOID s_transfer_done (ST_INT chan, ST_RET retcode);ST_VOID s_receive_done (ST_INT chan, ST_RET retcode);/* User defined 'indication' functions */ST_VOID s_associate_ind (ST_INT chan, ST_INT num_pc_defs, PC_DEF *pc_deflist, ST_INT num_u_data, U_DATA *u_data_list, ST_BOOLEAN matched);ST_VOID s_associate_cnf (ST_INT chan, ST_INT num_result, PC_DEF *result_list, ST_INT num_u_data, U_DATA *u_data_list, ST_RET retcode);ST_VOID s_release_ind (ST_INT chan, ST_INT reason, ST_INT num_u_data, TRANS_DATA *u_data_list);ST_VOID s_release_cnf (ST_INT chan, ST_INT reason, ST_INT num_u_data, TRANS_DATA *u_data_list);ST_VOID s_u_abort_ind (ST_INT chan, ST_INT reason, ST_INT num_u_data, TRANS_DATA *u_data_list);ST_VOID s_p_abort_ind (ST_INT chan, ST_INT reason);ST_VOID s_transfer_ind (ST_INT chan, ST_INT num_trans, TRANS_DATA *data, ST_BOOLEAN eom);/* SUIC command functions */ST_RET s_reg_title (ST_INT chan, ST_CHAR *name);ST_RET s_activate (ST_CHAR *name);ST_RET s_deactivate (ST_CHAR *name);ST_RET s_load_part_info (ST_INT chan, ST_CHAR *name);ST_RET s_listen (ST_INT chan, ST_UINT ap_context_mask);ST_RET s_cancel_listen (ST_INT chan);ST_RET s_associate_req (ST_INT chan, ST_UINT ap_context_mask, ST_INT num_pc_defs, PC_DEF *pc_deflist, ST_INT num_u_data, U_DATA *u_data_list);ST_RET s_associate_rsp (ST_INT chan, ST_UINT ap_context_mask, ST_INT reason, ST_INT num_result, PC_DEF *result_list, ST_INT num_u_data, U_DATA *u_data_list);ST_RET s_release_req (ST_INT chan, ST_INT reason, ST_INT num_u_data, TRANS_DATA *u_data_list);ST_RET s_release_rsp (ST_INT chan, ST_INT reason, ST_INT num_u_data, TRANS_DATA *u_data_list);ST_RET s_u_abort (ST_INT chan, ST_INT reason, ST_INT num_u_data, TRANS_DATA *u_data_list);ST_RET s_receive (ST_INT chan);ST_RET s_transfer_req (ST_INT chan, ST_INT num_trans, TRANS_DATA *data, ST_BOOLEAN eom);ST_VOID s_free_databuf (ST_CHAR *buf);ST_BOOLEAN s_block (ST_INT seconds);ST_VOID s_except (ST_INT except_code);ST_RET s_set_ap_title (ST_CHAR *name, ST_BOOLEAN en, MMS_OBJ_ID *ap_title);ST_RET s_set_ae_qual (ST_CHAR *name, ST_BOOLEAN en, ST_INT32 ae_qual);ST_RET s_set_ap_invoke (ST_CHAR *name, ST_BOOLEAN en, ST_INT32 ap_invoke);ST_RET s_set_ae_invoke (ST_CHAR *name, ST_BOOLEAN en, ST_INT32 ae_invoke);ST_UINT s_install_ap_ctxt (MMS_OBJ_ID *ap_ctxt);ST_UINT s_install_asn (MMS_OBJ_ID *asn);ST_UINT s_install_tsn (MMS_OBJ_ID *tsn);ST_VOID s_perror (ST_RET errcode);ST_VOID s_perror_log (FILE *logfile, ST_RET errcode);ST_VOID s_perror_str (ST_CHAR *errbuf, ST_INT max_len, ST_RET errcode);ST_BOOLEAN s_chk_idle (ST_VOID);APP_REF *s_find_proc (ST_CHAR *arname);ST_INT s_find_arname (APP_REF *app_ref_ptr, ST_BOOLEAN match_ae_qual, ST_CHAR *ar_ptr);ST_RET s_find_paddr (ACSE_AR_INFO *ar_info, ST_CHAR *ar_ptr);#if defined (DIB_ENTRY_DEFINED)ST_RET s_add_rem_arname (DIB_ENTRY *dib);ST_RET s_del_rem_arname (ST_CHAR *name);ST_RET s_mod_rem_arname (DIB_ENTRY *dib);ST_RET s_get_rem_arname (ST_CHAR *name, DIB_ENTRY *dib);#if defined (MARBEN) && defined (_WIN32)ST_RET s_create_hostname (HOSTNAME_INFO *info);#endif#endif#if DIRECTORY_SUPPORT#include "mds.h"#endif#ifdef __cplusplus}#endif #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -