📄 cmtdef.h
字号:
/* * SMT timer */struct smt_timer { struct smt_timer *tm_next ; /* linked list */ struct s_smc *tm_smc ; /* pointer to context */ u_long tm_delta ; /* delta time */ u_long tm_token ; /* token value */ u_short tm_active ; /* flag : active/inactive */ u_short tm_pad ; /* pad field */} ;/* * communication structures */struct mac_parameter { u_long t_neg ; /* T_Neg parameter */ u_long t_pri ; /* T_Pri register in MAC */} ;/* * MAC counters */struct mac_counter { u_long mac_nobuf_counter ; /* MAC SW counter: no buffer */ u_long mac_r_restart_counter ; /* MAC SW counter: rx restarted */} ;/* * para struct context for SMT parameters */struct s_pcon { int pc_len ; int pc_err ; int pc_badset ; void *pc_p ;} ;/* * link error monitor */#define LEM_AVG 5struct lem_counter {#ifdef AM29K int lem_on ; u_long lem_errors ; u_long lem_symbols ; u_long lem_tsymbols ; int lem_s_count ; int lem_n_s ; int lem_values ; int lem_index ; int lem_avg_ber[LEM_AVG] ; int lem_sum ;#else u_short lem_float_ber ; /* 10E-nn bit error rate */ u_long lem_errors ; /* accumulated error count */ u_short lem_on ;#endif} ;#define NUMBITS 10#ifdef AMDPLC/* * PLC state table */struct s_plc { u_short p_state ; /* current state */ u_short p_bits ; /* number of bits to send */ u_short p_start ; /* first bit pos */ u_short p_pad ; /* padding for alignment */ u_long soft_err ; /* error counter */ u_long parity_err ; /* error counter */ u_long ebuf_err ; /* error counter */ u_long ebuf_cont ; /* continous error counter */ u_long phyinv ; /* error counter */ u_long vsym_ctr ; /* error counter */ u_long mini_ctr ; /* error counter */ u_long tpc_exp ; /* error counter */ u_long np_err ; /* error counter */ u_long b_pcs ; /* error counter */ u_long b_tpc ; /* error counter */ u_long b_tne ; /* error counter */ u_long b_qls ; /* error counter */ u_long b_ils ; /* error counter */ u_long b_hls ; /* error counter */} ;#endif#ifdef PROTOTYP_INC#include "fddi/driver.pro"#else /* PROTOTYP_INC *//* * function prototypes */#include "h/mbuf.h" /* Type definitions for MBUFs */#include "h/smtstate.h" /* struct smt_state */void hwt_restart(struct s_smc *smc); /* hwt.c */SMbuf *smt_build_frame(struct s_smc *smc, int class, int type, int length); /* smt.c */SMbuf *smt_get_mbuf(struct s_smc *smc); /* drvsr.c */void *sm_to_para(struct s_smc *smc, struct smt_header *sm, int para); /* smt.c */#ifndef SK_UNUSED#define SK_UNUSED(var) (void)(var)#endifvoid queue_event(struct s_smc *smc, int class, int event);void ecm(struct s_smc *smc, int event);void ecm_init(struct s_smc *smc);void rmt(struct s_smc *smc, int event);void rmt_init(struct s_smc *smc);void pcm(struct s_smc *smc, const int np, int event);void pcm_init(struct s_smc *smc);void cfm(struct s_smc *smc, int event);void cfm_init(struct s_smc *smc);void smt_timer_start(struct s_smc *smc, struct smt_timer *timer, u_long time, u_long token);void smt_timer_stop(struct s_smc *smc, struct smt_timer *timer);void pcm_status_state(struct s_smc *smc, int np, int *type, int *state, int *remote, int *mac);void plc_config_mux(struct s_smc *smc, int mux);void sm_lem_evaluate(struct s_smc *smc);void smt_clear_una_dna(struct s_smc *smc);void mac_update_counter(struct s_smc *smc);void sm_pm_ls_latch(struct s_smc *smc, int phy, int on_off);void sm_ma_control(struct s_smc *smc, int mode);void sm_mac_check_beacon_claim(struct s_smc *smc);void config_mux(struct s_smc *smc, int mux);void smt_agent_init(struct s_smc *smc);void smt_timer_init(struct s_smc *smc);void smt_received_pack(struct s_smc *smc, SMbuf *mb, int fs);void smt_add_para(struct s_smc *smc, struct s_pcon *pcon, u_short para, int index, int local);void smt_swap_para(struct smt_header *sm, int len, int direction);void ev_init(struct s_smc *smc);void hwt_init(struct s_smc *smc);u_long hwt_read(struct s_smc *smc);void hwt_stop(struct s_smc *smc);void hwt_start(struct s_smc *smc, u_long time);void smt_send_mbuf(struct s_smc *smc, SMbuf *mb, int fc);void smt_free_mbuf(struct s_smc *smc, SMbuf *mb);void sm_pm_bypass_req(struct s_smc *smc, int mode);void rmt_indication(struct s_smc *smc, int i);void cfm_state_change(struct s_smc *smc, int c_state);#if defined(DEBUG) || !defined(NO_SMT_PANIC)void smt_panic(struct s_smc *smc, char *text);#else#define smt_panic(smc,text)#endif /* DEBUG || !NO_SMT_PANIC */void smt_stat_counter(struct s_smc *smc, int stat);void smt_timer_poll(struct s_smc *smc);u_long smt_get_time(void);u_long smt_get_tid(struct s_smc *smc);void smt_timer_done(struct s_smc *smc);void smt_set_defaults(struct s_smc *smc);void smt_fixup_mib(struct s_smc *smc);void smt_reset_defaults(struct s_smc *smc, int level);void smt_agent_task(struct s_smc *smc);void smt_please_reconnect(struct s_smc *smc, int reconn_time);int smt_check_para(struct s_smc *smc, struct smt_header *sm, const u_short list[]);void driver_get_bia(struct s_smc *smc, struct fddi_addr *bia_addr);#ifdef SUPERNET_3void drv_reset_indication(struct s_smc *smc);#endif /* SUPERNET_3 */void smt_start_watchdog(struct s_smc *smc);void smt_event(struct s_smc *smc, int event);void timer_event(struct s_smc *smc, u_long token);void ev_dispatcher(struct s_smc *smc);void pcm_get_state(struct s_smc *smc, struct smt_state *state);void ecm_state_change(struct s_smc *smc, int e_state);int sm_pm_bypass_present(struct s_smc *smc);void pcm_state_change(struct s_smc *smc, int plc, int p_state);void rmt_state_change(struct s_smc *smc, int r_state);int sm_pm_get_ls(struct s_smc *smc, int phy);int pcm_get_s_port(struct s_smc *smc);int pcm_rooted_station(struct s_smc *smc);int cfm_get_mac_input(struct s_smc *smc);int cfm_get_mac_output(struct s_smc *smc);int port_to_mib(struct s_smc *smc, int p);int cem_build_path(struct s_smc *smc, char *to, int path_index);int sm_mac_get_tx_state(struct s_smc *smc);char *get_pcmstate(struct s_smc *smc, int np);int smt_action(struct s_smc *smc, int class, int code, int index);u_short smt_online(struct s_smc *smc, int on);void smt_force_irq(struct s_smc *smc);void smt_pmf_received_pack(struct s_smc *smc, SMbuf *mb, int local);void smt_send_frame(struct s_smc *smc, SMbuf *mb, int fc, int local);void smt_set_timestamp(struct s_smc *smc, u_char *p);void mac_set_rx_mode(struct s_smc *smc, int mode);int mac_add_multicast(struct s_smc *smc, struct fddi_addr *addr, int can);int mac_set_func_addr(struct s_smc *smc, u_long f_addr);void mac_del_multicast(struct s_smc *smc, struct fddi_addr *addr, int can);void mac_update_multicast(struct s_smc *smc);void mac_clear_multicast(struct s_smc *smc);void set_formac_tsync(struct s_smc *smc, long sync_bw);void formac_reinit_tx(struct s_smc *smc);void formac_tx_restart(struct s_smc *smc);void process_receive(struct s_smc *smc);void init_driver_fplus(struct s_smc *smc);void rtm_irq(struct s_smc *smc);void rtm_set_timer(struct s_smc *smc);void ring_status_indication(struct s_smc *smc, u_long status);void llc_recover_tx(struct s_smc *smc);void llc_restart_tx(struct s_smc *smc);void plc_clear_irq(struct s_smc *smc, int p);void plc_irq(struct s_smc *smc, int np, unsigned int cmd);int smt_set_mac_opvalues(struct s_smc *smc);#ifdef TAG_MODEvoid mac_drv_pci_fix(struct s_smc *smc, u_long fix_value);void mac_do_pci_fix(struct s_smc *smc);void mac_drv_clear_tx_queue(struct s_smc *smc);void mac_drv_repair_descr(struct s_smc *smc);u_long hwt_quick_read(struct s_smc *smc);void hwt_wait_time(struct s_smc *smc, u_long start, long duration);#endif#ifdef SMT_PNMIint pnmi_init(struct s_smc* smc);int pnmi_process_ndis_id(struct s_smc *smc, u_long ndis_oid, void *buf, int len, int *BytesAccessed, int *BytesNeeded, u_char action);#endif#ifdef SBA#ifndef _H2INCvoid sba();#endifvoid sba_raf_received_pack();void sba_timer_poll();void smt_init_sba();#endif#ifdef ESSint ess_raf_received_pack(struct s_smc *smc, SMbuf *mb, struct smt_header *sm, int fs);void ess_timer_poll(struct s_smc *smc);void ess_para_change(struct s_smc *smc);#endif#ifndef BOOTvoid smt_init_evc(struct s_smc *smc);void smt_srf_event(struct s_smc *smc, int code, int index, int cond);#else#define smt_init_evc(smc)#define smt_srf_event(smc,code,index,cond)#endif#ifndef SMT_REAL_TOKEN_CTvoid smt_emulate_token_ct(struct s_smc *smc, int mac_index);#endif#if defined(DEBUG) && !defined(BOOT)void dump_smt(struct s_smc *smc, struct smt_header *sm, char *text);#else#define dump_smt(smc,sm,text)#endif#ifdef DEBUGchar* addr_to_string(struct fddi_addr *addr);void dump_hex(char *p, int len);#endif#endif /* PROTOTYP_INC *//* PNMI default defines */#ifndef PNMI_INIT#define PNMI_INIT(smc) /* Nothing */#endif#ifndef PNMI_GET_ID#define PNMI_GET_ID( smc, ndis_oid, buf, len, BytesWritten, BytesNeeded ) \ ( 1 ? (-1) : (-1) )#endif#ifndef PNMI_SET_ID#define PNMI_SET_ID( smc, ndis_oid, buf, len, BytesRead, BytesNeeded, \ set_type) ( 1 ? (-1) : (-1) )#endif/* * SMT_PANIC defines */#ifndef SMT_PANIC#define SMT_PANIC(smc,nr,msg) smt_panic (smc, msg)#endif#ifndef SMT_ERR_LOG#define SMT_ERR_LOG(smc,nr,msg) SMT_PANIC (smc, nr, msg)#endif#ifndef SMT_EBASE#define SMT_EBASE 100#endif#define SMT_E0100 SMT_EBASE + 0#define SMT_E0100_MSG "cfm FSM: invalid ce_type"#define SMT_E0101 SMT_EBASE + 1#define SMT_E0101_MSG "CEM: case ???"#define SMT_E0102 SMT_EBASE + 2#define SMT_E0102_MSG "CEM A: invalid state"#define SMT_E0103 SMT_EBASE + 3#define SMT_E0103_MSG "CEM B: invalid state"#define SMT_E0104 SMT_EBASE + 4#define SMT_E0104_MSG "CEM M: invalid state"#define SMT_E0105 SMT_EBASE + 5#define SMT_E0105_MSG "CEM S: invalid state"#define SMT_E0106 SMT_EBASE + 6#define SMT_E0106_MSG "CFM : invalid state"#define SMT_E0107 SMT_EBASE + 7#define SMT_E0107_MSG "ECM : invalid state"#define SMT_E0108 SMT_EBASE + 8#define SMT_E0108_MSG "prop_actions : NAC in DAS CFM"#define SMT_E0109 SMT_EBASE + 9#define SMT_E0109_MSG "ST2U.FM_SERRSF error in special frame"#define SMT_E0110 SMT_EBASE + 10#define SMT_E0110_MSG "ST2U.FM_SRFRCTOV recv. count. overflow"#define SMT_E0111 SMT_EBASE + 11#define SMT_E0111_MSG "ST2U.FM_SNFSLD NP & FORMAC simult. load"#define SMT_E0112 SMT_EBASE + 12#define SMT_E0112_MSG "ST2U.FM_SRCVFRM single-frame recv.-mode"#define SMT_E0113 SMT_EBASE + 13#define SMT_E0113_MSG "FPLUS: Buffer Memory Error"#define SMT_E0114 SMT_EBASE + 14#define SMT_E0114_MSG "ST2U.FM_SERRSF error in special frame"#define SMT_E0115 SMT_EBASE + 15#define SMT_E0115_MSG "ST3L: parity error in receive queue 2"#define SMT_E0116 SMT_EBASE + 16#define SMT_E0116_MSG "ST3L: parity error in receive queue 1"#define SMT_E0117 SMT_EBASE + 17#define SMT_E0117_MSG "E_SMT_001: RxD count for receive queue 1 = 0"#define SMT_E0118 SMT_EBASE + 18#define SMT_E0118_MSG "PCM : invalid state"#define SMT_E0119 SMT_EBASE + 19#define SMT_E0119_MSG "smt_add_para"#define SMT_E0120 SMT_EBASE + 20#define SMT_E0120_MSG "smt_set_para"#define SMT_E0121 SMT_EBASE + 21#define SMT_E0121_MSG "invalid event in dispatcher"#define SMT_E0122 SMT_EBASE + 22#define SMT_E0122_MSG "RMT : invalid state"#define SMT_E0123 SMT_EBASE + 23#define SMT_E0123_MSG "SBA: state machine has invalid state"#define SMT_E0124 SMT_EBASE + 24#define SMT_E0124_MSG "sba_free_session() called with NULL pointer"#define SMT_E0125 SMT_EBASE + 25#define SMT_E0125_MSG "SBA : invalid session pointer"#define SMT_E0126 SMT_EBASE + 26#define SMT_E0126_MSG "smt_free_mbuf() called with NULL pointer\n"#define SMT_E0127 SMT_EBASE + 27#define SMT_E0127_MSG "sizeof evcs"#define SMT_E0128 SMT_EBASE + 28#define SMT_E0128_MSG "evc->evc_cond_state = 0"#define SMT_E0129 SMT_EBASE + 29#define SMT_E0129_MSG "evc->evc_multiple = 0"#define SMT_E0130 SMT_EBASE + 30#define SMT_E0130_MSG write_mdr_warning#define SMT_E0131 SMT_EBASE + 31#define SMT_E0131_MSG cam_warning#define SMT_E0132 SMT_EBASE + 32#define SMT_E0132_MSG "ST1L.FM_SPCEPDx parity/coding error"#define SMT_E0133 SMT_EBASE + 33#define SMT_E0133_MSG "ST1L.FM_STBURx tx buffer underrun"#define SMT_E0134 SMT_EBASE + 34#define SMT_E0134_MSG "ST1L.FM_SPCEPDx parity error"#define SMT_E0135 SMT_EBASE + 35#define SMT_E0135_MSG "RMT: duplicate MAC address detected. Ring left!"#define SMT_E0136 SMT_EBASE + 36#define SMT_E0136_MSG "Elasticity Buffer hang-up"#define SMT_E0137 SMT_EBASE + 37#define SMT_E0137_MSG "SMT: queue overrun"#define SMT_E0138 SMT_EBASE + 38#define SMT_E0138_MSG "RMT: duplicate MAC address detected. Ring NOT left!"#endif /* _CMTDEF_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -