; ******************************************************************************************************************************** ; Created: 27-Oct-2009 11:42:06 by OpenVMS SDL EV2-3 ; Source: 27-OCT-2009 11:42:00 DISK$SYSMAN:[LAISHEV.WORK.DCPP]ADCDEF.SDL;96 ; ******************************************************************************************************************************** .MACRO $ADCDEF,$GBL $DEFINI ADC,$GBL ; ++ ; ; Facility: ; Advanced Direct Connection ; ; Abstract: ; This is an interface module contains data structures definitions, ; constants, functions/procedures prototypes. ; Based on spec: http://adc.sourceforge.net/ADC.html ; ; Author: ; Ruslan R. Laishev ; ; Creation Date: 03-JUL-2009 ; ; Modification History: ; ; -- $EQU ADC$PORT_adc 412 $EQU ADC$EOL_adc 10 ; ; Queue/Double Linked list ; $EQU que_S_que 16 $EQU que_a_flink 0 $EQU que_a_blink 4 $EQU asc_S_asc 65 $EQU asc_b_asc 0 $EQU asc_S_asc 64 $EQU asc_t_asc 1 $EQU ichc_S_buf 2066 $EQU ichc_r_link 0 $EQU ichc_w_len 16 $EQU ichc_S_buf 2048 $EQU ichc_b_buf 18 ; ; ADC Message Types ; $EQU ADC$MT_BROAD 1 ; Hub must send message to all connected clients, including the sender of the message. $EQU ADC$MT_CLIENT 2 ; Clients must use this message type when communicating directly over TCP. $EQU ADC$MT_DIRECT 3 ; The hub must send the message to the target_sid user. $EQU ADC$MT_ECHO 4 ; The hub must send the message to the target_sid user and the my_sid user. $EQU ADC$MT_FEAT 5 ; The hub must send message to all clients that support both all required (+) ; and no excluded (-) features named. ; The feature name is matched against the corresponding SU field in INF sent by each client. $EQU ADC$MT_HUB 6 ; Clients must use this message type when a message is intended for the hub only. $EQU ADC$MT_INFO 7 ; Hubs must use this message type when sending a message to a client that didn't ; come from another client. $EQU ADC$MT_UDP 8 ; Clients must use this message type when communicating directly over UDP. ; ; BASE messages ; $EQU ADC$MT_FROMHUB 1 ; F - From hub (hub-client TCP) $EQU ADC$MT_TOHUB 2 ; T - To hub (hub-client TCP) $EQU ADC$MT_TC2C 3 ; C - Between clients (client-client TCP) $EQU ADC$MT_UC2CP 4 ; U - Between clients (client-client UDP) ; ; ADC Actions ; $EQU ADC$ACT_STA 1 $EQU ADC$ACT_SUP 2 $EQU ADC$ACT_SID 3 $EQU ADC$ACT_INF 4 $EQU ADC$ACT_MSG 5 $EQU ADC$ACT_SCH 6 $EQU ADC$ACT_RES 7 $EQU ADC$ACT_CTM 8 $EQU ADC$ACT_RCM 9 $EQU ADC$ACT_GPA 10 $EQU ADC$ACT_PAS 11 $EQU ADC$ACT_QUI 12 $EQU ADC$ACT_GET 13 $EQU ADC$ACT_GFI 14 $EQU ADC$ACT_SND 15 ; ; SCH/SEARCH options ; $EQU sch$m_an <^X1> $EQU sch$m_no <^X2> $EQU sch$m_ex <^X4> $EQU sch$m_le <^X8> $EQU sch$m_ge <^X10> $EQU sch$m_eq <^X20> $EQU sch$m_to <^X40> $EQU sch$m_ty <^X80> $EQU sch$S_sch 4 $EQU sch$l_flags 0 $EQU sch$v_an 0 $EQU sch$v_no 1 $EQU sch$v_ex 2 $EQU sch$v_le 3 $EQU sch$v_ge 4 $EQU sch$v_eq 5 $EQU sch$v_to 6 $EQU sch$v_ty 7 ; ; RES/SEARCH's result options ; $EQU res$m_fn <^X1> $EQU res$m_si <^X2> $EQU res$m_sl <^X4> $EQU res$m_to <^X8> $EQU res$S_res 4 $EQU res$l_flags 0 $EQU res$v_fn 0 $EQU res$v_si 1 $EQU res$v_sl 2 $EQU res$v_to 3 ; ; SUP/SUPPORTED Features options ; $EQU sup$m_base <^X1> $EQU sup$m_tigr <^X2> $EQU sup$m_bzip <^X4> $EQU sup$m_zlif <^X8> $EQU sup$m_zlig <^X10> $EQU sup$S_sup 4 $EQU sup$l_flags 0 $EQU sup$v_base 0 $EQU sup$v_tigr 1 $EQU sup$v_bzip 2 $EQU sup$v_zlif 3 $EQU sup$v_zlig 4 ; ; ADC client's INFormation structure ; ; ; ADC Actions ; $EQU inf$m_id <^X1> $EQU inf$m_pd <^X2> $EQU inf$m_i4 <^X4> $EQU inf$m_i6 <^X8> $EQU inf$m_u4 <^X10> $EQU inf$m_u6 <^X20> $EQU inf$m_ss <^X40> $EQU inf$m_sf <^X80> $EQU inf$m_ve <^X100> $EQU inf$m_us <^X200> $EQU inf$m_ds <^X400> $EQU inf$m_sl <^X800> $EQU inf$m_as <^X1000> $EQU inf$m_am <^X2000> $EQU inf$m_em <^X4000> $EQU inf$m_ni <^X8000> $EQU inf$m_de <^X10000> $EQU inf$m_hn <^X20000> $EQU inf$m_hr <^X40000> $EQU inf$m_ho <^X80000> $EQU inf$m_to <^X100000> $EQU inf$m_ct <^X200000> $EQU inf$m_aw <^X400000> $EQU inf$m_su <^X800000> $EQU inf$m_rf <^X1000000> $EQU inf$m_bot <^X1> $EQU inf$m_user <^X2> $EQU inf$m_oper <^X4> $EQU inf$m_mgr <^X8> $EQU inf$m_owner <^X10> $EQU inf$m_hub <^X20> $EQU inf$S_inf 661 $EQU inf$l_inf 0 $EQU inf$v_id 0 $EQU inf$v_pd 1 $EQU inf$v_i4 2 $EQU inf$v_i6 3 $EQU inf$v_u4 4 $EQU inf$v_u6 5 $EQU inf$v_ss 6 $EQU inf$v_sf 7 $EQU inf$v_ve 8 $EQU inf$v_us 9 $EQU inf$v_ds 10 $EQU inf$v_sl 11 $EQU inf$v_as 12 $EQU inf$v_am 13 $EQU inf$v_em 14 $EQU inf$v_ni 15 $EQU inf$v_de 16 $EQU inf$v_hn 17 $EQU inf$v_hr 18 $EQU inf$v_ho 19 $EQU inf$v_to 20 $EQU inf$v_ct 21 $EQU inf$v_aw 22 $EQU inf$v_su 23 $EQU inf$v_rf 24 $EQU inf$r_id 4 $EQU inf$r_pd 69 $EQU inf$l_i4 134 $EQU inf$S_i6 8 $EQU inf$q_i6 138 $EQU inf$l_u4 146 $EQU inf$l_u6 150 $EQU inf$S_ss 8 $EQU inf$q_ss 154 $EQU inf$l_sf 162 $EQU inf$r_ve 166 $EQU inf$l_us 231 $EQU inf$l_ds 235 $EQU inf$l_sl 239 $EQU inf$l_as 243 $EQU inf$l_am 247 $EQU inf$r_em 251 $EQU inf$r_ni 316 $EQU inf$r_de 381 $EQU inf$l_hn 446 $EQU inf$l_hr 450 $EQU inf$l_ho 454 $EQU inf$r_to 458 $EQU inf$l_ct 523 $EQU inf$v_bot 0 $EQU inf$v_user 1 $EQU inf$v_oper 2 $EQU inf$v_mgr 3 $EQU inf$v_owner 4 $EQU inf$v_hub 5 $EQU inf$l_aw 527 $EQU inf$r_su 531 $EQU inf$r_rf 596 ; ; ADC Message fields arguments ; $EQU msg$S_msg 942 $EQU msg$r_link 0 $EQU msg$S_sid 20 $EQU msg$v_sid 128 ; SID of message originator $EQU msg$b_mt 19 ; See ADC Message Types constant $EQU msg$b_act 20 ; ADC Actions $EQU msg$S_bl 661 $EQU msg$r_bl 21 $EQU msg$r_inf 21 $EQU msg$l_opts 682 $EQU msg$S_line 256 $EQU msg$r_line 686 $EQU msg$b_len 686 $EQU msg$S_sts 255 $EQU msg$t_sts 687 ; ; ADC user's session context ; $EQU ctx$m_identify <^X1> $EQU ctx$m_verify <^X2> $EQU ctx$m_normal <^X4> $EQU ctx$m_data <^X8> $EQU ctx$S_ctx 2878 $EQU ctx$r_link 0 $EQU ctx$S_sid 20 $EQU ctx$v_sid 128 ; Session Id $EQU ctx$l_chan 19 ; Network I/O channel $EQU ctx$l_addr 23 ; struct in_addr $EQU ctx$w_port 27 $EQU addr_S_addr 33 $EQU ctx$r_addr 29 $EQU addr_b_len 29 $EQU addr_S_sts 32 $EQU addr_t_sts 30 $EQU ctx$r_inf 62 $EQU ctx$S_salt 32 $EQU ctx$b_salt 723 $EQU ctx$r_user 755 $EQU ctx$l_state 820 $EQU ctx$v_identify 0 $EQU ctx$v_verify 1 $EQU ctx$v_normal 2 $EQU ctx$v_data 3 $EQU ctx$l_opts 824 $EQU buf_S_buf 2050 $EQU ctx$r_buf 828 $EQU buf_w_len 828 $EQU buf_S_buf 2048 $EQU buf_b_buf 830 ; ; ; $EQU ctx$m_used <^X1> $EQU ctx$S_ent 8 $EQU ctx$l_flag 0 $EQU ctx$v_used 0 $EQU ctx$a_ptr 4 ; ; ; $EQU vec$S_vec 432 $EQU vec$r_ni 0 $EQU vec$r_de 65 $EQU vec$r_ve 130 $EQU vec$r_hh 195 $EQU vec$r_ws 260 $EQU vec$r_ow 325 $EQU vec$w_uc 390 $EQU vec$S_ss 8 $EQU vec$q_ss 392 $EQU vec$l_sf 400 $EQU vec$l_ms 404 $EQU vec$w_mc 408 $EQU vec$S_minss 8 $EQU vec$q_minss 416 ; Minimum Shared Size $EQU vec$l_minsf 424 ; Minimum Shared Files $EQU vec$l_minsl 428 ; Minimum slots $DEFEND ADC,$GBL,DEF .ENDM