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