#ifndef _SCMECM_
#define _SCMECM_
#if defined(PCI) && !defined(OSDEF)
#define OSDEF
#endif
#ifdef PCI
#ifndef SUPERNET_3
#define SUPERNET_3
#endif
#ifndef TAG_MODE
#define TAG_MODE
#endif
#endif
#ifdef OSDEF
#include "osdef1st.h"
#endif
#ifdef OEM_CONCEPT
#include "oemdef.h"
#endif
#include "smt.h"
#include "cmtdef.h"
#include "fddimib.h"
#include "targethw.h"
#include "targetos.h"
#ifdef ESS
#include "sba.h"
#endif
struct event_queue { … } ;
#ifdef CONCENTRATOR
#define MAX_EVENT …
#else
#define MAX_EVENT …
#endif
struct s_queue { … } ;
struct s_ecm { … } ;
struct s_rmt { … } ;
struct s_cfm { … } ;
#ifdef CONCENTRATOR
struct s_cem {
int ce_state ;
int ce_port ;
int ce_type ;
} ;
struct s_c_ring {
struct s_c_ring *c_next ;
char c_entity ;
} ;
struct mib_path_config {
u_long fddimibPATHConfigSMTIndex;
u_long fddimibPATHConfigPATHIndex;
u_long fddimibPATHConfigTokenOrder;
u_long fddimibPATHConfigResourceType;
#define SNMP_RES_TYPE_MAC …
#define SNMP_RES_TYPE_PORT …
u_long fddimibPATHConfigResourceIndex;
u_long fddimibPATHConfigCurrentPath;
#define SNMP_PATH_ISOLATED …
#define SNMP_PATH_LOCAL …
#define SNMP_PATH_SECONDARY …
#define SNMP_PATH_PRIMARY …
#define SNMP_PATH_CONCATENATED …
#define SNMP_PATH_THRU …
};
#endif
#define PCM_DISABLED …
#define PCM_CONNECTING …
#define PCM_STANDBY …
#define PCM_ACTIVE …
struct s_pcm { … } ;
struct s_phy { … } ;
struct s_timer { … } ;
#define SMT_EVENT_BASE …
#define SMT_EVENT_MAC_PATH_CHANGE …
#define SMT_EVENT_MAC_NEIGHBOR_CHANGE …
#define SMT_EVENT_PORT_PATH_CHANGE …
#define SMT_EVENT_PORT_CONNECTION …
#define SMT_IS_CONDITION(x) …
#define SMT_COND_BASE …
#define SMT_COND_SMT_PEER_WRAP …
#define SMT_COND_SMT_HOLD …
#define SMT_COND_MAC_FRAME_ERROR …
#define SMT_COND_MAC_DUP_ADDR …
#define SMT_COND_MAC_NOT_COPIED …
#define SMT_COND_PORT_EB_ERROR …
#define SMT_COND_PORT_LER …
#define SR0_WAIT …
#define SR1_HOLDOFF …
#define SR2_DISABLED …
struct s_srf { … } ;
#define RS_RES15 …
#define RS_HARDERROR …
#define RS_SOFTERROR …
#define RS_BEACON …
#define RS_PATHTEST …
#define RS_SELFTEST …
#define RS_RES9 …
#define RS_DISCONNECT …
#define RS_RES7 …
#define RS_DUPADDR …
#define RS_NORINGOP …
#define RS_VERSION …
#define RS_STUCKBYPASSS …
#define RS_EVENT …
#define RS_RINGOPCHANGE …
#define RS_RES0 …
#define RS_SET(smc,bit) …
#define RS_CLEAR(smc,bit) …
#define RS_CLEAR_EVENT …
#ifndef AIX_EVENT
#define AIX_EVENT(smc,opt0,opt1,opt2,opt3) …
#endif
struct s_srf_evc { … } ;
#define SMT_MAX_TEST …
#define SMT_TID_NIF …
#define SMT_TID_NIF_TEST …
#define SMT_TID_ECF_UNA …
#define SMT_TID_ECF_DNA …
#define SMT_TID_ECF …
struct smt_values { … } ;
#define SMT_DAS …
#define SMT_SAS …
#define SMT_NAC …
struct smt_config { … } ;
#ifdef DEBUG
struct smt_debug {
int d_smtf ;
int d_smt ;
int d_ecm ;
int d_rmt ;
int d_cfm ;
int d_pcm ;
int d_plc ;
#ifdef ESS
int d_ess ;
#endif
#ifdef SBA
int d_sba ;
#endif
struct os_debug d_os;
} ;
#ifndef DEBUG_BRD
extern struct smt_debug debug;
#endif
#endif
struct s_smc { … } ;
extern const struct fddi_addr fddi_broadcast;
void all_selection_criteria(struct s_smc *smc);
void card_stop(struct s_smc *smc);
void init_board(struct s_smc *smc, u_char *mac_addr);
int init_fplus(struct s_smc *smc);
void init_plc(struct s_smc *smc);
int init_smt(struct s_smc *smc, const u_char *mac_addr);
void mac1_irq(struct s_smc *smc, u_short stu, u_short stl);
void mac2_irq(struct s_smc *smc, u_short code_s2u, u_short code_s2l);
void mac3_irq(struct s_smc *smc, u_short code_s3u, u_short code_s3l);
int pcm_status_twisted(struct s_smc *smc);
void plc1_irq(struct s_smc *smc);
void plc2_irq(struct s_smc *smc);
void read_address(struct s_smc *smc, u_char *mac_addr);
void timer_irq(struct s_smc *smc);
#endif