xref: /openbmc/linux/drivers/net/fddi/skfp/h/smtstate.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
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 _SKFP_H_SMTSTATE_H_
1233f810b2SJeff Kirsher #define _SKFP_H_SMTSTATE_H_
1333f810b2SJeff Kirsher 
1433f810b2SJeff Kirsher /*
1533f810b2SJeff Kirsher  *	SMT state definitions
1633f810b2SJeff Kirsher  */
1733f810b2SJeff Kirsher 
1833f810b2SJeff Kirsher #ifndef	KERNEL
1933f810b2SJeff Kirsher /*
2033f810b2SJeff Kirsher  * PCM states
2133f810b2SJeff Kirsher  */
2233f810b2SJeff Kirsher #define PC0_OFF			0
2333f810b2SJeff Kirsher #define PC1_BREAK		1
2433f810b2SJeff Kirsher #define PC2_TRACE		2
2533f810b2SJeff Kirsher #define PC3_CONNECT		3
2633f810b2SJeff Kirsher #define PC4_NEXT		4
2733f810b2SJeff Kirsher #define PC5_SIGNAL		5
2833f810b2SJeff Kirsher #define PC6_JOIN		6
2933f810b2SJeff Kirsher #define PC7_VERIFY		7
3033f810b2SJeff Kirsher #define PC8_ACTIVE		8
3133f810b2SJeff Kirsher #define PC9_MAINT		9
3233f810b2SJeff Kirsher 
3333f810b2SJeff Kirsher /*
3433f810b2SJeff Kirsher  * PCM modes
3533f810b2SJeff Kirsher  */
3633f810b2SJeff Kirsher #define PM_NONE			0
3733f810b2SJeff Kirsher #define PM_PEER			1
3833f810b2SJeff Kirsher #define PM_TREE			2
3933f810b2SJeff Kirsher 
4033f810b2SJeff Kirsher /*
4133f810b2SJeff Kirsher  * PCM type
4233f810b2SJeff Kirsher  */
4333f810b2SJeff Kirsher #define TA			0
4433f810b2SJeff Kirsher #define TB			1
4533f810b2SJeff Kirsher #define TS			2
4633f810b2SJeff Kirsher #define TM			3
4733f810b2SJeff Kirsher #define TNONE			4
4833f810b2SJeff Kirsher 
4933f810b2SJeff Kirsher /*
5033f810b2SJeff Kirsher  * CFM states
5133f810b2SJeff Kirsher  */
5233f810b2SJeff Kirsher #define SC0_ISOLATED	0		/* isolated */
5333f810b2SJeff Kirsher #define SC1_WRAP_A	5		/* wrap A */
5433f810b2SJeff Kirsher #define SC2_WRAP_B	6		/* wrap B */
5533f810b2SJeff Kirsher #define SC4_THRU_A	12		/* through A */
5633f810b2SJeff Kirsher #define SC5_THRU_B	7		/* through B (SMt 6.2) */
5733f810b2SJeff Kirsher #define SC7_WRAP_S	8		/* SAS */
5833f810b2SJeff Kirsher 
5933f810b2SJeff Kirsher /*
6033f810b2SJeff Kirsher  * ECM states
6133f810b2SJeff Kirsher  */
6233f810b2SJeff Kirsher #define EC0_OUT		0
6333f810b2SJeff Kirsher #define EC1_IN		1
6433f810b2SJeff Kirsher #define EC2_TRACE	2
6533f810b2SJeff Kirsher #define EC3_LEAVE	3
6633f810b2SJeff Kirsher #define EC4_PATH_TEST	4
6733f810b2SJeff Kirsher #define EC5_INSERT	5
6833f810b2SJeff Kirsher #define EC6_CHECK	6
6933f810b2SJeff Kirsher #define EC7_DEINSERT	7
7033f810b2SJeff Kirsher 
7133f810b2SJeff Kirsher /*
7233f810b2SJeff Kirsher  * RMT states
7333f810b2SJeff Kirsher  */
7433f810b2SJeff Kirsher #define RM0_ISOLATED	0
7533f810b2SJeff Kirsher #define RM1_NON_OP	1		/* not operational */
7633f810b2SJeff Kirsher #define RM2_RING_OP	2		/* ring operational */
7733f810b2SJeff Kirsher #define RM3_DETECT	3		/* detect dupl addresses */
7833f810b2SJeff Kirsher #define RM4_NON_OP_DUP	4		/* dupl. addr detected */
7933f810b2SJeff Kirsher #define RM5_RING_OP_DUP	5		/* ring oper. with dupl. addr */
8033f810b2SJeff Kirsher #define RM6_DIRECTED	6		/* sending directed beacons */
8133f810b2SJeff Kirsher #define RM7_TRACE	7		/* trace initiated */
8233f810b2SJeff Kirsher #endif
8333f810b2SJeff Kirsher 
8433f810b2SJeff Kirsher struct pcm_state {
8533f810b2SJeff Kirsher 	unsigned char	pcm_type ;		/* TA TB TS TM */
8633f810b2SJeff Kirsher 	unsigned char	pcm_state ;		/* state PC[0-9]_* */
8733f810b2SJeff Kirsher 	unsigned char	pcm_mode ;		/* PM_{NONE,PEER,TREE} */
8833f810b2SJeff Kirsher 	unsigned char	pcm_neighbor ;		/* TA TB TS TM */
8933f810b2SJeff Kirsher 	unsigned char	pcm_bsf ;		/* flag bs : TRUE/FALSE */
9033f810b2SJeff Kirsher 	unsigned char	pcm_lsf ;		/* flag ls : TRUE/FALSE */
9133f810b2SJeff Kirsher 	unsigned char	pcm_lct_fail ;		/* counter lct_fail */
9233f810b2SJeff Kirsher 	unsigned char	pcm_ls_rx ;		/* rx line state */
9333f810b2SJeff Kirsher 	short		pcm_r_val ;		/* signaling bits */
9433f810b2SJeff Kirsher 	short		pcm_t_val ;		/* signaling bits */
9533f810b2SJeff Kirsher } ;
9633f810b2SJeff Kirsher 
9733f810b2SJeff Kirsher struct smt_state {
9833f810b2SJeff Kirsher 	struct pcm_state pcm_state[NUMPHYS] ;	/* port A & port B */
9933f810b2SJeff Kirsher } ;
10033f810b2SJeff Kirsher 
10133f810b2SJeff Kirsher #endif
10233f810b2SJeff Kirsher 
103