Lines Matching refs:sm
181 smc->sm.smt_tid = 0 ; in smt_agent_init()
189 smc->sm.pend[i] = 0 ; in smt_agent_init()
190 smc->sm.please_reconnect = 0 ; in smt_agent_init()
191 smc->sm.uniq_ticks = 0 ; in smt_agent_init()
204 smt_timer_start(smc,&smc->sm.smt_timer, (u_long)1000000L, in smt_agent_task()
217 count = ((time - smc->sm.last_tok_time[mac_index]) * in smt_emulate_token_ct()
231 smc->sm.last_tok_time[mac_index] = time; in smt_emulate_token_ct()
245 if (smc->sm.please_reconnect) { in smt_event()
246 smc->sm.please_reconnect -- ; in smt_event()
247 if (smc->sm.please_reconnect == 0) { in smt_event()
280 if (time - smc->sm.smt_last_lem >= TICKS_PER_SECOND*8) { in smt_event()
295 smc->sm.smt_last_lem = time ; in smt_event()
379 if (time - smc->sm.smt_last_notify >= (u_long) in smt_event()
387 if (!smc->sm.pend[SMT_TID_NIF]) in smt_event()
388 smc->sm.pend[SMT_TID_NIF] = smt_get_tid(smc) ; in smt_event()
390 smc->sm.pend[SMT_TID_NIF], SMT_REQUEST,0) ; in smt_event()
391 smc->sm.smt_last_notify = time ; in smt_event()
397 if (smc->sm.smt_tvu && in smt_event()
398 time - smc->sm.smt_tvu > 228*TICKS_PER_SECOND) { in smt_event()
400 smc->sm.smt_tvu = 0 ; in smt_event()
420 if (smc->sm.smt_tvd && in smt_event()
421 time - smc->sm.smt_tvd > 228*TICKS_PER_SECOND) { in smt_event()
423 smc->sm.smt_tvd = 0 ; in smt_event()
443 if (time - smc->sm.last_tok_time[i] > 2*TICKS_PER_SECOND ){ in smt_event()
449 smt_timer_start(smc,&smc->sm.smt_timer, (u_long)1000000L, in smt_event()
472 struct smt_header *sm ; in smt_received_pack() local
489 sm = smtod(mb,struct smt_header *) ; in smt_received_pack()
491 hwm_conv_can(smc,(char *)sm,12) ; in smt_received_pack()
494 if (is_individual(&sm->smt_dest) && !is_my_addr(smc,&sm->smt_dest)) { in smt_received_pack()
500 if (is_my_addr(smc,&sm->smt_source) && !local) { in smt_received_pack()
506 smt_swap_para(sm,(int) mb->sm_len,1) ; in smt_received_pack()
508 smt_type_name[m_fc(mb) & 0xf],sm) ; in smt_received_pack()
509 DB_SMT("SMT : version %d, class %s\n",sm->smt_version, in smt_received_pack()
510 smt_class_name[(sm->smt_class>LAST_CLASS)?0 : sm->smt_class]) ; in smt_received_pack()
516 if (m_fc(mb) == FC_SMT_NSA && sm->smt_class == SMT_NIF && in smt_received_pack()
517 (sm->smt_type == SMT_ANNOUNCE || sm->smt_type == SMT_REQUEST)) { in smt_received_pack()
518 smc->sba.sm = sm ; in smt_received_pack()
528 addr_to_string(&sm->smt_source),0) ; in smt_received_pack()
536 if (((sm->smt_class == SMT_ECF) && (sm->smt_len > SMT_MAX_ECHO_LEN)) || in smt_received_pack()
537 ((sm->smt_class != SMT_ECF) && (sm->smt_len > SMT_MAX_INFO_LEN))) { in smt_received_pack()
545 switch (sm->smt_class) { in smt_received_pack()
550 if (sm->smt_version != SMT_VID) in smt_received_pack()
554 if (sm->smt_version != SMT_VID_2) in smt_received_pack()
560 sm->smt_version,addr_to_string(&sm->smt_source)) ; in smt_received_pack()
565 if ((sm->smt_len > mb->sm_len - sizeof(struct smt_header)) || in smt_received_pack()
566 ((sm->smt_len & 3) && (sm->smt_class != SMT_ECF))) { in smt_received_pack()
567 DB_SMT("SMT: info length error, len = %d\n",sm->smt_len,0) ; in smt_received_pack()
572 switch (sm->smt_class) { in smt_received_pack()
574 if (smt_check_para(smc,sm,plist_nif)) { in smt_received_pack()
578 switch (sm->smt_type) { in smt_received_pack()
582 && is_broadcast(&sm->smt_dest)) { in smt_received_pack()
588 &sm->smt_source)) { in smt_received_pack()
590 addr_to_string(&sm->smt_source),0) ; in smt_received_pack()
599 sm->smt_source ; in smt_received_pack()
605 smc->sm.smt_tvu = smt_get_time() ; in smt_received_pack()
607 sm_to_para(smc,sm,SMT_P_STATE) ; in smt_received_pack()
615 if ((sm->smt_type == SMT_REQUEST) && in smt_received_pack()
616 is_individual(&sm->smt_source) && in smt_received_pack()
620 addr_to_string(&sm->smt_source),0) ; in smt_received_pack()
621 smt_send_nif(smc,&sm->smt_source, in smt_received_pack()
623 sm->smt_tid, in smt_received_pack()
629 addr_to_string(&sm->smt_source),0) ; in smt_received_pack()
631 smc->sm.pend[SMT_TID_NIF] = 0 ; in smt_received_pack()
641 if (sm->smt_tid == smc->sm.pend[SMT_TID_NIF]) { in smt_received_pack()
642 smc->sm.pend[SMT_TID_NIF] = 0 ; in smt_received_pack()
646 &sm->smt_source)) { in smt_received_pack()
656 sm->smt_source ; in smt_received_pack()
664 smc->sm.smt_tvd = smt_get_time() ; in smt_received_pack()
672 else if (sm->smt_tid == in smt_received_pack()
673 smc->sm.pend[SMT_TID_NIF_TEST]) { in smt_received_pack()
678 smc->sm.pend[SMT_TID_NIF],sm->smt_tid) ; in smt_received_pack()
687 if (sm->smt_type != SMT_REQUEST) in smt_received_pack()
690 addr_to_string(&sm->smt_source),0) ; in smt_received_pack()
691 smt_send_sif_config(smc,&sm->smt_source,sm->smt_tid,local) ; in smt_received_pack()
694 if (sm->smt_type != SMT_REQUEST) in smt_received_pack()
697 addr_to_string(&sm->smt_source),0) ; in smt_received_pack()
698 smt_send_sif_operation(smc,&sm->smt_source,sm->smt_tid,local) ; in smt_received_pack()
701 switch (sm->smt_type) { in smt_received_pack()
705 addr_to_string(&sm->smt_source),0) ; in smt_received_pack()
706 if (sm_to_para(smc,sm,SMT_P_ECHODATA) == NULL) { in smt_received_pack()
710 if (sm->smt_tid == smc->sm.pend[SMT_TID_ECF]) { in smt_received_pack()
713 else if (sm->smt_tid == smc->sm.pend[SMT_TID_ECF_UNA]) { in smt_received_pack()
716 else if (sm->smt_tid == smc->sm.pend[SMT_TID_ECF_DNA]) { in smt_received_pack()
721 smc->sm.pend[SMT_TID_ECF], in smt_received_pack()
722 sm->smt_tid) ; in smt_received_pack()
728 if (sm->smt_len && !sm_to_para(smc,sm,SMT_P_ECHODATA)) { in smt_received_pack()
735 addr_to_string(&sm->smt_source),0) ; in smt_received_pack()
738 sm->smt_dest = sm->smt_source ; in smt_received_pack()
739 sm->smt_type = SMT_REPLY ; in smt_received_pack()
740 dump_smt(smc,sm,"ECF REPLY") ; in smt_received_pack()
754 fs = ess_raf_received_pack(smc,mb,sm,fs) ; in smt_received_pack()
759 sba_raf_received_pack(smc,sm,fs) ; in smt_received_pack()
766 if (sm->smt_type == SMT_REQUEST) { in smt_received_pack()
773 if (sm->smt_type != SMT_REQUEST) in smt_received_pack()
776 if (sm->smt_class == SMT_PMF_GET) in smt_received_pack()
783 if ((sm->smt_class == SMT_PMF_SET) && in smt_received_pack()
784 !is_individual(&sm->smt_dest)) { in smt_received_pack()
791 dump_smt(smc,sm,"SRF received") ; in smt_received_pack()
794 if (sm->smt_type != SMT_REQUEST) in smt_received_pack()
802 sm->smt_class, addr_to_string(&sm->smt_source)) ; in smt_received_pack()
837 struct smt_header *sm ; in smt_send_frame() local
843 sm = smtod(mb,struct smt_header *) ; in smt_send_frame()
844 sm->smt_source = smc->mib.m[MAC0].fddiMACSMTAddress ; in smt_send_frame()
845 sm->smt_sid = smc->mib.fddiSMTStationId ; in smt_send_frame()
847 smt_swap_para(sm,(int) mb->sm_len,0) ; /* swap para & header */ in smt_send_frame()
848 hwm_conv_can(smc,(char *)sm,12) ; /* convert SA and DA */ in smt_send_frame()
863 struct smt_header *sm ; /* header of offending frame */ in smt_send_rdf() local
868 sm = smtod(rej,struct smt_header *) ; in smt_send_rdf()
869 if (sm->smt_type != SMT_REQUEST) in smt_send_rdf()
873 addr_to_string(&sm->smt_source),reason) ; in smt_send_rdf()
885 rdf->smt.smt_tid = sm->smt_tid ; /* use TID from sm */ in smt_send_rdf()
886 rdf->smt.smt_dest = sm->smt_source ; /* set dest = source */ in smt_send_rdf()
917 smt_swap_para(sm,frame_len,0) ; in smt_send_rdf()
919 memcpy((char *) &rdf->refused.ref_header,(char *) sm,len) ; in smt_send_rdf()
964 smc->sm.pend[SMT_TID_NIF_TEST] = smt_get_tid(smc) ; in smt_send_nif_request()
965 smt_send_nif(smc,dest, FC_SMT_INFO, smc->sm.pend[SMT_TID_NIF_TEST], in smt_send_nif_request()
975 smc->sm.pend[SMT_TID_ECF] = smt_get_tid(smc) ; in smt_send_ecf_request()
976 smt_send_ecf(smc,dest, FC_SMT_INFO, smc->sm.pend[SMT_TID_ECF], in smt_send_ecf_request()
988 smc->sm.pend[dna ? SMT_TID_ECF_DNA : SMT_TID_ECF_UNA] = in smt_echo_test()
1248 p[6] = (u_char)(smc->sm.uniq_ticks>>8) ; in smt_set_timestamp()
1249 p[7] = (u_char)smc->sm.uniq_ticks ; in smt_set_timestamp()
1253 if (utime != smc->sm.uniq_time) { in smt_set_timestamp()
1254 smc->sm.uniq_ticks = 0 ; in smt_set_timestamp()
1256 smc->sm.uniq_ticks++ ; in smt_set_timestamp()
1257 smc->sm.uniq_time = utime ; in smt_set_timestamp()
1564 while ((tid = ++(smc->sm.smt_tid) ^ SMT_TID_MAGIC) == 0) in smt_get_tid()
1650 int smt_check_para(struct s_smc *smc, struct smt_header *sm, in smt_check_para() argument
1655 if (!sm_to_para(smc,sm,(int) *p)) { in smt_check_para()
1664 void *sm_to_para(struct s_smc *smc, struct smt_header *sm, int para) in sm_to_para() argument
1673 len = sm->smt_len ; in sm_to_para()
1674 p = (char *)(sm+1) ; /* pointer to info */ in sm_to_para()
1826 void smt_swap_para(struct smt_header *sm, int len, int direction) in smt_swap_para() argument
1839 smt_string_swap((char *)sm,SWAP_SMTHEADER,len) ; in smt_swap_para()
1844 p = (char *) (sm + 1) ; in smt_swap_para()
1924 void smt_swap_para(struct smt_header *sm, int len, int direction) in smt_swap_para() argument
1927 SK_UNUSED(sm) ; in smt_swap_para()