/********************************************************************************************************************************/ /* Created: 12-JUN-2006 19:46:26 by OpenVMS SDL EV1-69 */ /* Source: 13-FEB-1997 16:43:12 $2$DUA315:[OSAK.V30_AXP_BUILDS.VT.TEMP.SRC]OSAK */ /********************************************************************************************************************************/ /*** MODULE OSAK_DEFINITIONS IDENT V3-00 ***/ #pragma __member_alignment __save #pragma __nomember_alignment /* */ /* Copyright Digital Equipment Corporation 1985,1995. All rights reserved. */ /* */ /* Restricted Rights: Use, duplication, or disclosure by the U.S. Government */ /* is subject to restrictions as set forth in subparagraph (c) (1) (ii) of */ /* DFARS 252.227-7013, or in FAR 52.227-19, or in FAR 52.227-14 Alt. III, as */ /* applicable. */ /* */ /* This software is proprietary to and embodies the confidential technology */ /* of Digital Equipment Corporation. Possession, use, or copying of this */ /* software and media is authorized only pursuant to a valid written license */ /* from Digital or an authorised sublicensor. */ /* */ /*++ */ /* */ /* FACILITY: OSI Applications Kernel (OSAK) */ /* */ /* ABSTRACT: This file defines the common data structures */ /* used by the OSAK User Interfaces. */ /* */ /*-- */ #if !defined( __osak_api_h ) /* __osak_api_h sentry */ #define __osak_api_h /* Copyright Digital Equipment Corporation 1985,1995. All rights reserved. */ /* */ /* Restricted Rights: Use, duplication, or disclosure by the U.S. Government */ /* is subject to restrictions as set forth in subparagraph (c) (1) (ii) of */ /* DFARS 252.227-7013, or in FAR 52.227-19, or in FAR 52.227-14 Alt. III, as */ /* applicable. */ /* */ /* This software is proprietary to and embodies the confidential technology */ /* of Digital Equipment Corporation. Possession, use, or copying of this */ /* software and media is authorized only pursuant to a valid written license */ /* from Digital or an authorised sublicensor. */ /* */ typedef struct _osak_mem_descriptor { unsigned int size; /* length of string in bytes */ unsigned char *pointer; /* reference to string */ } osak_mem_descriptor; /* NSAP definition */ struct osak_nsap { struct osak_nsap *next; /* Next nsap */ osak_mem_descriptor id; /* Address */ int type; /* N-protocol in OSAK encoded form */ } ; /* Copyright Digital Equipment Corporation 1985,1995. All rights reserved. */ /* */ /* Restricted Rights: Use, duplication, or disclosure by the U.S. Government */ /* is subject to restrictions as set forth in subparagraph (c) (1) (ii) of */ /* DFARS 252.227-7013, or in FAR 52.227-19, or in FAR 52.227-14 Alt. III, as */ /* applicable. */ /* */ /* This software is proprietary to and embodies the confidential technology */ /* of Digital Equipment Corporation. Possession, use, or copying of this */ /* software and media is authorized only pursuant to a valid written license */ /* from Digital or an authorised sublicensor. */ /* */ /* */ /* OSAK status block */ /* */ struct osak_status_block { unsigned int osak_status_1; /* OSAK status */ unsigned int osak_status_2; /* Secondary OSAK status */ unsigned int transport_status_1; /* Transport Provider status */ unsigned int transport_status_2; /* Secondary transport provider status */ } ; /* */ /* Common service parameter types */ /* */ typedef unsigned char *osak_port; /* OSAK connection port */ typedef unsigned int (*osak_rtn)(); typedef unsigned int osak_process_id; typedef unsigned char *osak_channels; /* OSAK channels */ /* */ /* OSAK port list */ /* */ typedef unsigned char *osak_port_list; /* */ /* OSAK handle */ /* */ typedef struct _osak_handle { unsigned int id; /* handle id */ unsigned char request_mask; /* request event mask */ unsigned char returned_mask; /* returned event mask */ unsigned short int filler; } osak_handle; typedef unsigned int osak_handle_count; /* */ /* OSAK time */ /* */ typedef unsigned int osak_time; /* */ /* RFC1006 port */ /* */ typedef unsigned short int *osak_rfc1006_port; /* */ /* Transport template names */ /* */ struct osak_transport_templates { struct osak_transport_templates *next; /* Next element in the list */ osak_mem_descriptor name; /* Transport template name */ } ; /* */ /* Presentation address */ /* */ struct osak_paddress { osak_mem_descriptor psel; /* P SELECTOR */ osak_mem_descriptor ssel; /* S SELECTOR */ osak_mem_descriptor tsel; /* T SELECTOR */ struct osak_nsap nsap; /* NSAP */ } ; /* */ /* Application Entity Invocation Identifier */ /* */ struct osak_aeiid { osak_mem_descriptor apiid; /* AP Inv ID, TLV for ASN.1 INT */ osak_mem_descriptor aeiid; /* AE Inv ID, TLV for ASN.1 INT */ } ; /* */ /* Application Entity Title */ /* */ struct osak_ae_title { osak_mem_descriptor aptitle; /* AP-Title, TLV for ASN.1 OBJ ID */ osak_mem_descriptor ae_qualifier; /* AE-Qualifier,TLV for ASN.1 INT */ } ; /* */ /* Application Entity Invocation */ /* */ struct osak_aei { struct osak_paddress paddress; /* presentation address */ struct osak_ae_title aetitle; /* App Entity Title */ struct osak_aeiid aeiid; /* App Entity Invocation ID */ } ; /* */ /* ACSE Protocol version */ /* */ #define acsev_m_version1 1 #define acsev_m_reserved 254 struct osak_acse_version { unsigned version1 : 1; /* ACSE version 1 */ unsigned reserved : 7; /* reserved for future use */ } ; /* */ /* Presentation Protocol version */ /* */ #define pv_m_version1 1 #define pv_m_reserved 254 struct osak_pversion { unsigned version1 : 1; /* Presentation version 1 */ unsigned reserved : 7; /* reserved for future use */ } ; /* */ /* Session Protocol version */ /* */ #define sv_m_version1 1 #define sv_m_version2 2 #define sv_m_reserved 252 struct osak_sversion { unsigned version1 : 1; /* Session version 1 */ unsigned version2 : 1; /* Session version 2 */ unsigned reserved : 6; /* reserved for future use */ } ; /* */ /* Upper Layer Protocol versions (for use in A-ASSOCIATE) */ /* */ struct osak_protocol_versions { struct osak_acse_version acse_version; /* ACSE versions */ struct osak_pversion pversion; /* Presentation versions */ struct osak_sversion sversion; /* Session versions */ unsigned char filler; } ; /* */ /* Transport provider information */ /* */ /* */ /* Send and Receive Buffer */ /* */ struct osak_buffer { struct osak_buffer *next; /* next element in list */ unsigned char *buffer_ptr; /* start of actual buffer */ unsigned int buffer_length; /* size of actual buffer */ unsigned char *data_ptr; /* start of user data */ unsigned int data_length; /* length of user data */ unsigned int reserved [4]; /* reserved */ } ; /* */ /* Session Functional units */ /* */ #define fus_m_half_duplex 1 #define fus_m_duplex 2 #define fus_m_expedited 4 #define fus_m_syncminor 8 #define fus_m_syncmajor 16 #define fus_m_resynchronize 32 #define fus_m_activities 64 #define fus_m_negotiated_release 128 #define fus_m_capability_data 256 #define fus_m_exceptions 512 #define fus_m_typed_data 1024 #define fus_m_data_separation 2048 #define fus_m_reserved1 61440 #define fus_m_context_management 65536 #define fus_m_reserved2 131072 #define fus_m_reserved3 -262144 struct osak_fus { unsigned half_duplex : 1; /* Start of Session FUs */ unsigned duplex : 1; unsigned expedited : 1; unsigned syncminor : 1; unsigned syncmajor : 1; unsigned resynchronize : 1; unsigned activities : 1; unsigned negotiated_release : 1; unsigned capability_data : 1; unsigned exceptions : 1; unsigned typed_data : 1; unsigned data_separation : 1; unsigned reserved1 : 4; /*for future use */ unsigned context_management : 1; /* Start of Presentation Fus */ unsigned reserved2 : 1; /* contextrestoration for future use */ unsigned reserved3 : 14; /* reserved for future use */ } ; /* */ /* Rejection types */ /* */ typedef unsigned int osak_reject_reason; /* association reject reason */ /* */ /* Synchronization types */ /* */ typedef unsigned int osak_sync_point; /* Sync Point serial number */ typedef int osak_sync_confirm; /* Sync point confirmation type */ typedef unsigned int osak_resync_type; /* Resync type */ typedef unsigned int osak_data_separation; /* Data separation */ /* */ /* Token types */ /* */ #define toks_m_data 3 #define toks_m_sync_minor 12 #define toks_m_major_activity 48 #define toks_m_release 192 struct osak_token_setting { unsigned data : 2; /* data token */ unsigned sync_minor : 2; /* Sync minor token */ unsigned major_activity : 2; /* Sync major/activity token */ unsigned release : 2; /* release token */ } ; /* */ /* Exception type */ /* */ typedef unsigned int osak_exception_reason; /* exception reason */ /* */ /* Event type */ /* */ typedef unsigned int osak_event; /* event code */ /* */ /* Activity types */ /* */ typedef unsigned int osak_activity_reason; /* Activity Reason */ typedef unsigned char osak_activity_id [6]; /* Activity Identifier */ /* */ /* Abort Reason */ /* */ typedef unsigned int osak_abort_reason; /* */ /* Abort PPDU for event identifier in P-P-Abort */ /* */ typedef unsigned int osak_abort_ppdu; /* */ /* Release types */ /* */ typedef unsigned int osak_release_reason; /* Release reason */ typedef unsigned int osak_release_resp_reason; /* Release Response reason */ typedef unsigned int osak_action_result; /* Action result */ /* */ /* Session segmentation */ /* */ struct osak_segmentation { unsigned short int init_resp; /* direction initiator->responder */ unsigned short int resp_init; /* direction responder->initiator */ } ; /* */ /* Session Connect Identification */ /* */ struct osak_sconnect_id { osak_mem_descriptor ss_user_ref; /* SS User reference */ osak_mem_descriptor common_ref; /* Common reference */ osak_mem_descriptor add_ref_info; /* Additional reference info */ } ; /* */ /* Session Connection Identification */ /* */ struct osak_sconnection_id { osak_mem_descriptor called_ss_user_ref; /* Called SS User ref */ osak_mem_descriptor calling_ss_user_ref; /* Calling SS User ref */ osak_mem_descriptor common_ref; /* Common reference */ osak_mem_descriptor add_ref_info; /* Additional reference info */ } ; /* */ /* Presentation Context Information */ /* */ /* Transfer Syntax Name List */ /* */ struct osak_ts_list { struct osak_ts_list *next; /* pointer to next element */ osak_mem_descriptor ts_name; /* xfer syntax, TLV for ASN.1 OBJ ID */ } ; /* */ /* Presentation Context */ /* */ struct osak_pcontext { struct osak_pcontext *next; /* pointer to next element */ osak_mem_descriptor pcontext_id; /* TLV for ASN.1 INTEGER */ osak_mem_descriptor ts_name; /* TLV for ASN.1 OBJ ID */ osak_mem_descriptor as_name; /* TLV for ASN.1 OBJ ID */ } ; /* */ /* Presentation Context Proposal List */ /* */ struct osak_pcontext_proposal { struct osak_pcontext_proposal *next; /*next element */ osak_mem_descriptor pcontext_id; /* TLV for ASN.1 INTEGER */ struct osak_ts_list *ts_list; /* list of xfer syntax names */ unsigned int filler_3; /* filler */ osak_mem_descriptor as_name; /* TLV for ASN.1 OBJ ID */ } ; /* */ /* Default context definition */ /* */ struct osak_default_context { osak_mem_descriptor ts_name; /* TLV for ASN.1 OBJ ID */ osak_mem_descriptor as_name; /* TLV for ASN.1 OBJ ID */ } ; /* */ /* Presentation Context Identifier List */ /* */ struct osak_pcontext_id { struct osak_pcontext_id *next; /* next element */ osak_mem_descriptor pcontext_id; /* TLV for ASN.1 INTEGER */ osak_mem_descriptor ts_name; /* TLV for ASN.1 OBJ ID */ } ; /* */ /* Presentation Context Deletion list */ /* */ struct osak_pcontext_deletion { struct osak_pcontext_deletion *next; /* next element */ osak_mem_descriptor pcontext_id; /* TLV for ASN.1 INTEGER */ } ; struct osak_pcontext_proposal_result { struct osak_pcontext_proposal_result *next; /* next element */ osak_mem_descriptor ts_name; /* TLV for ASN.1 OBJ ID */ unsigned int result; /* Result value */ unsigned int reason; /* provider reason */ } ; /* */ /* Presentation Context Deletion Result List */ /* */ struct osak_pcontext_deletion_result { struct osak_pcontext_deletion_result *next; /* next element */ unsigned int result; /* deletion result value */ } ; /* */ /* Presentation default context result */ /* */ typedef unsigned int osak_default_context_result; /* */ /* State information for osak_status function call */ /* */ struct osak_state { int initiator; /* TRUE if initiator,FALSE if responder */ unsigned char pm_state; /* State of association */ unsigned char filler1; unsigned short int filler2; } ; #define po_m_extended 1 #define po_m_reserved 254 struct osak_protocol_options { unsigned extended : 1; /* extended concatenation(not supported) */ unsigned reserved : 7; /* reserved for future use */ unsigned char filler1; unsigned short int filler2; } ; /* */ /* Presentation DCS for use by trace */ /* */ struct osak_dcs_pcontext { struct osak_dcs_pcontext *next; /* pointer to next element */ osak_mem_descriptor pcontext_id; /* TLV for ASN.1 INTEGER */ osak_mem_descriptor as_name; /* TLV for ASN.1 OBJ ID */ osak_mem_descriptor ts_name; /* TLV for ASN.1 OBJ ID */ } ; /* */ /* Transport Characteristics */ /* */ typedef unsigned char osak_transport_class; struct osak_trans_characteristics { #ifdef __cplusplus osak_transport_class primary_class; /* Transport class */ #else osak_transport_class class; /* Transport class */ #endif osak_transport_class alternate_class; /* Alternate transport class */ unsigned long int expedited_flag; /* Use transport expedited */ unsigned long int checksums_flag; /* Use checksums */ } ; #define RESERVED_AREA 40 struct osak_parameter_block { unsigned int pb_length; unsigned int ws_length; unsigned int func; struct osak_buffer *tsdu_ptr; struct osak_parameter_block *next_pb; osak_port port_id; osak_event event_type; int more_flag; unsigned int *data_length; struct osak_buffer *user_data; struct osak_buffer *peer_data; unsigned int acse_pci_eoc; unsigned int pres_pci_eoc; struct osak_status_block status_block; struct osak_aei *local_aei; struct osak_aeiid *actual_aeiid; osak_mem_descriptor *acontext; struct osak_aei *calling_aei; struct osak_aei *called_aei; struct osak_transport_templates *transport_template; struct osak_protocol_versions *protocol_versions; struct osak_sconnect_id *sconnect_id; struct osak_protocol_options *protocol_options; struct osak_segmentation *segmentation; osak_sync_point *initial_serial_number; struct osak_token_setting *initial_tokens; struct osak_fus *functional_units; struct osak_pcontext_proposal *pcontext_list; struct osak_default_context *pdefault_context; struct osak_aei *responding_aei; struct osak_pcontext_proposal_result *pcontext_res_list; osak_default_context_result *pdefault_context_res; osak_reject_reason reject_reason; struct osak_token_setting *request_tokens; struct osak_pcontext_deletion *pcontext_del_list; struct osak_pcontext_deletion_result *pcontext_del_res_list; struct osak_token_setting *token_item; osak_sync_confirm sync_confirm; osak_sync_point *sync_point; osak_resync_type resync_type; struct osak_pcontext_id *pcontext_id_list; struct osak_token_setting *tokens; osak_exception_reason exception_reason; osak_mem_descriptor activity_id; osak_mem_descriptor old_activity_id; struct osak_sconnection_id *old_sconnection_id; osak_activity_reason *activity_reason; osak_abort_reason abort_reason; osak_abort_ppdu abort_ppdu; int local_abort; osak_release_reason release_reason; osak_release_resp_reason release_resp_reason; osak_action_result *action_result; struct osak_state redirect_state; osak_process_id *process_id; osak_mem_descriptor *process_name; struct osak_pcontext *pcontext_redirect_list; struct osak_buffer *rcv_data_list; osak_mem_descriptor *local_data; osak_rtn alloc_rtn; osak_rtn dealloc_rtn; unsigned int alloc_param; osak_rtn completion_rtn; unsigned int completion_param; struct osak_trans_characteristics *trans_characteristics; unsigned int api_version; void *user_context; osak_data_separation data_separation; osak_rfc1006_port rfc1006_port; } ; #define V20_API_PB_SIZE 280 #define V30_API_PB_SIZE sizeof( struct osak_parameter_block ) #define API_PB_SIZE sizeof( struct osak_parameter_block ) /* */ /* Define ROSE API structures. [021] */ /* */ typedef unsigned int osak_rose_reason; typedef unsigned int osak_rose_problem; struct osak_rose_pb { unsigned int pdu_type; /* ROSE PDU type */ unsigned int pb_length; /* Parameter block length */ unsigned int ws_length; /* Working space length */ osak_mem_descriptor invoke_id; /* Invoke identification */ osak_mem_descriptor linked_id; /* Linked identification */ osak_mem_descriptor local_value; /* Local operation value */ osak_mem_descriptor global_value; /* Global operation value */ osak_rose_reason *reason; /* ROSE REJECT reason */ osak_rose_problem *problem; /* ROSE REJECT problem */ struct osak_status_block status_block; /* ROSE status block */ unsigned int arg_length; /* Argument length */ struct osak_buffer *buffer; /* ROSE output buffer */ } ; #define ROSE_PB_SIZE sizeof( struct osak_rose_pb ) #define WS_REASON_OFFSET 0 #define WS_PROBLEM_OFFSET sizeof( osak_rose_reason ) #define ROSE_WS_SIZE (sizeof( osak_rose_reason ) + sizeof( osak_rose_problem )) #endif /* __osak_api_h sentry */ #pragma __member_alignment __restore