1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /****************************************************************************** |
3 | * |
4 | * (C)Copyright 1998,1999 SysKonnect, |
5 | * a business unit of Schneider & Koch & Co. Datensysteme GmbH. |
6 | * |
7 | * The information in this file is provided "AS IS" without warranty. |
8 | * |
9 | ******************************************************************************/ |
10 | |
11 | #ifndef _SKFP_H_SMTSTATE_H_ |
12 | #define _SKFP_H_SMTSTATE_H_ |
13 | |
14 | /* |
15 | * SMT state definitions |
16 | */ |
17 | |
18 | #ifndef KERNEL |
19 | /* |
20 | * PCM states |
21 | */ |
22 | #define PC0_OFF 0 |
23 | #define PC1_BREAK 1 |
24 | #define PC2_TRACE 2 |
25 | #define PC3_CONNECT 3 |
26 | #define PC4_NEXT 4 |
27 | #define PC5_SIGNAL 5 |
28 | #define PC6_JOIN 6 |
29 | #define PC7_VERIFY 7 |
30 | #define PC8_ACTIVE 8 |
31 | #define PC9_MAINT 9 |
32 | |
33 | /* |
34 | * PCM modes |
35 | */ |
36 | #define PM_NONE 0 |
37 | #define PM_PEER 1 |
38 | #define PM_TREE 2 |
39 | |
40 | /* |
41 | * PCM type |
42 | */ |
43 | #define TA 0 |
44 | #define TB 1 |
45 | #define TS 2 |
46 | #define TM 3 |
47 | #define TNONE 4 |
48 | |
49 | /* |
50 | * CFM states |
51 | */ |
52 | #define SC0_ISOLATED 0 /* isolated */ |
53 | #define SC1_WRAP_A 5 /* wrap A */ |
54 | #define SC2_WRAP_B 6 /* wrap B */ |
55 | #define SC4_THRU_A 12 /* through A */ |
56 | #define SC5_THRU_B 7 /* through B (SMt 6.2) */ |
57 | #define SC7_WRAP_S 8 /* SAS */ |
58 | |
59 | /* |
60 | * ECM states |
61 | */ |
62 | #define EC0_OUT 0 |
63 | #define EC1_IN 1 |
64 | #define EC2_TRACE 2 |
65 | #define EC3_LEAVE 3 |
66 | #define EC4_PATH_TEST 4 |
67 | #define EC5_INSERT 5 |
68 | #define EC6_CHECK 6 |
69 | #define EC7_DEINSERT 7 |
70 | |
71 | /* |
72 | * RMT states |
73 | */ |
74 | #define RM0_ISOLATED 0 |
75 | #define RM1_NON_OP 1 /* not operational */ |
76 | #define RM2_RING_OP 2 /* ring operational */ |
77 | #define RM3_DETECT 3 /* detect dupl addresses */ |
78 | #define RM4_NON_OP_DUP 4 /* dupl. addr detected */ |
79 | #define RM5_RING_OP_DUP 5 /* ring oper. with dupl. addr */ |
80 | #define RM6_DIRECTED 6 /* sending directed beacons */ |
81 | #define RM7_TRACE 7 /* trace initiated */ |
82 | #endif |
83 | |
84 | struct pcm_state { |
85 | unsigned char pcm_type ; /* TA TB TS TM */ |
86 | unsigned char pcm_state ; /* state PC[0-9]_* */ |
87 | unsigned char pcm_mode ; /* PM_{NONE,PEER,TREE} */ |
88 | unsigned char pcm_neighbor ; /* TA TB TS TM */ |
89 | unsigned char pcm_bsf ; /* flag bs : TRUE/FALSE */ |
90 | unsigned char pcm_lsf ; /* flag ls : TRUE/FALSE */ |
91 | unsigned char pcm_lct_fail ; /* counter lct_fail */ |
92 | unsigned char pcm_ls_rx ; /* rx line state */ |
93 | short pcm_r_val ; /* signaling bits */ |
94 | short pcm_t_val ; /* signaling bits */ |
95 | } ; |
96 | |
97 | struct smt_state { |
98 | struct pcm_state pcm_state[NUMPHYS] ; /* port A & port B */ |
99 | } ; |
100 | |
101 | #endif |
102 | |
103 | |