smtstate.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

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