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