tdm_hx5_top.h (4274B)
1 /* 2 * 3 * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file. 4 * 5 * Copyright 2007-2019 Broadcom Inc. All rights reserved. 6 * All Rights Reserved.$ 7 * 8 * TDM top header for BCM56870 9 */ 10 11 #ifndef TDM_HX5_PREPROCESSOR_DIRECTIVES_H 12 #define TDM_HX5_PREPROCESSOR_DIRECTIVES_H 13 14 #ifdef _TDM_STANDALONE 15 #include <tdm_hx5_defines.h> 16 #else 17 #include <soc/tdm/helix5/tdm_hx5_defines.h> 18 #endif 19 20 #define HX5_TOKEN_CHECK(a) \ 21 if (a!=HX5_NUM_EXT_PORTS && \ 22 a!=HX5_OVSB_TOKEN && \ 23 a!=HX5_CMIC_TOKEN && \ 24 a!=HX5_FAE_TOKEN && \ 25 a!=HX5_LPB0_TOKEN && \ 26 a!=HX5_ANCL_TOKEN && \ 27 a!=HX5_NULL_TOKEN && \ 28 a!=HX5_IDL1_TOKEN && \ 29 a!=HX5_IDL2_TOKEN) \ 30 31 #define HX5_CMIC(a,b) { \ 32 b[a]=HX5_CMIC_TOKEN; \ 33 TDM_PRINT0("CMIC/CPU\n"); \ 34 break; \ 35 } 36 #define HX5_LPB0(a,b) { \ 37 b[a]=HX5_LPB0_TOKEN; \ 38 TDM_PRINT0("TILE 0 LOOPBACK\n"); \ 39 break; \ 40 } 41 #define HX5_OPT1(a,b) { \ 42 b[a]=HX5_IDL1_TOKEN; \ 43 TDM_PRINT0("OPPORTUNISTIC 1\n"); \ 44 break; \ 45 } 46 #define HX5_OPT2(a,b) { \ 47 b[a]=HX5_IDL1_TOKEN; \ 48 TDM_PRINT0("OPPORTUNISTIC 2\n"); \ 49 break; \ 50 } 51 #define HX5_SBUS(a,b) { \ 52 b[a]=HX5_IDL1_TOKEN; \ 53 TDM_PRINT0("SBUS\n"); \ 54 break; \ 55 } 56 #define HX5_NULL(a,b) { \ 57 b[a]=HX5_NULL_TOKEN; \ 58 TDM_PRINT0("NULL\n"); \ 59 break; \ 60 } 61 #define HX5_IDLE(a,b) { \ 62 b[a]=HX5_IDL2_TOKEN; \ 63 TDM_PRINT0("IDLE\n"); \ 64 break; \ 65 } 66 #define HX5_DOT0(a,b) { \ 67 for (i=0; i<256; i++) { \ 68 if (b[i]==HX5_OVSB_TOKEN) { \ 69 b[a]=HX5_OVSB_TOKEN; \ 70 break; \ 71 } \ 72 else { \ 73 b[a]=HX5_CMIC_TOKEN; \ 74 } \ 75 } \ 76 if (b[a]==HX5_OVSB_TOKEN) { \ 77 TDM_PRINT0("DOT OVERSUB\n"); \ 78 } \ 79 else { \ 80 TDM_PRINT0("DOT CMIC/CPU\n"); \ 81 } \ 82 break; \ 83 } 84 #define HX5_DOT1(a,b) { \ 85 for (i=0; i<256; i++) { \ 86 if (b[i]==HX5_OVSB_TOKEN) { \ 87 b[a]=HX5_OVSB_TOKEN; \ 88 break; \ 89 } \ 90 } \ 91 if (b[a]==HX5_OVSB_TOKEN) { \ 92 TDM_PRINT0("DOT OVERSUB\n"); \ 93 } \ 94 else { \ 95 TDM_PRINT0("DOT IDB 1 MANAGEMENT\n"); \ 96 } \ 97 break; \ 98 } 99 #define HX5_DOT2(a,b) { \ 100 for (i=0; i<256; i++) { \ 101 if (b[i]==HX5_OVSB_TOKEN) { \ 102 b[a]=HX5_OVSB_TOKEN; \ 103 break; \ 104 } \ 105 } \ 106 if (b[a]==HX5_OVSB_TOKEN) { \ 107 TDM_PRINT0("DOT OVERSUB\n"); \ 108 } \ 109 else { \ 110 TDM_PRINT0("DOT IDB 2 MANAGEMENT\n"); \ 111 } \ 112 break; \ 113 } 114 #define HX5_DOT3(a,b) { \ 115 for (i=0; i<256; i++) { \ 116 if (b[i]==HX5_OVSB_TOKEN) { \ 117 b[a]=HX5_OVSB_TOKEN; \ 118 break; \ 119 } \ 120 else { \ 121 b[a]=HX5_IDL2_TOKEN; \ 122 } \ 123 } \ 124 if (b[a]==HX5_OVSB_TOKEN) { \ 125 TDM_PRINT0("DOT OVERSUB\n"); \ 126 } \ 127 else { \ 128 TDM_PRINT0("DOT PURGE\n"); \ 129 } \ 130 break; \ 131 } 132 133 typedef struct hx5_ll_node { 134 unsigned short port; 135 struct hx5_ll_node *next; 136 } hx5_ll_node; 137 138 #ifdef _TDM_STANDALONE 139 #include <tdm_hx5_methods.h> 140 #else 141 #include <soc/tdm/helix5/tdm_hx5_methods.h> 142 #endif 143 144 /* API shim layer */ 145 146 #endif /* TDM_HX5_PREPROCESSOR_DIRECTIVES_H */