xref: /linux/drivers/net/fddi/skfp/h/cmtdef.h (revision c19b05b8)
1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */
233f810b2SJeff Kirsher /******************************************************************************
333f810b2SJeff Kirsher  *
433f810b2SJeff Kirsher  *	(C)Copyright 1998,1999 SysKonnect,
533f810b2SJeff Kirsher  *	a business unit of Schneider & Koch & Co. Datensysteme GmbH.
633f810b2SJeff Kirsher  *
733f810b2SJeff Kirsher  *	The information in this file is provided "AS IS" without warranty.
833f810b2SJeff Kirsher  *
933f810b2SJeff Kirsher  ******************************************************************************/
1033f810b2SJeff Kirsher 
1133f810b2SJeff Kirsher #ifndef	_CMTDEF_
1233f810b2SJeff Kirsher #define _CMTDEF_
1333f810b2SJeff Kirsher 
1433f810b2SJeff Kirsher /* **************************************************************** */
1533f810b2SJeff Kirsher 
1633f810b2SJeff Kirsher /*
1733f810b2SJeff Kirsher  * implementation specific constants
1833f810b2SJeff Kirsher  * MODIIFY THE FOLLOWING THREE DEFINES
1933f810b2SJeff Kirsher  */
2033f810b2SJeff Kirsher #define AMDPLC			/* if Amd PLC chip used */
2133f810b2SJeff Kirsher #ifdef	CONC
2233f810b2SJeff Kirsher #define NUMPHYS		12	/* 2 for SAS or DAS, more for Concentrator */
2333f810b2SJeff Kirsher #else
2433f810b2SJeff Kirsher #ifdef	CONC_II
2533f810b2SJeff Kirsher #define NUMPHYS		24	/* 2 for SAS or DAS, more for Concentrator */
2633f810b2SJeff Kirsher #else
2733f810b2SJeff Kirsher #define NUMPHYS		2	/* 2 for SAS or DAS, more for Concentrator */
2833f810b2SJeff Kirsher #endif
2933f810b2SJeff Kirsher #endif
3033f810b2SJeff Kirsher #define NUMMACS		1	/* only 1 supported at the moment */
3133f810b2SJeff Kirsher #define NUMPATHS	2	/* primary and secondary path supported */
3233f810b2SJeff Kirsher 
3333f810b2SJeff Kirsher /*
3433f810b2SJeff Kirsher  * DO NOT MODIFY BEYOND THIS POINT
3533f810b2SJeff Kirsher  */
3633f810b2SJeff Kirsher 
3733f810b2SJeff Kirsher /* **************************************************************** */
3833f810b2SJeff Kirsher 
3933f810b2SJeff Kirsher #if	NUMPHYS > 2
4033f810b2SJeff Kirsher #define CONCENTRATOR
4133f810b2SJeff Kirsher #endif
4233f810b2SJeff Kirsher 
4333f810b2SJeff Kirsher /*
4433f810b2SJeff Kirsher  * Definitions for comfortable LINT usage
4533f810b2SJeff Kirsher  */
4633f810b2SJeff Kirsher #ifdef	lint
4733f810b2SJeff Kirsher #define LINT_USE(x)	(x)=(x)
4833f810b2SJeff Kirsher #else
4933f810b2SJeff Kirsher #define LINT_USE(x)
5033f810b2SJeff Kirsher #endif
5133f810b2SJeff Kirsher 
5233f810b2SJeff Kirsher #ifdef	DEBUG
535671e8c1SJoe Perches #define	DB_PR(flag, fmt, ...)						\
545671e8c1SJoe Perches 	do { if (flag) printf(fmt "\n", ##__VA_ARGS__); } while (0)
5533f810b2SJeff Kirsher #else
565671e8c1SJoe Perches #define	DB_PR(flag, fmt, ...)	no_printk(fmt "\n", ##__VA_ARGS__)
575671e8c1SJoe Perches 
5833f810b2SJeff Kirsher #endif
5933f810b2SJeff Kirsher 
6033f810b2SJeff Kirsher #ifdef DEBUG_BRD
615671e8c1SJoe Perches #define DB_TEST (smc->debug)
6233f810b2SJeff Kirsher #else
635671e8c1SJoe Perches #define DB_TEST (debug)
6433f810b2SJeff Kirsher #endif
6533f810b2SJeff Kirsher 
665671e8c1SJoe Perches #define DB_ECM(fmt, ...)						\
675671e8c1SJoe Perches 	DB_PR((DB_TEST).d_smt & 1, fmt, ##__VA_ARGS__)
685671e8c1SJoe Perches #define DB_ECMN(n, fmt, ...)						\
695671e8c1SJoe Perches 	DB_PR((DB_TEST).d_ecm >= (n), fmt, ##__VA_ARGS__)
705671e8c1SJoe Perches #define DB_RMT(fmt, ...)						\
715671e8c1SJoe Perches 	DB_PR((DB_TEST).d_smt & 2, fmt, ##__VA_ARGS__)
725671e8c1SJoe Perches #define DB_RMTN(n, fmt, ...)						\
735671e8c1SJoe Perches 	DB_PR((DB_TEST).d_rmt >= (n), fmt, ##__VA_ARGS__)
745671e8c1SJoe Perches #define DB_CFM(fmt, ...)						\
755671e8c1SJoe Perches 	DB_PR((DB_TEST).d_smt & 4, fmt, ##__VA_ARGS__)
765671e8c1SJoe Perches #define DB_CFMN(n, fmt, ...)						\
775671e8c1SJoe Perches 	DB_PR((DB_TEST).d_cfm >= (n), fmt, ##__VA_ARGS__)
785671e8c1SJoe Perches #define DB_PCM(fmt, ...)						\
795671e8c1SJoe Perches 	DB_PR((DB_TEST).d_smt & 8, fmt, ##__VA_ARGS__)
805671e8c1SJoe Perches #define DB_PCMN(n, fmt, ...)						\
815671e8c1SJoe Perches 	DB_PR((DB_TEST).d_pcm >= (n), fmt, ##__VA_ARGS__)
825671e8c1SJoe Perches #define DB_SMT(fmt, ...)						\
835671e8c1SJoe Perches 	DB_PR((DB_TEST).d_smtf, fmt, ##__VA_ARGS__)
845671e8c1SJoe Perches #define DB_SMTN(n, fmt, ...)						\
855671e8c1SJoe Perches 	DB_PR((DB_TEST).d_smtf >= (n), fmt, ##__VA_ARGS__)
865671e8c1SJoe Perches #define DB_SBA(fmt, ...)						\
875671e8c1SJoe Perches 	DB_PR((DB_TEST).d_sba, fmt, ##__VA_ARGS__)
885671e8c1SJoe Perches #define DB_SBAN(n, fmt, ...)						\
895671e8c1SJoe Perches 	DB_PR((DB_TEST).d_sba >= (n), fmt, ##__VA_ARGS__)
905671e8c1SJoe Perches #define DB_ESS(fmt, ...)						\
915671e8c1SJoe Perches 	DB_PR((DB_TEST).d_ess, fmt, ##__VA_ARGS__)
925671e8c1SJoe Perches #define DB_ESSN(n, fmt, ...)						\
935671e8c1SJoe Perches 	DB_PR((DB_TEST).d_ess >= (n), fmt, ##__VA_ARGS__)
945671e8c1SJoe Perches 
9533f810b2SJeff Kirsher #ifndef	SS_NOT_DS
9633f810b2SJeff Kirsher #define	SK_LOC_DECL(type,var)	type var
9733f810b2SJeff Kirsher #else
9833f810b2SJeff Kirsher #define	SK_LOC_DECL(type,var)	static type var
9933f810b2SJeff Kirsher #endif
10033f810b2SJeff Kirsher /*
10133f810b2SJeff Kirsher  * PHYs and PORTS
10233f810b2SJeff Kirsher  * Note: Don't touch the definition of PA and PB. Those might be used
10333f810b2SJeff Kirsher  *	by some "for" loops.
10433f810b2SJeff Kirsher  */
10533f810b2SJeff Kirsher #define PA		0
10633f810b2SJeff Kirsher #define PB		1
10733f810b2SJeff Kirsher #if	defined(SUPERNET_3) || defined(CONC_II)
10833f810b2SJeff Kirsher /*
10933f810b2SJeff Kirsher  * The port indices have to be different,
11033f810b2SJeff Kirsher  * because the MAC output goes through the 2. PLC
11133f810b2SJeff Kirsher  * Conc II: It has to be the first port in the row.
11233f810b2SJeff Kirsher  */
11333f810b2SJeff Kirsher #define PS		0	/* Internal PLC which is the same as PA */
11433f810b2SJeff Kirsher #else
11533f810b2SJeff Kirsher #define PS		1
11633f810b2SJeff Kirsher #endif
11733f810b2SJeff Kirsher #define PM		2		/* PM .. PA+NUM_PHYS-1 */
11833f810b2SJeff Kirsher 
11933f810b2SJeff Kirsher /*
12033f810b2SJeff Kirsher  * PHY types - as in path descriptor 'fddiPHYType'
12133f810b2SJeff Kirsher  */
12233f810b2SJeff Kirsher #define TA			0	/* A port */
12333f810b2SJeff Kirsher #define TB			1	/* B port */
12433f810b2SJeff Kirsher #define TS			2	/* S port */
12533f810b2SJeff Kirsher #define TM			3	/* M port */
12633f810b2SJeff Kirsher #define TNONE			4
12733f810b2SJeff Kirsher 
12833f810b2SJeff Kirsher 
12933f810b2SJeff Kirsher /*
13033f810b2SJeff Kirsher  * indexes in MIB
13133f810b2SJeff Kirsher  */
13233f810b2SJeff Kirsher #define INDEX_MAC	1
13333f810b2SJeff Kirsher #define INDEX_PATH	1
13433f810b2SJeff Kirsher #define INDEX_PORT	1
13533f810b2SJeff Kirsher 
13633f810b2SJeff Kirsher 
13733f810b2SJeff Kirsher /*
13833f810b2SJeff Kirsher  * policies
13933f810b2SJeff Kirsher  */
14033f810b2SJeff Kirsher #define POLICY_AA	(1<<0)		/* reject AA */
14133f810b2SJeff Kirsher #define POLICY_AB	(1<<1)		/* reject AB */
14233f810b2SJeff Kirsher #define POLICY_AS	(1<<2)		/* reject AS */
14333f810b2SJeff Kirsher #define POLICY_AM	(1<<3)		/* reject AM */
14433f810b2SJeff Kirsher #define POLICY_BA	(1<<4)		/* reject BA */
14533f810b2SJeff Kirsher #define POLICY_BB	(1<<5)		/* reject BB */
14633f810b2SJeff Kirsher #define POLICY_BS	(1<<6)		/* reject BS */
14733f810b2SJeff Kirsher #define POLICY_BM	(1<<7)		/* reject BM */
14833f810b2SJeff Kirsher #define POLICY_SA	(1<<8)		/* reject SA */
14933f810b2SJeff Kirsher #define POLICY_SB	(1<<9)		/* reject SB */
15033f810b2SJeff Kirsher #define POLICY_SS	(1<<10)		/* reject SS */
15133f810b2SJeff Kirsher #define POLICY_SM	(1<<11)		/* reject SM */
15233f810b2SJeff Kirsher #define POLICY_MA	(1<<12)		/* reject MA */
15333f810b2SJeff Kirsher #define POLICY_MB	(1<<13)		/* reject MB */
15433f810b2SJeff Kirsher #define POLICY_MS	(1<<14)		/* reject MS */
15533f810b2SJeff Kirsher #define POLICY_MM	(1<<15)		/* reject MM */
15633f810b2SJeff Kirsher 
15733f810b2SJeff Kirsher /*
15833f810b2SJeff Kirsher  * commands
15933f810b2SJeff Kirsher  */
16033f810b2SJeff Kirsher 
16133f810b2SJeff Kirsher /*
16233f810b2SJeff Kirsher  * EVENTS
16333f810b2SJeff Kirsher  * event classes
16433f810b2SJeff Kirsher  */
16533f810b2SJeff Kirsher #define EVENT_ECM	1		/* event class ECM */
16633f810b2SJeff Kirsher #define EVENT_CFM	2		/* event class CFM */
16733f810b2SJeff Kirsher #define EVENT_RMT	3		/* event class RMT */
16833f810b2SJeff Kirsher #define EVENT_SMT	4		/* event class SMT */
16933f810b2SJeff Kirsher #define EVENT_PCM	5		/* event class PCM */
17033f810b2SJeff Kirsher #define EVENT_PCMA	5		/* event class PCMA */
17133f810b2SJeff Kirsher #define EVENT_PCMB	6		/* event class PCMB */
17233f810b2SJeff Kirsher 
17333f810b2SJeff Kirsher /* WARNING :
17433f810b2SJeff Kirsher  * EVENT_PCM* must be last in the above list
17533f810b2SJeff Kirsher  * if more than two ports are used, EVENT_PCM .. EVENT_PCMA+NUM_PHYS-1
17633f810b2SJeff Kirsher  * are used !
17733f810b2SJeff Kirsher  */
17833f810b2SJeff Kirsher 
17933f810b2SJeff Kirsher #define EV_TOKEN(class,event)	(((u_long)(class)<<16L)|((u_long)(event)))
18033f810b2SJeff Kirsher #define EV_T_CLASS(token)	((int)((token)>>16)&0xffff)
18133f810b2SJeff Kirsher #define EV_T_EVENT(token)	((int)(token)&0xffff)
18233f810b2SJeff Kirsher 
18333f810b2SJeff Kirsher /*
18433f810b2SJeff Kirsher  * ECM events
18533f810b2SJeff Kirsher  */
18633f810b2SJeff Kirsher #define EC_CONNECT	1		/* connect request */
18733f810b2SJeff Kirsher #define EC_DISCONNECT	2		/* disconnect request */
18833f810b2SJeff Kirsher #define EC_TRACE_PROP	3		/* trace propagation */
18933f810b2SJeff Kirsher #define EC_PATH_TEST	4		/* path test */
19033f810b2SJeff Kirsher #define EC_TIMEOUT_TD	5		/* timer TD_min */
19133f810b2SJeff Kirsher #define EC_TIMEOUT_TMAX	6		/* timer trace_max */
19233f810b2SJeff Kirsher #define EC_TIMEOUT_IMAX	7		/* timer I_max */
19333f810b2SJeff Kirsher #define EC_TIMEOUT_INMAX 8		/* timer IN_max */
19433f810b2SJeff Kirsher #define EC_TEST_DONE	9		/* path test done */
19533f810b2SJeff Kirsher 
19633f810b2SJeff Kirsher /*
19733f810b2SJeff Kirsher  * CFM events
19833f810b2SJeff Kirsher  */
19933f810b2SJeff Kirsher #define CF_LOOP		1		/* cf_loop flag from PCM */
20033f810b2SJeff Kirsher #define CF_LOOP_A	1		/* cf_loop flag from PCM */
20133f810b2SJeff Kirsher #define CF_LOOP_B	2		/* cf_loop flag from PCM */
20233f810b2SJeff Kirsher #define CF_JOIN		3		/* cf_join flag from PCM */
20333f810b2SJeff Kirsher #define CF_JOIN_A	3		/* cf_join flag from PCM */
20433f810b2SJeff Kirsher #define CF_JOIN_B	4		/* cf_join flag from PCM */
20533f810b2SJeff Kirsher 
20633f810b2SJeff Kirsher /*
20733f810b2SJeff Kirsher  * PCM events
20833f810b2SJeff Kirsher  */
20933f810b2SJeff Kirsher #define PC_START		1
21033f810b2SJeff Kirsher #define PC_STOP			2
21133f810b2SJeff Kirsher #define PC_LOOP			3
21233f810b2SJeff Kirsher #define PC_JOIN			4
21333f810b2SJeff Kirsher #define PC_SIGNAL		5
21433f810b2SJeff Kirsher #define PC_REJECT		6
21533f810b2SJeff Kirsher #define PC_MAINT    		7
21633f810b2SJeff Kirsher #define PC_TRACE		8
21733f810b2SJeff Kirsher #define PC_PDR			9
21833f810b2SJeff Kirsher #define PC_ENABLE		10
21933f810b2SJeff Kirsher #define PC_DISABLE		11
22033f810b2SJeff Kirsher 
22133f810b2SJeff Kirsher /*
22233f810b2SJeff Kirsher  * must be ordered as in LineStateType
22333f810b2SJeff Kirsher  */
22433f810b2SJeff Kirsher #define PC_QLS			12
22533f810b2SJeff Kirsher #define PC_ILS			13
22633f810b2SJeff Kirsher #define PC_MLS			14
22733f810b2SJeff Kirsher #define PC_HLS			15
22833f810b2SJeff Kirsher #define PC_LS_PDR		16
22933f810b2SJeff Kirsher #define PC_LS_NONE		17
23033f810b2SJeff Kirsher #define LS2MIB(x)	((x)-PC_QLS)
23133f810b2SJeff Kirsher #define MIB2LS(x)	((x)+PC_QLS)
23233f810b2SJeff Kirsher 
23333f810b2SJeff Kirsher #define PC_TIMEOUT_TB_MAX	18	/* timer TB_max */
23433f810b2SJeff Kirsher #define PC_TIMEOUT_TB_MIN	19	/* timer TB_min */
23533f810b2SJeff Kirsher #define PC_TIMEOUT_C_MIN	20	/* timer C_Min */
23633f810b2SJeff Kirsher #define PC_TIMEOUT_T_OUT	21	/* timer T_Out */
23733f810b2SJeff Kirsher #define PC_TIMEOUT_TL_MIN	22	/* timer TL_Min */
23833f810b2SJeff Kirsher #define PC_TIMEOUT_T_NEXT	23	/* timer t_next[] */
23933f810b2SJeff Kirsher #define PC_TIMEOUT_LCT		24
24033f810b2SJeff Kirsher #define PC_NSE			25	/* NOISE hardware timer */
24133f810b2SJeff Kirsher #define PC_LEM			26	/* LEM done */
24233f810b2SJeff Kirsher 
24333f810b2SJeff Kirsher /*
24433f810b2SJeff Kirsher  * RMT events				  meaning		from
24533f810b2SJeff Kirsher  */
24633f810b2SJeff Kirsher #define RM_RING_OP	1		/* ring operational	MAC	*/
24733f810b2SJeff Kirsher #define RM_RING_NON_OP	2		/* ring not operational	MAC	*/
24833f810b2SJeff Kirsher #define RM_MY_BEACON	3		/* recvd my beacon	MAC	*/
24933f810b2SJeff Kirsher #define RM_OTHER_BEACON	4		/* recvd other beacon	MAC	*/
25033f810b2SJeff Kirsher #define RM_MY_CLAIM	5		/* recvd my claim	MAC	*/
25133f810b2SJeff Kirsher #define RM_TRT_EXP	6		/* TRT exp		MAC	*/
25233f810b2SJeff Kirsher #define RM_VALID_CLAIM	7		/* claim from dup addr	MAC	*/
25333f810b2SJeff Kirsher #define RM_JOIN		8		/* signal rm_join	CFM	*/
25433f810b2SJeff Kirsher #define RM_LOOP		9		/* signal rm_loop	CFM	*/
25533f810b2SJeff Kirsher #define RM_DUP_ADDR	10		/* dup_addr_test hange	SMT-NIF	*/
25633f810b2SJeff Kirsher #define RM_ENABLE_FLAG	11		/* enable flag */
25733f810b2SJeff Kirsher 
25833f810b2SJeff Kirsher #define RM_TIMEOUT_NON_OP	12	/* timeout T_Non_OP	*/
25933f810b2SJeff Kirsher #define RM_TIMEOUT_T_STUCK	13	/* timeout T_Stuck	*/
26033f810b2SJeff Kirsher #define RM_TIMEOUT_ANNOUNCE	14	/* timeout T_Announce	*/
26133f810b2SJeff Kirsher #define RM_TIMEOUT_T_DIRECT	15	/* timeout T_Direct	*/
26233f810b2SJeff Kirsher #define RM_TIMEOUT_D_MAX	16	/* timeout D_Max	*/
26333f810b2SJeff Kirsher #define RM_TIMEOUT_POLL		17	/* claim/beacon poller	*/
26433f810b2SJeff Kirsher #define RM_TX_STATE_CHANGE	18	/* To restart timer for D_Max */
26533f810b2SJeff Kirsher 
26633f810b2SJeff Kirsher /*
26733f810b2SJeff Kirsher  * SMT events
26833f810b2SJeff Kirsher  */
26933f810b2SJeff Kirsher #define SM_TIMER	1		/* timer */
27033f810b2SJeff Kirsher #define SM_FAST		2		/* smt_force_irq */
27133f810b2SJeff Kirsher 
27233f810b2SJeff Kirsher /* PC modes */
27333f810b2SJeff Kirsher #define PM_NONE		0
27433f810b2SJeff Kirsher #define PM_PEER		1
27533f810b2SJeff Kirsher #define PM_TREE		2
27633f810b2SJeff Kirsher 
27733f810b2SJeff Kirsher /*
27833f810b2SJeff Kirsher  * PCM withhold codes
27933f810b2SJeff Kirsher  * MIB PC-WithholdType ENUM
28033f810b2SJeff Kirsher  */
28133f810b2SJeff Kirsher #define PC_WH_NONE	0		/* ok */
28233f810b2SJeff Kirsher #define PC_WH_M_M	1		/* M to M */
28333f810b2SJeff Kirsher #define PC_WH_OTHER	2		/* other incompatible phys */
28433f810b2SJeff Kirsher #define PC_WH_PATH	3		/* path not available */
28533f810b2SJeff Kirsher /*
28633f810b2SJeff Kirsher  * LCT duration
28733f810b2SJeff Kirsher  */
28833f810b2SJeff Kirsher #define LC_SHORT	1		/* short LCT */
28933f810b2SJeff Kirsher #define LC_MEDIUM	2		/* medium LCT */
29033f810b2SJeff Kirsher #define LC_LONG		3		/* long LCT */
29133f810b2SJeff Kirsher #define LC_EXTENDED	4		/* extended LCT */
29233f810b2SJeff Kirsher 
29333f810b2SJeff Kirsher /*
29433f810b2SJeff Kirsher  * path_test values
29533f810b2SJeff Kirsher  */
29633f810b2SJeff Kirsher #define PT_NONE		0
29733f810b2SJeff Kirsher #define PT_TESTING	1		/* test is running */
29833f810b2SJeff Kirsher #define PT_PASSED	2		/* test passed */
29933f810b2SJeff Kirsher #define PT_FAILED	3		/* test failed */
30033f810b2SJeff Kirsher #define PT_PENDING	4		/* path test follows */
30133f810b2SJeff Kirsher #define PT_EXITING	5		/* disconnected while in trace/leave */
30233f810b2SJeff Kirsher 
30333f810b2SJeff Kirsher /*
30433f810b2SJeff Kirsher  * duplicate address test
30533f810b2SJeff Kirsher  * MIB DupAddressTest ENUM
30633f810b2SJeff Kirsher  */
30733f810b2SJeff Kirsher #define DA_NONE		0		/* 		*/
30833f810b2SJeff Kirsher #define DA_PASSED	1		/* test passed */
30933f810b2SJeff Kirsher #define DA_FAILED	2		/* test failed */
31033f810b2SJeff Kirsher 
31133f810b2SJeff Kirsher 
31233f810b2SJeff Kirsher /*
31333f810b2SJeff Kirsher  * optical bypass
31433f810b2SJeff Kirsher  */
31533f810b2SJeff Kirsher #define BP_DEINSERT	0		/* disable bypass */
31633f810b2SJeff Kirsher #define BP_INSERT	1		/* enable bypass */
31733f810b2SJeff Kirsher 
31833f810b2SJeff Kirsher /*
31933f810b2SJeff Kirsher  * ODL enable/disable
32033f810b2SJeff Kirsher  */
32133f810b2SJeff Kirsher #define PM_TRANSMIT_DISABLE	0	/* disable xmit */
32233f810b2SJeff Kirsher #define PM_TRANSMIT_ENABLE	1	/* enable xmit */
32333f810b2SJeff Kirsher 
32433f810b2SJeff Kirsher /*
32533f810b2SJeff Kirsher  * parameter for config_mux
32633f810b2SJeff Kirsher  * note : number is index in config_endec table !
32733f810b2SJeff Kirsher  */
32833f810b2SJeff Kirsher #define MUX_THRUA	0		/* through A */
32933f810b2SJeff Kirsher #define MUX_THRUB	1		/* through B */
33033f810b2SJeff Kirsher #define MUX_WRAPA	2		/* wrap A */
33133f810b2SJeff Kirsher #define MUX_WRAPB	3		/* wrap B */
33233f810b2SJeff Kirsher #define MUX_ISOLATE	4		/* isolated */
33333f810b2SJeff Kirsher #define MUX_WRAPS	5		/* SAS */
33433f810b2SJeff Kirsher 
33533f810b2SJeff Kirsher /*
33633f810b2SJeff Kirsher  * MAC control
33733f810b2SJeff Kirsher  */
33833f810b2SJeff Kirsher #define MA_RESET	0
33933f810b2SJeff Kirsher #define MA_BEACON	1
34033f810b2SJeff Kirsher #define MA_CLAIM	2
34133f810b2SJeff Kirsher #define MA_DIRECTED	3		/* directed beacon */
34233f810b2SJeff Kirsher #define MA_TREQ		4		/* change T_Req */
34333f810b2SJeff Kirsher #define MA_OFFLINE	5		/* switch MAC to offline */
34433f810b2SJeff Kirsher 
34533f810b2SJeff Kirsher 
34633f810b2SJeff Kirsher /*
34733f810b2SJeff Kirsher  * trace prop
34833f810b2SJeff Kirsher  * bit map for trace propagation
34933f810b2SJeff Kirsher  */
35033f810b2SJeff Kirsher #define ENTITY_MAC	(NUMPHYS)
35133f810b2SJeff Kirsher #define ENTITY_PHY(p)	(p)
35233f810b2SJeff Kirsher #define ENTITY_BIT(m)	(1<<(m))
35333f810b2SJeff Kirsher 
35433f810b2SJeff Kirsher /*
35533f810b2SJeff Kirsher  * Resource Tag Types
35633f810b2SJeff Kirsher  */
35733f810b2SJeff Kirsher #define PATH_ISO	0	/* isolated */
35833f810b2SJeff Kirsher #define PATH_PRIM	3	/* primary path */
35933f810b2SJeff Kirsher #define PATH_THRU	5	/* through path */
36033f810b2SJeff Kirsher 
36133f810b2SJeff Kirsher #define RES_MAC		2	/* resource type MAC */
36233f810b2SJeff Kirsher #define RES_PORT	4	/* resource type PORT */
36333f810b2SJeff Kirsher 
36433f810b2SJeff Kirsher 
36533f810b2SJeff Kirsher /*
36633f810b2SJeff Kirsher  * CFM state
36733f810b2SJeff Kirsher  * oops: MUST MATCH CF-StateType in SMT7.2 !
36833f810b2SJeff Kirsher  */
36933f810b2SJeff Kirsher #define SC0_ISOLATED	0		/* isolated */
37033f810b2SJeff Kirsher #define SC1_WRAP_A	5		/* wrap A (not used) */
37133f810b2SJeff Kirsher #define SC2_WRAP_B	6		/* wrap B (not used) */
37233f810b2SJeff Kirsher #define SC4_THRU_A	12		/* through A */
37333f810b2SJeff Kirsher #define SC5_THRU_B	7		/* through B (used in SMT 6.2) */
37433f810b2SJeff Kirsher #define SC7_WRAP_S	8		/* SAS (not used) */
37533f810b2SJeff Kirsher #define SC9_C_WRAP_A	9		/* c wrap A */
37633f810b2SJeff Kirsher #define SC10_C_WRAP_B	10		/* c wrap B */
37733f810b2SJeff Kirsher #define SC11_C_WRAP_S	11		/* c wrap S */
37833f810b2SJeff Kirsher 
37933f810b2SJeff Kirsher /*
38033f810b2SJeff Kirsher  * convert MIB time in units of 80nS to uS
38133f810b2SJeff Kirsher  */
38233f810b2SJeff Kirsher #define MIB2US(t)		((t)/12)
38333f810b2SJeff Kirsher #define SEC2MIB(s)	((s)*12500000L)
38433f810b2SJeff Kirsher /*
38533f810b2SJeff Kirsher  * SMT timer
38633f810b2SJeff Kirsher  */
38733f810b2SJeff Kirsher struct smt_timer {
38833f810b2SJeff Kirsher 	struct smt_timer	*tm_next ;	/* linked list */
38933f810b2SJeff Kirsher 	struct s_smc		*tm_smc ;	/* pointer to context */
39033f810b2SJeff Kirsher 	u_long			tm_delta ;	/* delta time */
39133f810b2SJeff Kirsher 	u_long			tm_token ;	/* token value */
39233f810b2SJeff Kirsher 	u_short			tm_active ;	/* flag : active/inactive */
39333f810b2SJeff Kirsher 	u_short			tm_pad ;	/* pad field */
39433f810b2SJeff Kirsher } ;
39533f810b2SJeff Kirsher 
39633f810b2SJeff Kirsher /*
39733f810b2SJeff Kirsher  * communication structures
39833f810b2SJeff Kirsher  */
39933f810b2SJeff Kirsher struct mac_parameter {
40033f810b2SJeff Kirsher 	u_long	t_neg ;		/* T_Neg parameter */
40133f810b2SJeff Kirsher 	u_long	t_pri ;		/* T_Pri register in MAC */
40233f810b2SJeff Kirsher } ;
40333f810b2SJeff Kirsher 
40433f810b2SJeff Kirsher /*
40533f810b2SJeff Kirsher  * MAC counters
40633f810b2SJeff Kirsher  */
40733f810b2SJeff Kirsher struct mac_counter {
40833f810b2SJeff Kirsher 	u_long	mac_nobuf_counter ;	/* MAC SW counter: no buffer */
40933f810b2SJeff Kirsher 	u_long	mac_r_restart_counter ;	/* MAC SW counter: rx restarted */
41033f810b2SJeff Kirsher } ;
41133f810b2SJeff Kirsher 
41233f810b2SJeff Kirsher /*
41333f810b2SJeff Kirsher  * para struct context for SMT parameters
41433f810b2SJeff Kirsher  */
41533f810b2SJeff Kirsher struct s_pcon {
41633f810b2SJeff Kirsher 	int	pc_len ;
41733f810b2SJeff Kirsher 	int	pc_err ;
41833f810b2SJeff Kirsher 	int	pc_badset ;
41933f810b2SJeff Kirsher 	void	*pc_p ;
42033f810b2SJeff Kirsher } ;
42133f810b2SJeff Kirsher 
42233f810b2SJeff Kirsher /*
42333f810b2SJeff Kirsher  * link error monitor
42433f810b2SJeff Kirsher  */
42533f810b2SJeff Kirsher #define LEM_AVG	5
42633f810b2SJeff Kirsher struct lem_counter {
42733f810b2SJeff Kirsher #ifdef	AM29K
42833f810b2SJeff Kirsher 	int	lem_on	;
42933f810b2SJeff Kirsher 	u_long	lem_errors ;
43033f810b2SJeff Kirsher 	u_long	lem_symbols ;
43133f810b2SJeff Kirsher 	u_long	lem_tsymbols ;
43233f810b2SJeff Kirsher 	int	lem_s_count ;
43333f810b2SJeff Kirsher 	int	lem_n_s ;
43433f810b2SJeff Kirsher 	int	lem_values ;
43533f810b2SJeff Kirsher 	int	lem_index ;
43633f810b2SJeff Kirsher 	int	lem_avg_ber[LEM_AVG] ;
43733f810b2SJeff Kirsher 	int	lem_sum ;
43833f810b2SJeff Kirsher #else
43933f810b2SJeff Kirsher 	u_short	lem_float_ber ;		/* 10E-nn bit error rate */
44033f810b2SJeff Kirsher 	u_long	lem_errors ;		/* accumulated error count */
44133f810b2SJeff Kirsher 	u_short	lem_on	;
44233f810b2SJeff Kirsher #endif
44333f810b2SJeff Kirsher } ;
44433f810b2SJeff Kirsher 
44533f810b2SJeff Kirsher #define NUMBITS	10
44633f810b2SJeff Kirsher 
44733f810b2SJeff Kirsher #ifdef	AMDPLC
44833f810b2SJeff Kirsher 
44933f810b2SJeff Kirsher /*
45033f810b2SJeff Kirsher  * PLC state table
45133f810b2SJeff Kirsher  */
45233f810b2SJeff Kirsher struct s_plc {
45333f810b2SJeff Kirsher 	u_short	p_state ;		/* current state */
45433f810b2SJeff Kirsher 	u_short	p_bits ;		/* number of bits to send */
45533f810b2SJeff Kirsher 	u_short	p_start ;		/* first bit pos */
45633f810b2SJeff Kirsher 	u_short	p_pad ;			/* padding for alignment */
45733f810b2SJeff Kirsher 	u_long soft_err ;		/* error counter */
45833f810b2SJeff Kirsher 	u_long parity_err ;		/* error counter */
45933f810b2SJeff Kirsher 	u_long ebuf_err ;		/* error counter */
46033f810b2SJeff Kirsher 	u_long ebuf_cont ;		/* continuous error counter */
46133f810b2SJeff Kirsher 	u_long phyinv ;			/* error counter */
46233f810b2SJeff Kirsher 	u_long vsym_ctr ;		/* error counter */
46333f810b2SJeff Kirsher 	u_long mini_ctr ;		/* error counter */
46433f810b2SJeff Kirsher 	u_long tpc_exp ;		/* error counter */
46533f810b2SJeff Kirsher 	u_long np_err ;			/* error counter */
46633f810b2SJeff Kirsher 	u_long b_pcs ;			/* error counter */
46733f810b2SJeff Kirsher 	u_long b_tpc ;			/* error counter */
46833f810b2SJeff Kirsher 	u_long b_tne ;			/* error counter */
46933f810b2SJeff Kirsher 	u_long b_qls ;			/* error counter */
47033f810b2SJeff Kirsher 	u_long b_ils ;			/* error counter */
47133f810b2SJeff Kirsher 	u_long b_hls ;			/* error counter */
47233f810b2SJeff Kirsher } ;
47333f810b2SJeff Kirsher #endif
47433f810b2SJeff Kirsher 
47533f810b2SJeff Kirsher #ifdef	PROTOTYP_INC
47633f810b2SJeff Kirsher #include "fddi/driver.pro"
47733f810b2SJeff Kirsher #else	/* PROTOTYP_INC */
47833f810b2SJeff Kirsher /*
47933f810b2SJeff Kirsher  * function prototypes
48033f810b2SJeff Kirsher  */
481aab3ac26SJeff Kirsher #include "mbuf.h"	/* Type definitions for MBUFs */
482aab3ac26SJeff Kirsher #include "smtstate.h"	/* struct smt_state */
48333f810b2SJeff Kirsher 
48433f810b2SJeff Kirsher void hwt_restart(struct s_smc *smc);	/* hwt.c */
48533f810b2SJeff Kirsher SMbuf *smt_build_frame(struct s_smc *smc, int class, int type,
48633f810b2SJeff Kirsher 		       int length);	/* smt.c */
48733f810b2SJeff Kirsher SMbuf *smt_get_mbuf(struct s_smc *smc);	/* drvsr.c */
48833f810b2SJeff Kirsher void *sm_to_para(struct s_smc *smc, struct smt_header *sm,
48933f810b2SJeff Kirsher 		 int para);		/* smt.c */
49033f810b2SJeff Kirsher 
49133f810b2SJeff Kirsher #ifndef SK_UNUSED
49233f810b2SJeff Kirsher #define SK_UNUSED(var)		(void)(var)
49333f810b2SJeff Kirsher #endif
49433f810b2SJeff Kirsher 
49533f810b2SJeff Kirsher void queue_event(struct s_smc *smc, int class, int event);
49633f810b2SJeff Kirsher void ecm(struct s_smc *smc, int event);
49733f810b2SJeff Kirsher void ecm_init(struct s_smc *smc);
49833f810b2SJeff Kirsher void rmt(struct s_smc *smc, int event);
49933f810b2SJeff Kirsher void rmt_init(struct s_smc *smc);
50033f810b2SJeff Kirsher void pcm(struct s_smc *smc, const int np, int event);
50133f810b2SJeff Kirsher void pcm_init(struct s_smc *smc);
50233f810b2SJeff Kirsher void cfm(struct s_smc *smc, int event);
50333f810b2SJeff Kirsher void cfm_init(struct s_smc *smc);
50433f810b2SJeff Kirsher void smt_timer_start(struct s_smc *smc, struct smt_timer *timer, u_long time,
50533f810b2SJeff Kirsher 		     u_long token);
50633f810b2SJeff Kirsher void smt_timer_stop(struct s_smc *smc, struct smt_timer *timer);
50733f810b2SJeff Kirsher void pcm_status_state(struct s_smc *smc, int np, int *type, int *state,
50833f810b2SJeff Kirsher 		      int *remote, int *mac);
50933f810b2SJeff Kirsher void plc_config_mux(struct s_smc *smc, int mux);
51033f810b2SJeff Kirsher void sm_lem_evaluate(struct s_smc *smc);
51133f810b2SJeff Kirsher void mac_update_counter(struct s_smc *smc);
51233f810b2SJeff Kirsher void sm_ma_control(struct s_smc *smc, int mode);
51333f810b2SJeff Kirsher void sm_mac_check_beacon_claim(struct s_smc *smc);
51433f810b2SJeff Kirsher void config_mux(struct s_smc *smc, int mux);
51533f810b2SJeff Kirsher void smt_agent_init(struct s_smc *smc);
51633f810b2SJeff Kirsher void smt_timer_init(struct s_smc *smc);
51733f810b2SJeff Kirsher void smt_received_pack(struct s_smc *smc, SMbuf *mb, int fs);
51833f810b2SJeff Kirsher void smt_add_para(struct s_smc *smc, struct s_pcon *pcon, u_short para,
51933f810b2SJeff Kirsher 		  int index, int local);
52033f810b2SJeff Kirsher void smt_swap_para(struct smt_header *sm, int len, int direction);
52133f810b2SJeff Kirsher void ev_init(struct s_smc *smc);
52233f810b2SJeff Kirsher void hwt_init(struct s_smc *smc);
52333f810b2SJeff Kirsher u_long hwt_read(struct s_smc *smc);
52433f810b2SJeff Kirsher void hwt_stop(struct s_smc *smc);
52533f810b2SJeff Kirsher void hwt_start(struct s_smc *smc, u_long time);
52633f810b2SJeff Kirsher void smt_send_mbuf(struct s_smc *smc, SMbuf *mb, int fc);
52733f810b2SJeff Kirsher void smt_free_mbuf(struct s_smc *smc, SMbuf *mb);
52833f810b2SJeff Kirsher void sm_pm_bypass_req(struct s_smc *smc, int mode);
52933f810b2SJeff Kirsher void rmt_indication(struct s_smc *smc, int i);
53033f810b2SJeff Kirsher void cfm_state_change(struct s_smc *smc, int c_state);
53133f810b2SJeff Kirsher 
53233f810b2SJeff Kirsher #if defined(DEBUG) || !defined(NO_SMT_PANIC)
53333f810b2SJeff Kirsher void smt_panic(struct s_smc *smc, char *text);
53433f810b2SJeff Kirsher #else
53533f810b2SJeff Kirsher #define	smt_panic(smc,text)
53633f810b2SJeff Kirsher #endif /* DEBUG || !NO_SMT_PANIC */
53733f810b2SJeff Kirsher 
53833f810b2SJeff Kirsher void smt_stat_counter(struct s_smc *smc, int stat);
53933f810b2SJeff Kirsher void smt_timer_poll(struct s_smc *smc);
54033f810b2SJeff Kirsher u_long smt_get_time(void);
54133f810b2SJeff Kirsher u_long smt_get_tid(struct s_smc *smc);
54233f810b2SJeff Kirsher void smt_timer_done(struct s_smc *smc);
54333f810b2SJeff Kirsher void smt_fixup_mib(struct s_smc *smc);
54433f810b2SJeff Kirsher void smt_reset_defaults(struct s_smc *smc, int level);
54533f810b2SJeff Kirsher void smt_agent_task(struct s_smc *smc);
54633f810b2SJeff Kirsher int smt_check_para(struct s_smc *smc, struct smt_header *sm,
54733f810b2SJeff Kirsher 		   const u_short list[]);
54833f810b2SJeff Kirsher void driver_get_bia(struct s_smc *smc, struct fddi_addr *bia_addr);
54933f810b2SJeff Kirsher 
55033f810b2SJeff Kirsher #ifdef SUPERNET_3
55133f810b2SJeff Kirsher void drv_reset_indication(struct s_smc *smc);
55233f810b2SJeff Kirsher #endif	/* SUPERNET_3 */
55333f810b2SJeff Kirsher 
55433f810b2SJeff Kirsher void smt_start_watchdog(struct s_smc *smc);
55533f810b2SJeff Kirsher void smt_event(struct s_smc *smc, int event);
55633f810b2SJeff Kirsher void timer_event(struct s_smc *smc, u_long token);
55733f810b2SJeff Kirsher void ev_dispatcher(struct s_smc *smc);
55833f810b2SJeff Kirsher void pcm_get_state(struct s_smc *smc, struct smt_state *state);
55933f810b2SJeff Kirsher void ecm_state_change(struct s_smc *smc, int e_state);
56033f810b2SJeff Kirsher int sm_pm_bypass_present(struct s_smc *smc);
56133f810b2SJeff Kirsher void pcm_state_change(struct s_smc *smc, int plc, int p_state);
56233f810b2SJeff Kirsher void rmt_state_change(struct s_smc *smc, int r_state);
56333f810b2SJeff Kirsher int sm_pm_get_ls(struct s_smc *smc, int phy);
56433f810b2SJeff Kirsher int pcm_get_s_port(struct s_smc *smc);
56533f810b2SJeff Kirsher int pcm_rooted_station(struct s_smc *smc);
56633f810b2SJeff Kirsher int cfm_get_mac_input(struct s_smc *smc);
56733f810b2SJeff Kirsher int cfm_get_mac_output(struct s_smc *smc);
56833f810b2SJeff Kirsher int cem_build_path(struct s_smc *smc, char *to, int path_index);
56933f810b2SJeff Kirsher int sm_mac_get_tx_state(struct s_smc *smc);
57033f810b2SJeff Kirsher char *get_pcmstate(struct s_smc *smc, int np);
57133f810b2SJeff Kirsher int smt_action(struct s_smc *smc, int class, int code, int index);
57233f810b2SJeff Kirsher u_short smt_online(struct s_smc *smc, int on);
57333f810b2SJeff Kirsher void smt_force_irq(struct s_smc *smc);
57433f810b2SJeff Kirsher void smt_pmf_received_pack(struct s_smc *smc, SMbuf *mb, int local);
57533f810b2SJeff Kirsher void smt_send_frame(struct s_smc *smc, SMbuf *mb, int fc, int local);
57633f810b2SJeff Kirsher void smt_set_timestamp(struct s_smc *smc, u_char *p);
57733f810b2SJeff Kirsher void mac_set_rx_mode(struct s_smc *smc,	int mode);
57833f810b2SJeff Kirsher int mac_add_multicast(struct s_smc *smc, struct fddi_addr *addr, int can);
57933f810b2SJeff Kirsher void mac_update_multicast(struct s_smc *smc);
58033f810b2SJeff Kirsher void mac_clear_multicast(struct s_smc *smc);
58133f810b2SJeff Kirsher void set_formac_tsync(struct s_smc *smc, long sync_bw);
58233f810b2SJeff Kirsher void formac_reinit_tx(struct s_smc *smc);
58333f810b2SJeff Kirsher void formac_tx_restart(struct s_smc *smc);
58433f810b2SJeff Kirsher void process_receive(struct s_smc *smc);
58533f810b2SJeff Kirsher void init_driver_fplus(struct s_smc *smc);
58633f810b2SJeff Kirsher void rtm_irq(struct s_smc *smc);
58733f810b2SJeff Kirsher void rtm_set_timer(struct s_smc *smc);
58833f810b2SJeff Kirsher void ring_status_indication(struct s_smc *smc, u_long status);
58933f810b2SJeff Kirsher void llc_recover_tx(struct s_smc *smc);
59033f810b2SJeff Kirsher void llc_restart_tx(struct s_smc *smc);
59133f810b2SJeff Kirsher void plc_clear_irq(struct s_smc *smc, int p);
59233f810b2SJeff Kirsher void plc_irq(struct s_smc *smc,	int np,	unsigned int cmd);
59333f810b2SJeff Kirsher int smt_set_mac_opvalues(struct s_smc *smc);
59433f810b2SJeff Kirsher 
59533f810b2SJeff Kirsher #ifdef TAG_MODE
59633f810b2SJeff Kirsher void mac_do_pci_fix(struct s_smc *smc);
59733f810b2SJeff Kirsher void mac_drv_clear_tx_queue(struct s_smc *smc);
59833f810b2SJeff Kirsher void mac_drv_repair_descr(struct s_smc *smc);
59933f810b2SJeff Kirsher u_long hwt_quick_read(struct s_smc *smc);
60033f810b2SJeff Kirsher void hwt_wait_time(struct s_smc *smc, u_long start, long duration);
60133f810b2SJeff Kirsher #endif
60233f810b2SJeff Kirsher 
60333f810b2SJeff Kirsher #ifdef SMT_PNMI
60433f810b2SJeff Kirsher int pnmi_init(struct s_smc* smc);
60533f810b2SJeff Kirsher int pnmi_process_ndis_id(struct s_smc *smc, u_long ndis_oid, void *buf, int len,
60633f810b2SJeff Kirsher 			 int *BytesAccessed, int *BytesNeeded, u_char action);
60733f810b2SJeff Kirsher #endif
60833f810b2SJeff Kirsher 
60933f810b2SJeff Kirsher #ifdef	SBA
61033f810b2SJeff Kirsher #ifndef _H2INC
61133f810b2SJeff Kirsher void sba();
61233f810b2SJeff Kirsher #endif
61333f810b2SJeff Kirsher void sba_raf_received_pack();
61433f810b2SJeff Kirsher void sba_timer_poll();
61533f810b2SJeff Kirsher void smt_init_sba();
61633f810b2SJeff Kirsher #endif
61733f810b2SJeff Kirsher 
61833f810b2SJeff Kirsher #ifdef	ESS
61933f810b2SJeff Kirsher int ess_raf_received_pack(struct s_smc *smc, SMbuf *mb, struct smt_header *sm,
62033f810b2SJeff Kirsher 			  int fs);
62133f810b2SJeff Kirsher void ess_timer_poll(struct s_smc *smc);
62233f810b2SJeff Kirsher void ess_para_change(struct s_smc *smc);
62333f810b2SJeff Kirsher #endif
62433f810b2SJeff Kirsher 
62533f810b2SJeff Kirsher #ifndef	BOOT
62633f810b2SJeff Kirsher void smt_init_evc(struct s_smc *smc);
62733f810b2SJeff Kirsher void smt_srf_event(struct s_smc *smc, int code, int index, int cond);
62833f810b2SJeff Kirsher #else
62933f810b2SJeff Kirsher #define smt_init_evc(smc)
63033f810b2SJeff Kirsher #define smt_srf_event(smc,code,index,cond)
63133f810b2SJeff Kirsher #endif
63233f810b2SJeff Kirsher 
63333f810b2SJeff Kirsher #ifndef SMT_REAL_TOKEN_CT
63433f810b2SJeff Kirsher void smt_emulate_token_ct(struct s_smc *smc, int mac_index);
63533f810b2SJeff Kirsher #endif
63633f810b2SJeff Kirsher 
63733f810b2SJeff Kirsher #if defined(DEBUG) && !defined(BOOT)
63833f810b2SJeff Kirsher void dump_smt(struct s_smc *smc, struct smt_header *sm, char *text);
63933f810b2SJeff Kirsher #else
64033f810b2SJeff Kirsher #define	dump_smt(smc,sm,text)
64133f810b2SJeff Kirsher #endif
64233f810b2SJeff Kirsher 
6435671e8c1SJoe Perches #ifdef	DEBUG
64433f810b2SJeff Kirsher void dump_hex(char *p, int len);
64533f810b2SJeff Kirsher #endif
64633f810b2SJeff Kirsher 
64733f810b2SJeff Kirsher #endif	/* PROTOTYP_INC */
64833f810b2SJeff Kirsher 
64933f810b2SJeff Kirsher /* PNMI default defines */
65033f810b2SJeff Kirsher #ifndef PNMI_INIT
65133f810b2SJeff Kirsher #define	PNMI_INIT(smc)	/* Nothing */
65233f810b2SJeff Kirsher #endif
65333f810b2SJeff Kirsher 
65433f810b2SJeff Kirsher /*
65533f810b2SJeff Kirsher  * SMT_PANIC defines
65633f810b2SJeff Kirsher  */
65733f810b2SJeff Kirsher #ifndef	SMT_PANIC
65833f810b2SJeff Kirsher #define	SMT_PANIC(smc,nr,msg)	smt_panic (smc, msg)
65933f810b2SJeff Kirsher #endif
66033f810b2SJeff Kirsher 
66133f810b2SJeff Kirsher #ifndef	SMT_ERR_LOG
66233f810b2SJeff Kirsher #define	SMT_ERR_LOG(smc,nr,msg)	SMT_PANIC (smc, nr, msg)
66333f810b2SJeff Kirsher #endif
66433f810b2SJeff Kirsher 
66533f810b2SJeff Kirsher #ifndef	SMT_EBASE
66633f810b2SJeff Kirsher #define	SMT_EBASE	100
66733f810b2SJeff Kirsher #endif
66833f810b2SJeff Kirsher 
66933f810b2SJeff Kirsher #define	SMT_E0100	SMT_EBASE + 0
67033f810b2SJeff Kirsher #define	SMT_E0100_MSG	"cfm FSM: invalid ce_type"
67133f810b2SJeff Kirsher #define	SMT_E0101	SMT_EBASE + 1
67233f810b2SJeff Kirsher #define	SMT_E0101_MSG	"CEM: case ???"
67333f810b2SJeff Kirsher #define	SMT_E0102	SMT_EBASE + 2
67433f810b2SJeff Kirsher #define	SMT_E0102_MSG	"CEM A: invalid state"
67533f810b2SJeff Kirsher #define	SMT_E0103	SMT_EBASE + 3
67633f810b2SJeff Kirsher #define	SMT_E0103_MSG	"CEM B: invalid state"
67733f810b2SJeff Kirsher #define	SMT_E0104	SMT_EBASE + 4
67833f810b2SJeff Kirsher #define	SMT_E0104_MSG	"CEM M: invalid state"
67933f810b2SJeff Kirsher #define	SMT_E0105	SMT_EBASE + 5
68033f810b2SJeff Kirsher #define	SMT_E0105_MSG	"CEM S: invalid state"
68133f810b2SJeff Kirsher #define	SMT_E0106	SMT_EBASE + 6
68233f810b2SJeff Kirsher #define	SMT_E0106_MSG	"CFM : invalid state"
68333f810b2SJeff Kirsher #define	SMT_E0107	SMT_EBASE + 7
68433f810b2SJeff Kirsher #define	SMT_E0107_MSG	"ECM : invalid state"
68533f810b2SJeff Kirsher #define	SMT_E0108	SMT_EBASE + 8
68633f810b2SJeff Kirsher #define	SMT_E0108_MSG	"prop_actions : NAC in DAS CFM"
68733f810b2SJeff Kirsher #define	SMT_E0109	SMT_EBASE + 9
68833f810b2SJeff Kirsher #define	SMT_E0109_MSG	"ST2U.FM_SERRSF error in special frame"
68933f810b2SJeff Kirsher #define	SMT_E0110	SMT_EBASE + 10
69033f810b2SJeff Kirsher #define	SMT_E0110_MSG	"ST2U.FM_SRFRCTOV recv. count. overflow"
69133f810b2SJeff Kirsher #define	SMT_E0111	SMT_EBASE + 11
69233f810b2SJeff Kirsher #define	SMT_E0111_MSG	"ST2U.FM_SNFSLD NP & FORMAC simult. load"
69333f810b2SJeff Kirsher #define	SMT_E0112	SMT_EBASE + 12
69433f810b2SJeff Kirsher #define	SMT_E0112_MSG	"ST2U.FM_SRCVFRM single-frame recv.-mode"
69533f810b2SJeff Kirsher #define	SMT_E0113	SMT_EBASE + 13
69633f810b2SJeff Kirsher #define	SMT_E0113_MSG	"FPLUS: Buffer Memory Error"
69733f810b2SJeff Kirsher #define	SMT_E0114	SMT_EBASE + 14
69833f810b2SJeff Kirsher #define	SMT_E0114_MSG	"ST2U.FM_SERRSF error in special frame"
69933f810b2SJeff Kirsher #define	SMT_E0115	SMT_EBASE + 15
70033f810b2SJeff Kirsher #define	SMT_E0115_MSG	"ST3L: parity error in receive queue 2"
70133f810b2SJeff Kirsher #define	SMT_E0116	SMT_EBASE + 16
70233f810b2SJeff Kirsher #define	SMT_E0116_MSG	"ST3L: parity error in receive queue 1"
70333f810b2SJeff Kirsher #define	SMT_E0117	SMT_EBASE + 17
70433f810b2SJeff Kirsher #define	SMT_E0117_MSG	"E_SMT_001: RxD count for receive queue 1 = 0"
70533f810b2SJeff Kirsher #define	SMT_E0118	SMT_EBASE + 18
70633f810b2SJeff Kirsher #define	SMT_E0118_MSG	"PCM : invalid state"
70733f810b2SJeff Kirsher #define	SMT_E0119	SMT_EBASE + 19
70833f810b2SJeff Kirsher #define	SMT_E0119_MSG	"smt_add_para"
70933f810b2SJeff Kirsher #define	SMT_E0120	SMT_EBASE + 20
71033f810b2SJeff Kirsher #define	SMT_E0120_MSG	"smt_set_para"
71133f810b2SJeff Kirsher #define	SMT_E0121	SMT_EBASE + 21
71233f810b2SJeff Kirsher #define	SMT_E0121_MSG	"invalid event in dispatcher"
71333f810b2SJeff Kirsher #define	SMT_E0122	SMT_EBASE + 22
71433f810b2SJeff Kirsher #define	SMT_E0122_MSG	"RMT : invalid state"
71533f810b2SJeff Kirsher #define	SMT_E0123	SMT_EBASE + 23
71633f810b2SJeff Kirsher #define	SMT_E0123_MSG	"SBA: state machine has invalid state"
71733f810b2SJeff Kirsher #define	SMT_E0124	SMT_EBASE + 24
71833f810b2SJeff Kirsher #define	SMT_E0124_MSG	"sba_free_session() called with NULL pointer"
71933f810b2SJeff Kirsher #define	SMT_E0125	SMT_EBASE + 25
72033f810b2SJeff Kirsher #define	SMT_E0125_MSG	"SBA : invalid session pointer"
72133f810b2SJeff Kirsher #define	SMT_E0126	SMT_EBASE + 26
72233f810b2SJeff Kirsher #define	SMT_E0126_MSG	"smt_free_mbuf() called with NULL pointer\n"
72333f810b2SJeff Kirsher #define	SMT_E0127	SMT_EBASE + 27
72433f810b2SJeff Kirsher #define	SMT_E0127_MSG	"sizeof evcs"
72533f810b2SJeff Kirsher #define	SMT_E0128	SMT_EBASE + 28
72633f810b2SJeff Kirsher #define	SMT_E0128_MSG	"evc->evc_cond_state = 0"
72733f810b2SJeff Kirsher #define	SMT_E0129	SMT_EBASE + 29
72833f810b2SJeff Kirsher #define	SMT_E0129_MSG	"evc->evc_multiple = 0"
72933f810b2SJeff Kirsher #define	SMT_E0130	SMT_EBASE + 30
73033f810b2SJeff Kirsher #define	SMT_E0130_MSG	write_mdr_warning
73133f810b2SJeff Kirsher #define	SMT_E0131	SMT_EBASE + 31
73233f810b2SJeff Kirsher #define	SMT_E0131_MSG	cam_warning
73333f810b2SJeff Kirsher #define SMT_E0132	SMT_EBASE + 32
73433f810b2SJeff Kirsher #define SMT_E0132_MSG	"ST1L.FM_SPCEPDx parity/coding error"
73533f810b2SJeff Kirsher #define SMT_E0133	SMT_EBASE + 33
73633f810b2SJeff Kirsher #define SMT_E0133_MSG	"ST1L.FM_STBURx tx buffer underrun"
73733f810b2SJeff Kirsher #define SMT_E0134	SMT_EBASE + 34
73833f810b2SJeff Kirsher #define SMT_E0134_MSG	"ST1L.FM_SPCEPDx parity error"
73933f810b2SJeff Kirsher #define SMT_E0135	SMT_EBASE + 35
74033f810b2SJeff Kirsher #define SMT_E0135_MSG	"RMT: duplicate MAC address detected. Ring left!"
74133f810b2SJeff Kirsher #define SMT_E0136	SMT_EBASE + 36
74233f810b2SJeff Kirsher #define SMT_E0136_MSG	"Elasticity Buffer hang-up"
74333f810b2SJeff Kirsher #define SMT_E0137	SMT_EBASE + 37
74433f810b2SJeff Kirsher #define SMT_E0137_MSG	"SMT: queue overrun"
74533f810b2SJeff Kirsher #define SMT_E0138	SMT_EBASE + 38
74633f810b2SJeff Kirsher #define SMT_E0138_MSG	"RMT: duplicate MAC address detected. Ring NOT left!"
74733f810b2SJeff Kirsher #endif	/* _CMTDEF_ */
748