90 #define LOF(x) (sizeof(x)/sizeof(hcf_16)-1)
106 #define CNV_END_SHORT(w) (hcf_16)( ((hcf_16)(w) & 0x00FF) << 8 | ((hcf_16)(w) & 0xFF00) >> 8 )
107 #define CNV_END_LONG(dw) (hcf_32)( (dw >> 24) | ((dw >> 8) & 0xff00) | ((dw << 8) & 0xff0000) | (dw << 24) )
111 #define CNV_LITTLE_TO_SHORT(w) CNV_END_SHORT(w) // endianness conversion needed
112 #define CNV_BIG_TO_SHORT(w) (w) // no endianness conversion needed
113 #define CNV_LITTLE_TO_LONG(dw) CNV_END_LONG(dw)
114 #define CNV_LONG_TO_LITTLE(dw) CNV_END_LONG(dw)
117 #define CNV_LITTLE_TO_SHORT(w) (w) // no endianness conversion needed
118 #define CNV_BIG_TO_SHORT(w) CNV_END_SHORT(w) // endianness conversion needed
119 #define CNV_LITTLE_TO_LONG(dw) (dw)
120 #define CNV_LONG_TO_LITTLE(dw) (dw)
122 #if defined HCF_ALIGN && HCF_ALIGN > 1
123 #define CNV_SHORTP_TO_LITTLE(pw) ((hcf_16)(*(hcf_8 *)pw)) | ((hcf_16)(*((hcf_8 *)pw+1)) << 8)
124 #define CNV_LONGP_TO_LITTLE(pdw) ((hcf_32)(*(hcf_8 *)pdw)) | ((hcf_32)(*((hcf_8 *)pdw+1)) << 8) | \
125 ((hcf_32)(*((hcf_8 *)pdw+2)) << 16) | ((hcf_32)(*((hcf_8 *)pdw+3)) << 24)
127 #define CNV_LONGP_TO_LITTLE(pdw) (*(hcf_32 *)pdw)
128 #define CNV_SHORTP_TO_LITTLE(pw) (*(hcf_16 *)pw)
131 #endif // HCF_BIG_ENDIAN
134 #define CNV_SHORT_TO_LITTLE(w) CNV_LITTLE_TO_SHORT(w)
135 #define CNV_SHORT_TO_BIG(w) CNV_BIG_TO_SHORT(w)
146 #define HFS_STAT 0x0000
147 #define HFS_SWSUP 0x0006 //SW Support
148 #define HFS_Q_INFO 0x0006 //Signal/Silence level
149 #define HFS_RATE 0x0008 //RxFlow/Rate
150 #define HFS_STAT_ERR RX_STAT_ERR //link "natural" HCF name to "natural" MSF name
151 #define HFS_TX_CNTL 0x0036
153 #define HFS_DAT_LEN (HFS_ADDR_DEST - 2) // 0x002C 0x0038
154 #define HFS_ADDR_DEST 0x003A // 0x002E 0x003A
155 #define HFS_ADDR_SRC (HFS_ADDR_DEST + 6) // 0x0034 0x0040
156 #define HFS_LEN (HFS_ADDR_SRC + 6) // 0x003A 0x0046
157 #define HFS_DAT (HFS_LEN + 2) // 0x003C 0x0048
158 #define HFS_TYPE (HFS_DAT + 6) // 0x0042 0x004E
165 #define DESC_STRCT_CNT 0
166 #define DESC_STRCT_SIZE 1
168 #define DESC_STRCT_CNT 1
169 #define DESC_STRCT_SIZE 0
170 #endif // HCF_BIG_ENDIAN
172 #define BUF_CNT buf_dim[DESC_STRCT_CNT]
173 #define BUF_SIZE buf_dim[DESC_STRCT_SIZE]
182 #if (HCF_EXT) & HCF_EXT_DESC_STRCT
183 void FAR *DESC_MSFSup;
184 #endif // HCF_DESC_STRCT_EXT
187 #define HCF_DASA_SIZE 12 //size in bytes for DA/SA
189 #define DESC_CNT_MASK 0x0FFF
191 #define GET_BUF_SIZE(descp) ((descp)->BUF_SIZE)
192 #define GET_BUF_CNT(descp) ((descp)->BUF_CNT)
193 #define SET_BUF_SIZE(descp, size) (descp)->BUF_SIZE = size;
194 #define SET_BUF_CNT(descp, count) (descp)->BUF_CNT = count;
222 #if (HCF_EXT) & HCF_EXT_TALLIES_FW
224 #endif // HCF_EXT_TALLIES_FW
235 #if (HCF_EXT) & HCF_EXT_TALLIES_FW
237 #endif // HCF_EXT_TALLIES_FW
241 #if (HCF_TALLIES) & ( HCF_TALLIES_NIC | HCF_TALLIES_HCF )
242 #if (HCF_TALLIES) & HCF_TALLIES_NIC //Hermes tally support
243 #define HCF_NIC_TAL_CNT (sizeof(CFG_HERMES_TALLIES_STRCT)/ sizeof(hcf_32))
245 #define HCF_NIC_TAL_CNT 0
246 #endif // HCF_TALLIES
247 #if (HCF_TALLIES) & HCF_TALLIES_HCF //HCF tally support
248 #define HCF_HCF_TAL_CNT (sizeof(CFG_HCF_TALLIES_STRCT) / sizeof(hcf_32))
250 #define HCF_HCF_TAL_CNT 0
251 #endif // HCF_TALLIES
252 #define HCF_TOT_TAL_CNT ( HCF_NIC_TAL_CNT + HCF_NIC_TAL_CNT )
253 #endif // HCF_TALLIES_NIC / HCF_TALLIES_HCF
260 #define IFB_VERSION 0x0E // initially 0, to be incremented by every IFB layout change
288 #if defined MSF_COMPONENT_ID
289 CFG_SUP_RANGE_STRCT IFB_FWSup;
291 CFG_SUP_RANGE_STRCT IFB_PRISup;
292 CFG_SUP_RANGE_STRCT IFB_HSISup;
293 #endif // MSF_COMPONENT_ID
294 #if (HCF_EXT) & HCF_EXT_INFO_LOG
296 #endif // HCF_EXT_INFO_LOG
299 #endif // HCF_PROT_TIME
300 #if (HCF_EXT) & HCF_EXT_INT_TICK
302 #endif // HCF_EXT_INT_TICK
308 #if (HCF_TYPE) & HCF_TYPE_WPA
316 #endif // HCF_TYPE_WPA
318 #if (HCF_ASSERT) & HCF_ASSERT_MB
319 CFG_MB_INFO_RANGE1_STRCT IFB_AssertStrct;
320 #endif // HCF_ASSERT_MB
324 hcf_32 IFB_AssertQualifier;
327 #if (HCF_ASSERT) & ( HCF_ASSERT_LNK_MSF_RTN | HCF_ASSERT_RT_MSF_RTN )
328 MSF_ASSERT_RTNP IFB_AssertRtn;
329 #endif // HCF_ASSERT_LNK_MSF_RTN
330 #if (HCF_ASSERT) & HCF_ASSERT_PRINTF // engineering facilty intended as F/W debugging aid
333 #endif // HCF_ASSERT_PRINTF
336 #if (HCF_TALLIES) & ( HCF_TALLIES_NIC | HCF_TALLIES_HCF ) //Hermes and/or HCF tally support
340 #endif // HCF_TALLIES_NIC / HCF_TALLIES_HCF
341 #if (HCF_TALLIES) & HCF_TALLIES_NIC //Hermes tally support
343 #endif // HCF_TALLIES_NIC
344 #if (HCF_TALLIES) & HCF_TALLIES_HCF //HCF tally support
346 #endif // HCF_TALLIES_HCF
355 #if (HCF_EXT) & HCF_EXT_INT_TX_EX
359 #endif // HCF_EXT_INT_TX_EX
363 #if (HCF_EXT) & HCF_EXT_IFB_STRCT // for usage by the MSF
364 void FAR *IFB_MSFSup;
365 #endif // HCF_EXT_IFB_STRCT_EXT
389 #if (HCF_ASSERT) & HCF_ASSERT_LNK_MSF_RTN
391 #endif // HCF_ASSERT_LNK_MSF_RTN