| 1 | /*************************************************************************** |
|---|
| 2 | * Copyright (c) 2003-2011, Broadcom Corporation |
|---|
| 3 | * All Rights Reserved |
|---|
| 4 | * Confidential Property of Broadcom Corporation |
|---|
| 5 | * |
|---|
| 6 | * THIS SOFTWARE MAY ONLY BE USED SUBJECT TO AN EXECUTED SOFTWARE LICENSE |
|---|
| 7 | * AGREEMENT BETWEEN THE USER AND BROADCOM. YOU HAVE NO RIGHT TO USE OR |
|---|
| 8 | * EXPLOIT THIS MATERIAL EXCEPT SUBJECT TO THE TERMS OF SUCH AN AGREEMENT. |
|---|
| 9 | * |
|---|
| 10 | * $brcm_Workfile: bmrc.h $ |
|---|
| 11 | * $brcm_Revision: Hydra_Software_Devel/65 $ |
|---|
| 12 | * $brcm_Date: 11/2/11 6:09p $ |
|---|
| 13 | * |
|---|
| 14 | * Module Description: |
|---|
| 15 | * |
|---|
| 16 | * Revision History: |
|---|
| 17 | * |
|---|
| 18 | * $brcm_Log: /magnum/commonutils/mrc/7125/bmrc.h $ |
|---|
| 19 | * |
|---|
| 20 | * Hydra_Software_Devel/65 11/2/11 6:09p albertl |
|---|
| 21 | * SW7435-12: Added 7435 support to MRC. |
|---|
| 22 | * |
|---|
| 23 | * Hydra_Software_Devel/64 9/16/11 6:19p albertl |
|---|
| 24 | * SW7425-1298: Updated clients for 7425. |
|---|
| 25 | * |
|---|
| 26 | * Hydra_Software_Devel/63 3/23/11 4:44p albertl |
|---|
| 27 | * SWDTV-5969: Updated MRC to be compatible with 35233 a0. |
|---|
| 28 | * |
|---|
| 29 | * Hydra_Software_Devel/62 12/29/10 3:18p pntruong |
|---|
| 30 | * SW7422-168: Remove bogus warning msg. |
|---|
| 31 | * |
|---|
| 32 | * Hydra_Software_Devel/61 12/9/10 9:08p albertl |
|---|
| 33 | * SWBLURAY-23579: Fix issues with renamed memory controller. |
|---|
| 34 | * |
|---|
| 35 | * Hydra_Software_Devel/60 12/3/10 10:05p albertl |
|---|
| 36 | * SWBLURAY-23672: Added MRC support to 7640. |
|---|
| 37 | * |
|---|
| 38 | * Hydra_Software_Devel/59 11/22/10 6:07p albertl |
|---|
| 39 | * SW7422-15, SW7125-27: Fixed SVD and AVD client names. Fixed wrong |
|---|
| 40 | * client assignment for 7135. |
|---|
| 41 | * |
|---|
| 42 | * Hydra_Software_Devel/58 11/15/10 3:51p albertl |
|---|
| 43 | * SW35125-23: Added 35125 support to MRC. |
|---|
| 44 | * |
|---|
| 45 | * Hydra_Software_Devel/57 9/15/10 6:43p albertl |
|---|
| 46 | * SW7358-9: Added initial support for 7135 in MRC. |
|---|
| 47 | * |
|---|
| 48 | * Hydra_Software_Devel/56 8/27/10 6:39p albertl |
|---|
| 49 | * SW7125-27: Updated for 7425 support. |
|---|
| 50 | * |
|---|
| 51 | * Hydra_Software_Devel/55 6/29/10 8:28p albertl |
|---|
| 52 | * SW7422-15: Added 7422 clients back in. |
|---|
| 53 | * |
|---|
| 54 | * Hydra_Software_Devel/53 6/24/10 7:06p vanessah |
|---|
| 55 | * SW7422-12: fix run time error. Enum order issue |
|---|
| 56 | * |
|---|
| 57 | * Hydra_Software_Devel/52 6/24/10 3:52p vanessah |
|---|
| 58 | * SW7422-12: Add additional mrc client support for 7422 |
|---|
| 59 | * |
|---|
| 60 | * Hydra_Software_Devel/51 5/28/10 8:39p albertl |
|---|
| 61 | * SW35230-250: Updated 35230 MRC clients. |
|---|
| 62 | * |
|---|
| 63 | * Hydra_Software_Devel/50 3/15/10 2:19p albertl |
|---|
| 64 | * SW3548-2832: Removed extraneous BMRC_Client_eHIF_CPU enum. |
|---|
| 65 | * |
|---|
| 66 | * Hydra_Software_Devel/49 3/12/10 6:14p albertl |
|---|
| 67 | * SW3548-2832: Updated clients for 3548 and added client define macros to |
|---|
| 68 | * keep track of alternate names. |
|---|
| 69 | * |
|---|
| 70 | * Hydra_Software_Devel/48 3/2/10 1:22p erickson |
|---|
| 71 | * SW7405-3892: clarify comments |
|---|
| 72 | * |
|---|
| 73 | * Hydra_Software_Devel/47 9/14/09 7:43p albertl |
|---|
| 74 | * SW7630-7: Added 7630 support. |
|---|
| 75 | * |
|---|
| 76 | * Hydra_Software_Devel/46 9/4/09 3:45p albertl |
|---|
| 77 | * SW7630-7: Added symbolic link "7630". |
|---|
| 78 | * |
|---|
| 79 | * Hydra_Software_Devel/45 6/16/09 6:21p albertl |
|---|
| 80 | * PR55764, PR55875, PR55993: Refactored MRC to keep chip specific |
|---|
| 81 | * definitions in bmrc_priv.h and for maintainability. Updated support |
|---|
| 82 | * for 7420 b0, 7430, 35130, and 7550. |
|---|
| 83 | * |
|---|
| 84 | * Hydra_Software_Devel/44 6/8/09 7:25p albertl |
|---|
| 85 | * PR55764: Added 7340 support. |
|---|
| 86 | * |
|---|
| 87 | * Hydra_Software_Devel/43 6/5/09 6:30p albertl |
|---|
| 88 | * PR55676: Added 7550 support. |
|---|
| 89 | * |
|---|
| 90 | * Hydra_Software_Devel/42 6/4/09 7:05p albertl |
|---|
| 91 | * PR55641: Allowed MRC to report maximum number of checkers and changed |
|---|
| 92 | * BMRC_Monitor to use that instead of hardcoded maximums. |
|---|
| 93 | * |
|---|
| 94 | * Hydra_Software_Devel/41 3/30/09 5:25p albertl |
|---|
| 95 | * PR52965: Fixed missing 7635 MRC support. |
|---|
| 96 | * |
|---|
| 97 | * Hydra_Software_Devel/40 9/11/08 6:02p albertl |
|---|
| 98 | * PR46761: Updated for 7420. |
|---|
| 99 | * |
|---|
| 100 | * Hydra_Software_Devel/39 7/23/08 1:34p albertl |
|---|
| 101 | * PR33688: Fixed 7601 mrc build errors. |
|---|
| 102 | * |
|---|
| 103 | * Hydra_Software_Devel/38 7/22/08 6:14p albertl |
|---|
| 104 | * PR33688: Added support for 7601. |
|---|
| 105 | * |
|---|
| 106 | * Hydra_Software_Devel/37 3/5/08 10:19p pntruong |
|---|
| 107 | * PR34853: Added ifdef for 3556. |
|---|
| 108 | * |
|---|
| 109 | * Hydra_Software_Devel/36 2/25/08 8:45p albertl |
|---|
| 110 | * PR36876: Fixed missing THD define. |
|---|
| 111 | * |
|---|
| 112 | * Hydra_Software_Devel/35 2/25/08 7:04p albertl |
|---|
| 113 | * PR36876: Rewrote MRC to abstract client names and streamline adding of |
|---|
| 114 | * future chips. 3548 support added. |
|---|
| 115 | * |
|---|
| 116 | * Hydra_Software_Devel/34 12/7/07 11:09a yuxiaz |
|---|
| 117 | * PR35322: Set BMRC_Client_eMaxCount to back to 128 on 7325. |
|---|
| 118 | * |
|---|
| 119 | * Hydra_Software_Devel/33 12/6/07 10:01a erickson |
|---|
| 120 | * PR36876: fix logic for BMRC_MAX_CLIENTS. 7405 was broken. |
|---|
| 121 | * |
|---|
| 122 | * Hydra_Software_Devel/32 11/19/07 3:22p tdo |
|---|
| 123 | * PR36876: Add mrc support for 7335 |
|---|
| 124 | * |
|---|
| 125 | * Hydra_Software_Devel/31 11/14/07 1:50p albertl |
|---|
| 126 | * PR35322: Updated mrc monitor to properly support 128 clients. |
|---|
| 127 | * |
|---|
| 128 | * Hydra_Software_Devel/30 11/8/07 5:02p yuxiaz |
|---|
| 129 | * PR35322: set BMRC_Client_eMaxCount to 64 for now. |
|---|
| 130 | * |
|---|
| 131 | * Hydra_Software_Devel/29 10/30/07 7:25p albertl |
|---|
| 132 | * PR35322: Updated mrc for 7325. |
|---|
| 133 | * |
|---|
| 134 | * Hydra_Software_Devel/28 10/19/07 3:47p jrubio |
|---|
| 135 | * PR35015: adding intial 7325 |
|---|
| 136 | * |
|---|
| 137 | * Hydra_Software_Devel/27 5/1/07 5:07p albertl |
|---|
| 138 | * PR29633: Updated and changed MRC for 7405. |
|---|
| 139 | * |
|---|
| 140 | * Hydra_Software_Devel/26 3/9/07 7:19p albertl |
|---|
| 141 | * PR28182: No longer programs ARC when aligned size is 0. Memc id now |
|---|
| 142 | * reported on violations. |
|---|
| 143 | * |
|---|
| 144 | * Hydra_Software_Devel/25 3/1/07 8:16p albertl |
|---|
| 145 | * PR26116: Fixed support for multiple memory modules for 7400 and 3563. |
|---|
| 146 | * |
|---|
| 147 | * Hydra_Software_Devel/24 1/17/07 7:48p albertl |
|---|
| 148 | * PR19101: Added missing bExclusive field from BMRC_CheckerInfo. |
|---|
| 149 | * |
|---|
| 150 | * Hydra_Software_Devel/22 1/17/07 6:39p albertl |
|---|
| 151 | * PR19101: Updated violation messages to indicate exclusive mode for |
|---|
| 152 | * clarity. |
|---|
| 153 | * |
|---|
| 154 | * Hydra_Software_Devel/21 1/16/07 11:58a erickson |
|---|
| 155 | * PR25037: change AI0 (with a zero) to AIO (with the letter 'o'). this |
|---|
| 156 | * was a typo that makes for frustrating text searches. |
|---|
| 157 | * |
|---|
| 158 | * Hydra_Software_Devel/20 10/31/06 2:29p erickson |
|---|
| 159 | * PR25108: add 7403 support |
|---|
| 160 | * |
|---|
| 161 | * Hydra_Software_Devel/19 10/13/06 8:12p albertl |
|---|
| 162 | * PR19101: NMBX value now returned upon violation. |
|---|
| 163 | * |
|---|
| 164 | * Hydra_Software_Devel/18 10/10/06 6:43p albertl |
|---|
| 165 | * PR23111: Added 7440 support using ARB block. |
|---|
| 166 | * |
|---|
| 167 | * Hydra_Software_Devel/17 8/8/06 6:15p albertl |
|---|
| 168 | * PR23361: Added 3563 support. |
|---|
| 169 | * |
|---|
| 170 | * Hydra_Software_Devel/16 6/22/06 2:18p albertl |
|---|
| 171 | * PR21938: Added 7118 support. |
|---|
| 172 | * |
|---|
| 173 | * Hydra_Software_Devel/15 6/13/06 6:07p syang |
|---|
| 174 | * PR 21689: add support for 7118 |
|---|
| 175 | * |
|---|
| 176 | * Hydra_Software_Devel/14 3/8/06 5:30p albertl |
|---|
| 177 | * PR19101: BMRC_Checker_SetRange now only accepts 8 byte alligned |
|---|
| 178 | * addresses and sizes, and returns error otherwise. |
|---|
| 179 | * |
|---|
| 180 | * Hydra_Software_Devel/13 3/7/06 3:54p syang |
|---|
| 181 | * PR 19670: added 7438 support |
|---|
| 182 | * |
|---|
| 183 | * Hydra_Software_Devel/12 3/3/06 7:25p albertl |
|---|
| 184 | * PR18701: Added functions to disable and enable a checker's callback. |
|---|
| 185 | * |
|---|
| 186 | * Hydra_Software_Devel/11 2/16/06 7:34p albertl |
|---|
| 187 | * PR19101: Updated tables for 7400. |
|---|
| 188 | * |
|---|
| 189 | * Hydra_Software_Devel/10 2/14/06 1:12p jasonh |
|---|
| 190 | * PR 19565: Added support for 7438 |
|---|
| 191 | * |
|---|
| 192 | * Hydra_Software_Devel/9 1/17/06 4:53p hongtaoz |
|---|
| 193 | * PR19082: support 7400; |
|---|
| 194 | * |
|---|
| 195 | * Hydra_Software_Devel/8 11/29/05 2:23p albertl |
|---|
| 196 | * PR18307: Added SATA client to 7038 for Cx series. |
|---|
| 197 | * |
|---|
| 198 | * Hydra_Software_Devel/7 11/7/05 5:05p albertl |
|---|
| 199 | * PR17403: Fixed build errors on 97401. Renamed clients to be |
|---|
| 200 | * consistent with RTS architecture client documentation. |
|---|
| 201 | * |
|---|
| 202 | * Hydra_Software_Devel/6 11/4/05 6:48p albertl |
|---|
| 203 | * PR17403: Added BMRC_Client_eAVD_ILA_0 and BMRC_Client_eAVD_OLA_0 |
|---|
| 204 | * clients to xpt module. Renamed client enums to standard names. |
|---|
| 205 | * |
|---|
| 206 | * Hydra_Software_Devel/5 9/23/05 7:06p hongtaoz |
|---|
| 207 | * PR17131: added BMRC support for 7401; |
|---|
| 208 | * |
|---|
| 209 | * Hydra_Software_Devel/4 8/8/05 9:50p albertl |
|---|
| 210 | * PR13641: Added BMRC error codes. |
|---|
| 211 | * |
|---|
| 212 | * Hydra_Software_Devel/3 8/4/05 6:51p albertl |
|---|
| 213 | * PR13641: Fixed incorrect PR numbers in chagelog. |
|---|
| 214 | * |
|---|
| 215 | * Hydra_Software_Devel/1 8/1/05 10:12p albertl |
|---|
| 216 | * PR13641: Initial Revision. |
|---|
| 217 | * |
|---|
| 218 | ***************************************************************************/ |
|---|
| 219 | |
|---|
| 220 | #ifndef BMRC_H |
|---|
| 221 | #define BMRC_H |
|---|
| 222 | |
|---|
| 223 | #include "bchp.h" /* Chip information */ |
|---|
| 224 | #include "berr_ids.h" /* Error codes */ |
|---|
| 225 | #include "bmem.h" /* Chip memory access */ |
|---|
| 226 | #include "bint.h" /* Returning the interrupt ID of slot */ |
|---|
| 227 | |
|---|
| 228 | #ifdef __cplusplus |
|---|
| 229 | extern "C" { |
|---|
| 230 | #endif |
|---|
| 231 | |
|---|
| 232 | |
|---|
| 233 | /*************************************************************************** |
|---|
| 234 | Summary: |
|---|
| 235 | List of errors unique to MRC |
|---|
| 236 | ****************************************************************************/ |
|---|
| 237 | #define BMRC_CHECKER_ERR_ENABLED_CANT_SET BERR_MAKE_CODE(BERR_MRC_ID, 0) |
|---|
| 238 | #define BMRC_CHECKER_ERR_ALL_USED BERR_MAKE_CODE(BERR_MRC_ID, 1) |
|---|
| 239 | #define BMRC_CHECKER_ERR_NO_CALLBACK_SET BERR_MAKE_CODE(BERR_MRC_ID, 2) |
|---|
| 240 | |
|---|
| 241 | /*************************************************************************** |
|---|
| 242 | Summary: |
|---|
| 243 | Memory checker access types. |
|---|
| 244 | |
|---|
| 245 | Description: |
|---|
| 246 | The different types of memory accesses handled by the memory range |
|---|
| 247 | checkers. |
|---|
| 248 | |
|---|
| 249 | See Also: |
|---|
| 250 | BMRC_Checker_SetAccessCheck |
|---|
| 251 | BMRC_Checker_SetClient |
|---|
| 252 | ****************************************************************************/ |
|---|
| 253 | typedef enum |
|---|
| 254 | { |
|---|
| 255 | BMRC_AccessType_eNone, |
|---|
| 256 | BMRC_AccessType_eRead, |
|---|
| 257 | BMRC_AccessType_eWrite, |
|---|
| 258 | BMRC_AccessType_eBoth |
|---|
| 259 | } BMRC_AccessType; |
|---|
| 260 | |
|---|
| 261 | |
|---|
| 262 | /*************************************************************************** |
|---|
| 263 | Summary: |
|---|
| 264 | List of memory ranger checker clients. |
|---|
| 265 | |
|---|
| 266 | Description: |
|---|
| 267 | This is the enumerated list of clients that the Memory Range Checker |
|---|
| 268 | module checks and grants memory access rights to. |
|---|
| 269 | |
|---|
| 270 | See Also: |
|---|
| 271 | BMRC_Checker_SetClient |
|---|
| 272 | ****************************************************************************/ |
|---|
| 273 | typedef enum |
|---|
| 274 | { |
|---|
| 275 | |
|---|
| 276 | BMRC_Client_eXPT_0, |
|---|
| 277 | BMRC_Client_eXPT_1, |
|---|
| 278 | BMRC_Client_eXPT_2, |
|---|
| 279 | BMRC_Client_eXPT_3, |
|---|
| 280 | BMRC_Client_eXPT_4, |
|---|
| 281 | BMRC_Client_eXPT_5, |
|---|
| 282 | BMRC_Client_eXPT_6, |
|---|
| 283 | |
|---|
| 284 | BMRC_Client_eXPT_WR_0, |
|---|
| 285 | BMRC_Client_eXPT_WR_1, |
|---|
| 286 | BMRC_Client_eXPT_WR_2, |
|---|
| 287 | BMRC_Client_eXPT_RD_0, |
|---|
| 288 | BMRC_Client_eXPT_RD_1, |
|---|
| 289 | BMRC_Client_eXPT_RD_2, |
|---|
| 290 | |
|---|
| 291 | BMRC_Client_eXPT_MEM_DMA, |
|---|
| 292 | |
|---|
| 293 | BMRC_Client_eXPT_WR_RS, |
|---|
| 294 | BMRC_Client_eXPT_WR_XC, |
|---|
| 295 | BMRC_Client_eXPT_WR_CDB, |
|---|
| 296 | BMRC_Client_eXPT_WR_ITB_MSG, |
|---|
| 297 | BMRC_Client_eXPT_RD_RS, |
|---|
| 298 | BMRC_Client_eXPT_RD_XC_RMX_MSG, |
|---|
| 299 | BMRC_Client_eXPT_RD_XC_RAVE, |
|---|
| 300 | BMRC_Client_eXPT_RD_PB, |
|---|
| 301 | |
|---|
| 302 | BMRC_Client_eANR_0_REC_CAP, |
|---|
| 303 | BMRC_Client_eANR_0_REC_VFD, |
|---|
| 304 | |
|---|
| 305 | BMRC_Client_eMBR_CAP_0, |
|---|
| 306 | BMRC_Client_eMBR_CAP_1, |
|---|
| 307 | BMRC_Client_eMBR_VFD_0, |
|---|
| 308 | |
|---|
| 309 | BMRC_Client_eM2MC_0, |
|---|
| 310 | BMRC_Client_eM2MC_0_VC4_0, |
|---|
| 311 | BMRC_Client_eM2MC_0_VC4_1, |
|---|
| 312 | BMRC_Client_eM2MC_1, |
|---|
| 313 | |
|---|
| 314 | BMRC_Client_eMTP_0_SREWR, |
|---|
| 315 | BMRC_Client_eMTP_0_SRERD, |
|---|
| 316 | BMRC_Client_eMTP_0_MREWR, |
|---|
| 317 | BMRC_Client_eMTP_0_MRERD, |
|---|
| 318 | BMRC_Client_eMTP_0_VDMA, |
|---|
| 319 | BMRC_Client_eMTP_0_MTT, |
|---|
| 320 | |
|---|
| 321 | BMRC_Client_eMTP_1_SREWR, |
|---|
| 322 | BMRC_Client_eMTP_1_SRERD, |
|---|
| 323 | BMRC_Client_eMTP_1_MREWR, |
|---|
| 324 | BMRC_Client_eMTP_1_MRERD, |
|---|
| 325 | BMRC_Client_eMTP_1_VDMA, |
|---|
| 326 | BMRC_Client_eMTP_1_MTT, |
|---|
| 327 | |
|---|
| 328 | BMRC_Client_eAVD_0_BLK, |
|---|
| 329 | BMRC_Client_eAVD_0_BLK_1, |
|---|
| 330 | BMRC_Client_eAVD_0_ILA, |
|---|
| 331 | BMRC_Client_eAVD_0_OLA, |
|---|
| 332 | BMRC_Client_eAVD_0_CAB, |
|---|
| 333 | BMRC_Client_eAVD_0_SYM, |
|---|
| 334 | BMRC_Client_eAVD_0_PFR, |
|---|
| 335 | BMRC_Client_eAVD_0_MCP, |
|---|
| 336 | |
|---|
| 337 | BMRC_Client_eAVD_1_BLK, |
|---|
| 338 | BMRC_Client_eAVD_1_BLK_1, |
|---|
| 339 | BMRC_Client_eAVD_1_ILA, |
|---|
| 340 | BMRC_Client_eAVD_1_OLA, |
|---|
| 341 | BMRC_Client_eAVD_1_CAB, |
|---|
| 342 | BMRC_Client_eAVD_1_SYM, |
|---|
| 343 | BMRC_Client_eAVD_1_PFR, |
|---|
| 344 | BMRC_Client_eAVD_1_MCP, |
|---|
| 345 | |
|---|
| 346 | BMRC_Client_eSVD_0_BLK, |
|---|
| 347 | BMRC_Client_eSVD_0_BLK_1, |
|---|
| 348 | BMRC_Client_eSVD_0_ILA, |
|---|
| 349 | BMRC_Client_eSVD_0_OLA, |
|---|
| 350 | BMRC_Client_eSVD_0_CAB, |
|---|
| 351 | BMRC_Client_eSVD_0_ILSYM, |
|---|
| 352 | BMRC_Client_eSVD_0_BLA, |
|---|
| 353 | BMRC_Client_eSVD_0_BLSYM, |
|---|
| 354 | BMRC_Client_eSVD_0_MVSCL, |
|---|
| 355 | BMRC_Client_eSVD_0_SPIXSTR, |
|---|
| 356 | BMRC_Client_eSVD_0_PFR, |
|---|
| 357 | BMRC_Client_eSVD_0_MCP, |
|---|
| 358 | |
|---|
| 359 | BMRC_Client_eBLKAVG_0, |
|---|
| 360 | BMRC_Client_eBLKAVG_1, |
|---|
| 361 | |
|---|
| 362 | BMRC_Client_eBACH_PCM, |
|---|
| 363 | BMRC_Client_eBACH_ADP_0_RD, |
|---|
| 364 | BMRC_Client_eBACH_ADP_1_RD, |
|---|
| 365 | BMRC_Client_eBACH_ADP_SPDIF_RD, |
|---|
| 366 | BMRC_Client_eBACH_ADP_0_WR, |
|---|
| 367 | BMRC_Client_eBACH_ADP_1_WR, |
|---|
| 368 | BMRC_Client_eBACH_ADP_SPDIF_WR, |
|---|
| 369 | |
|---|
| 370 | BMRC_Client_eAUD_ZSP, |
|---|
| 371 | BMRC_Client_eAUD_AIO, |
|---|
| 372 | |
|---|
| 373 | BMRC_Client_eRAPTOR_0, |
|---|
| 374 | BMRC_Client_eRAPTOR_1, |
|---|
| 375 | |
|---|
| 376 | BMRC_Client_eVDEC_0_TTX, |
|---|
| 377 | BMRC_Client_eVDEC_0_3D, |
|---|
| 378 | BMRC_Client_eVDEC_0_656, |
|---|
| 379 | BMRC_Client_eVDEC_1_3D, |
|---|
| 380 | |
|---|
| 381 | BMRC_Client_eVDEC_0_WR_0, |
|---|
| 382 | BMRC_Client_eVDEC_0_RD_0, |
|---|
| 383 | BMRC_Client_eVDEC_0_RD_1, |
|---|
| 384 | |
|---|
| 385 | BMRC_Client_eAVFE_VDEC_0_TTX, |
|---|
| 386 | BMRC_Client_eAVFE_VDEC_0_MD_RD, |
|---|
| 387 | BMRC_Client_eAVFE_VDEC_0_MD_WR, |
|---|
| 388 | BMRC_Client_eAVFE_VDEC_0_VD_RD, |
|---|
| 389 | BMRC_Client_eAVFE_VDEC_0_VD_WR, |
|---|
| 390 | BMRC_Client_eAVFE_VIDBLK_CAP0, |
|---|
| 391 | BMRC_Client_eAVFE_VIDBLK_CAP1, |
|---|
| 392 | |
|---|
| 393 | BMRC_Client_eVEC_0_VBI_ENC, |
|---|
| 394 | BMRC_Client_eVEC_1_VBI_ENC, |
|---|
| 395 | BMRC_Client_eVEC_2_VBI_ENC, |
|---|
| 396 | |
|---|
| 397 | BMRC_Client_eVEC_0, |
|---|
| 398 | BMRC_Client_eVEC_1, |
|---|
| 399 | |
|---|
| 400 | BMRC_Client_eI656_ANC_0, |
|---|
| 401 | BMRC_Client_eI656_ANC_1, |
|---|
| 402 | |
|---|
| 403 | BMRC_Client_eAEGIS, |
|---|
| 404 | BMRC_Client_eAEGIS_M2M, |
|---|
| 405 | |
|---|
| 406 | BMRC_Client_eBVNB_GFD_0, |
|---|
| 407 | BMRC_Client_eBVNB_GFD_1, |
|---|
| 408 | BMRC_Client_eBVNB_GFD_2, |
|---|
| 409 | BMRC_Client_eBVNB_GFD_3, |
|---|
| 410 | BMRC_Client_eBVNB_GFD_4, |
|---|
| 411 | BMRC_Client_eBVNB_GFD_5, |
|---|
| 412 | BMRC_Client_eBVNB_GFD_CCC, |
|---|
| 413 | BMRC_Client_eBVNB_CAP_0, |
|---|
| 414 | BMRC_Client_eBVNB_CAP_1, |
|---|
| 415 | BMRC_Client_eBVNB_CAP_2, |
|---|
| 416 | BMRC_Client_eBVNB_CAP_3, |
|---|
| 417 | BMRC_Client_eBVNB_CAP_4, |
|---|
| 418 | BMRC_Client_eBVNB_CAP_5, |
|---|
| 419 | |
|---|
| 420 | BMRC_Client_eBVNF_RDC_0, |
|---|
| 421 | BMRC_Client_eBVNF_VFD_0, |
|---|
| 422 | BMRC_Client_eBVNF_VFD_1, |
|---|
| 423 | BMRC_Client_eBVNF_VFD_2, |
|---|
| 424 | BMRC_Client_eBVNF_VFD_3, |
|---|
| 425 | BMRC_Client_eBVNF_VFD_4, |
|---|
| 426 | BMRC_Client_eBVNF_VFD_5, |
|---|
| 427 | BMRC_Client_eBVNF_MFD_0, |
|---|
| 428 | BMRC_Client_eBVNF_MFD_0_1, |
|---|
| 429 | BMRC_Client_eBVNF_MFD_1, |
|---|
| 430 | BMRC_Client_eBVNF_MFD_1_1, |
|---|
| 431 | BMRC_Client_eBVNF_MFD_2, |
|---|
| 432 | BMRC_Client_eBVNF_MFD_2_1, |
|---|
| 433 | BMRC_Client_eBVNF_MFD_3, |
|---|
| 434 | BMRC_Client_eBVNF_MFD_3_1, |
|---|
| 435 | |
|---|
| 436 | BMRC_Client_eBVNM_FGT_0, |
|---|
| 437 | BMRC_Client_eBVN_FGT_0, |
|---|
| 438 | |
|---|
| 439 | BMRC_Client_eBVN_FGT_0_BLKAVG_RD, |
|---|
| 440 | BMRC_Client_eBVN_FGT_0_RDMA, |
|---|
| 441 | BMRC_Client_eBVN_FGT_0_WR, |
|---|
| 442 | |
|---|
| 443 | BMRC_Client_eBVN_MCVP_0, |
|---|
| 444 | BMRC_Client_eBVN_MCVP_1, |
|---|
| 445 | BMRC_Client_eBVN_MCVP_2, |
|---|
| 446 | |
|---|
| 447 | BMRC_Client_eBVN_DNR_RW, |
|---|
| 448 | BMRC_Client_eBVN_JFD_0, |
|---|
| 449 | BMRC_Client_eBVN_MCVP_0_RD, |
|---|
| 450 | BMRC_Client_eBVN_MCVP_0_RW_0, |
|---|
| 451 | BMRC_Client_eBVN_MCVP_0_RW_1, |
|---|
| 452 | |
|---|
| 453 | BMRC_Client_eBVN_PDP_RD_0, |
|---|
| 454 | BMRC_Client_eBVN_PDP_WR_0, |
|---|
| 455 | BMRC_Client_eBVN_PDP_RD_1, |
|---|
| 456 | BMRC_Client_eBVN_PDP_WR_1, |
|---|
| 457 | BMRC_Client_eBVN_PDP_WR_2, |
|---|
| 458 | BMRC_Client_eBVN_PDP_WR_3, |
|---|
| 459 | |
|---|
| 460 | BMRC_Client_eBVN_FRC_0_CE, |
|---|
| 461 | BMRC_Client_eBVN_FRC_0_TMRV, |
|---|
| 462 | BMRC_Client_eBVN_FRC_0_PROF, |
|---|
| 463 | BMRC_Client_eBVN_FRC_0_WS2, |
|---|
| 464 | BMRC_Client_eBVN_FRC_0_WS1B, |
|---|
| 465 | BMRC_Client_eBVN_FRC_0_WS1, |
|---|
| 466 | BMRC_Client_eBVN_FRC_0_WS0, |
|---|
| 467 | BMRC_Client_eBVN_FRC_0_RSM, |
|---|
| 468 | BMRC_Client_eBVN_FRC_0_RS2, |
|---|
| 469 | BMRC_Client_eBVN_FRC_0_RS1, |
|---|
| 470 | BMRC_Client_eBVN_FRC_0_RS0P, |
|---|
| 471 | BMRC_Client_eBVN_FRC_0_RS0N, |
|---|
| 472 | BMRC_Client_eBVN_FRC_0_SRD, |
|---|
| 473 | BMRC_Client_eBVN_FRC_0_RS1B, |
|---|
| 474 | BMRC_Client_eBVN_FRC_0_WSM, |
|---|
| 475 | BMRC_Client_eBVN_FRC_0_WSPL, |
|---|
| 476 | BMRC_Client_eBVN_FRC_0_RSPL, |
|---|
| 477 | BMRC_Client_eBVN_FRC_0_WSEG, |
|---|
| 478 | BMRC_Client_eBVN_FRC_0_RSEG, |
|---|
| 479 | |
|---|
| 480 | BMRC_Client_eV3D_0, |
|---|
| 481 | BMRC_Client_eV3D_1, |
|---|
| 482 | |
|---|
| 483 | BMRC_Client_eB3DC, |
|---|
| 484 | |
|---|
| 485 | BMRC_Client_eHIF_MISB, |
|---|
| 486 | BMRC_Client_eHIF_PCI_DMA, |
|---|
| 487 | BMRC_Client_eHIF_PCIE_DMA, |
|---|
| 488 | BMRC_Client_eHIF_EBI_DMA, |
|---|
| 489 | BMRC_Client_eHIF_M2M_DMA_0, |
|---|
| 490 | BMRC_Client_eHIF_M2M_DMA_1, |
|---|
| 491 | |
|---|
| 492 | BMRC_Client_eHIF_CPU_CACHE_0, |
|---|
| 493 | BMRC_Client_eHIF_CPU_CACHE_1, |
|---|
| 494 | |
|---|
| 495 | BMRC_Client_eMIPS_0_RD, |
|---|
| 496 | BMRC_Client_eMIPS_0_WR, |
|---|
| 497 | BMRC_Client_eMIPS_1_RD, |
|---|
| 498 | BMRC_Client_eMIPS_1_WR, |
|---|
| 499 | |
|---|
| 500 | BMRC_Client_eMOCA_DATA_RD, |
|---|
| 501 | BMRC_Client_eMOCA_DATA_WR, |
|---|
| 502 | BMRC_Client_eMOCA_MIPS, |
|---|
| 503 | |
|---|
| 504 | BMRC_Client_eFLASH_DMA, |
|---|
| 505 | |
|---|
| 506 | BMRC_Client_ePC_VBI_TTX_REC, |
|---|
| 507 | BMRC_Client_ePC_VBI_656_REC, |
|---|
| 508 | BMRC_Client_ePC_VBI_FD, |
|---|
| 509 | |
|---|
| 510 | BMRC_Client_eENET_0, |
|---|
| 511 | BMRC_Client_eENET_1, |
|---|
| 512 | BMRC_Client_eGENET_RD, |
|---|
| 513 | BMRC_Client_eGENET_WR, |
|---|
| 514 | BMRC_Client_ePIX_3D, |
|---|
| 515 | BMRC_Client_eGPORT, |
|---|
| 516 | |
|---|
| 517 | BMRC_Client_eGENET0_RD, |
|---|
| 518 | BMRC_Client_eGENET0_WR, |
|---|
| 519 | BMRC_Client_eGENET1_RD, |
|---|
| 520 | BMRC_Client_eGENET1_WR, |
|---|
| 521 | |
|---|
| 522 | BMRC_Client_eUSB20_0, |
|---|
| 523 | BMRC_Client_eUSB20_1, |
|---|
| 524 | BMRC_Client_eUSB11_0, |
|---|
| 525 | BMRC_Client_eUSB11_1, |
|---|
| 526 | |
|---|
| 527 | BMRC_Client_eUSB_0_0, |
|---|
| 528 | BMRC_Client_eUSB_0_1, |
|---|
| 529 | BMRC_Client_eUSB_1_0, |
|---|
| 530 | BMRC_Client_eUSB_1_1, |
|---|
| 531 | |
|---|
| 532 | BMRC_Client_eIEEE_1394, |
|---|
| 533 | |
|---|
| 534 | BMRC_Client_eMAD_0_PIX, |
|---|
| 535 | |
|---|
| 536 | BMRC_Client_eMAD_0_PIX_CAP, |
|---|
| 537 | BMRC_Client_eMAD_0_PIX_FD, |
|---|
| 538 | |
|---|
| 539 | BMRC_Client_eMAD_0_FD_0, |
|---|
| 540 | BMRC_Client_eMAD_0_FD_1, |
|---|
| 541 | BMRC_Client_eMAD_0_FD_2, |
|---|
| 542 | BMRC_Client_eMAD_0_FD_3, |
|---|
| 543 | BMRC_Client_eMAD_0_CAP, |
|---|
| 544 | BMRC_Client_eMAD_0_QM, |
|---|
| 545 | |
|---|
| 546 | BMRC_Client_eMAD_0_A_WR, |
|---|
| 547 | BMRC_Client_eMAD_0_B_RD, |
|---|
| 548 | BMRC_Client_eMAD_0_D_RD, |
|---|
| 549 | BMRC_Client_eMAD_0_G_RD, |
|---|
| 550 | BMRC_Client_eMAD_0_J_RD, |
|---|
| 551 | |
|---|
| 552 | BMRC_Client_eMAD_1_PIX_CAP, |
|---|
| 553 | BMRC_Client_eMAD_1_PIX_FD, |
|---|
| 554 | |
|---|
| 555 | BMRC_Client_eMAD_1_FD_0, |
|---|
| 556 | BMRC_Client_eMAD_1_FD_1, |
|---|
| 557 | BMRC_Client_eMAD_1_FD_2, |
|---|
| 558 | BMRC_Client_eMAD_1_FD_3, |
|---|
| 559 | BMRC_Client_eMAD_1_CAP, |
|---|
| 560 | BMRC_Client_eMAD_1_QM, |
|---|
| 561 | |
|---|
| 562 | BMRC_Client_eMAD_2_PIX_CAP, |
|---|
| 563 | BMRC_Client_eMAD_2_PIX_FD, |
|---|
| 564 | BMRC_Client_eMAD_2_QM, |
|---|
| 565 | |
|---|
| 566 | BMRC_Client_eMAD_3_PIX_CAP, |
|---|
| 567 | BMRC_Client_eMAD_3_PIX_FD, |
|---|
| 568 | BMRC_Client_eMAD_3_QM, |
|---|
| 569 | |
|---|
| 570 | BMRC_Client_eADC_CAP, |
|---|
| 571 | |
|---|
| 572 | BMRC_Client_eSUN_MCIF_RD, |
|---|
| 573 | BMRC_Client_eSUN_MCIF_WR, |
|---|
| 574 | BMRC_Client_eIDE, |
|---|
| 575 | BMRC_Client_eSATA, |
|---|
| 576 | |
|---|
| 577 | BMRC_Client_eREFRESH_0, |
|---|
| 578 | BMRC_Client_eREFRESH_1, |
|---|
| 579 | BMRC_Client_eMEMC64_SOFT_0, |
|---|
| 580 | BMRC_Client_eMEMC64_REF_0, |
|---|
| 581 | BMRC_Client_eMEMC64_REF_1, |
|---|
| 582 | BMRC_Client_eMEMC64_DIS, |
|---|
| 583 | BMRC_Client_eMEMC32_SOFT_0, |
|---|
| 584 | BMRC_Client_eMEMC32_REF_0, |
|---|
| 585 | BMRC_Client_eMEMC16_0_SOFT_0, |
|---|
| 586 | BMRC_Client_eMEMC16_0_REF_0, |
|---|
| 587 | BMRC_Client_eMEMC16_1_SOFT_0, |
|---|
| 588 | BMRC_Client_eMEMC16_1_REF_0, |
|---|
| 589 | |
|---|
| 590 | BMRC_Client_eDRAM_INIT, |
|---|
| 591 | |
|---|
| 592 | BMRC_Client_eBNM_MIPS, |
|---|
| 593 | BMRC_Client_eBNM_UBUS, |
|---|
| 594 | BMRC_Client_eBNM_DMA, |
|---|
| 595 | |
|---|
| 596 | BMRC_Client_eSDIO, |
|---|
| 597 | BMRC_Client_eSID, |
|---|
| 598 | BMRC_Client_eUART_DMA, |
|---|
| 599 | BMRC_Client_eSDIO_EMMC, |
|---|
| 600 | BMRC_Client_eSDIO_CARD, |
|---|
| 601 | |
|---|
| 602 | BMRC_Client_eNRDF, |
|---|
| 603 | |
|---|
| 604 | BMRC_Client_eOFE_ARM, |
|---|
| 605 | BMRC_Client_eOFE_PERF, |
|---|
| 606 | BMRC_Client_eOFE_HOST, |
|---|
| 607 | BMRC_Client_eOFE_DEC, |
|---|
| 608 | |
|---|
| 609 | BMRC_Client_eMUD_RD, |
|---|
| 610 | BMRC_Client_eMUD_WR, |
|---|
| 611 | BMRC_Client_eTRAP, |
|---|
| 612 | BMRC_Client_eSHARF, |
|---|
| 613 | |
|---|
| 614 | BMRC_Client_eBCC, |
|---|
| 615 | BMRC_Client_eTRACE, |
|---|
| 616 | |
|---|
| 617 | BMRC_Client_eTHD, |
|---|
| 618 | |
|---|
| 619 | BMRC_Client_eTPCAP, |
|---|
| 620 | |
|---|
| 621 | BMRC_Client_ePCU, |
|---|
| 622 | BMRC_Client_ePCU_DMAS, |
|---|
| 623 | BMRC_Client_eRAAGA_0_0, |
|---|
| 624 | BMRC_Client_eRAAGA_0_1, |
|---|
| 625 | BMRC_Client_eRAAGA_1_0, |
|---|
| 626 | BMRC_Client_eRAAGA_1_1, |
|---|
| 627 | BMRC_Client_eTDI_RD, |
|---|
| 628 | BMRC_Client_eTDI_WR, |
|---|
| 629 | |
|---|
| 630 | BMRC_Client_eVICE_0_VIP_0_0, |
|---|
| 631 | BMRC_Client_eVICE_0_VIP_0_1, |
|---|
| 632 | BMRC_Client_eVICE_0_VIP_0_2, |
|---|
| 633 | BMRC_Client_eVICE_0_VIP_1_0, |
|---|
| 634 | BMRC_Client_eVICE_0_VIP_1_1, |
|---|
| 635 | BMRC_Client_eVICE_0_VIP_1_2, |
|---|
| 636 | BMRC_Client_eVICE_0_CME_0, |
|---|
| 637 | BMRC_Client_eVICE_0_CME_1, |
|---|
| 638 | BMRC_Client_eVICE_0_FME_0, |
|---|
| 639 | BMRC_Client_eVICE_0_FME_1, |
|---|
| 640 | BMRC_Client_eVICE_0_FME_2, |
|---|
| 641 | BMRC_Client_eVICE_0_SG, |
|---|
| 642 | BMRC_Client_eVICE_0_BLK, |
|---|
| 643 | BMRC_Client_eVICE_0_CAB_0, |
|---|
| 644 | BMRC_Client_eVICE_0_CAB_1, |
|---|
| 645 | BMRC_Client_eVICE_0_ARCSS_0, |
|---|
| 646 | BMRC_Client_eVICE_0_PFR_REQ, |
|---|
| 647 | BMRC_Client_eVICE_0_PFR_OPT, |
|---|
| 648 | |
|---|
| 649 | BMRC_Client_eVICE_1_SG, |
|---|
| 650 | BMRC_Client_eVICE_1_CAB_0, |
|---|
| 651 | BMRC_Client_eVICE_1_CAB_1, |
|---|
| 652 | |
|---|
| 653 | BMRC_Client_eZQCS_0, |
|---|
| 654 | BMRC_Client_eZQCS_1, |
|---|
| 655 | |
|---|
| 656 | /* NOTE: If you modify this list, you will likely need to modify BMRC_P_Monitor_astHwClients[] in bmrc_monitor_clients.c and |
|---|
| 657 | BMRC_P_astClientTbl[] in bmrc_clienttable_priv.c. */ |
|---|
| 658 | |
|---|
| 659 | BMRC_Client_eMaxCount, |
|---|
| 660 | BMRC_Client_eInvalid = BMRC_Client_eMaxCount /* must be last */ |
|---|
| 661 | |
|---|
| 662 | } BMRC_Client; |
|---|
| 663 | |
|---|
| 664 | /* Alternate client names used by some chips for the same client */ |
|---|
| 665 | #define BMRC_Client_eCPU_BRIDGE BMRC_Client_eHIF_MISB |
|---|
| 666 | #define BMRC_Client_eHIF_CPU BMRC_Client_eHIF_MISB |
|---|
| 667 | #define BMRC_Client_eMEM_DMA BMRC_Client_eHIF_M2M_DMA_0 |
|---|
| 668 | #define BMRC_Client_eHIF_EDU BMRC_Client_eHIF_EBI_DMA |
|---|
| 669 | #define BMRC_Client_eMAD_0_QUANT BMRC_Client_eMAD_0_QM |
|---|
| 670 | |
|---|
| 671 | |
|---|
| 672 | /*************************************************************************** |
|---|
| 673 | Summary: |
|---|
| 674 | The handle for the MRC module. |
|---|
| 675 | |
|---|
| 676 | Description: |
|---|
| 677 | This is the main module handle required in order to create checkers. |
|---|
| 678 | |
|---|
| 679 | See Also: |
|---|
| 680 | BMRC_Open |
|---|
| 681 | ****************************************************************************/ |
|---|
| 682 | typedef struct BMRC_P_Context *BMRC_Handle; |
|---|
| 683 | |
|---|
| 684 | |
|---|
| 685 | /*************************************************************************** |
|---|
| 686 | Summary: |
|---|
| 687 | The handle for memory access checkers. |
|---|
| 688 | |
|---|
| 689 | Description: |
|---|
| 690 | Handle for memory access checkers returned by BMRC_Checker_Create. |
|---|
| 691 | |
|---|
| 692 | See Also: |
|---|
| 693 | BMRC_Checker_Create |
|---|
| 694 | ****************************************************************************/ |
|---|
| 695 | typedef struct BMRC_P_CheckerContext *BMRC_Checker_Handle; |
|---|
| 696 | |
|---|
| 697 | |
|---|
| 698 | /*************************************************************************** |
|---|
| 699 | Summary: |
|---|
| 700 | This structure contains the Memory Range Checker module settings. |
|---|
| 701 | |
|---|
| 702 | Description: |
|---|
| 703 | Configures the Memory Range Checker module when it is opened. |
|---|
| 704 | |
|---|
| 705 | See Also: |
|---|
| 706 | BMRC_Open |
|---|
| 707 | ***************************************************************************/ |
|---|
| 708 | typedef struct BMRC_Settings |
|---|
| 709 | { |
|---|
| 710 | uint16_t usMemcId; /* Selects which memc to use */ |
|---|
| 711 | } BMRC_Settings; |
|---|
| 712 | |
|---|
| 713 | |
|---|
| 714 | /*************************************************************************** |
|---|
| 715 | Summary: |
|---|
| 716 | This structure contains a client's information. |
|---|
| 717 | |
|---|
| 718 | Description: |
|---|
| 719 | This information is returned by BMRC_Checker_GetClientInfo. |
|---|
| 720 | The translation from eClient to usClientId is done in BMRC_P_astClientTbl[] which is in bmrc_clienttable_priv.c. |
|---|
| 721 | ***************************************************************************/ |
|---|
| 722 | typedef struct BMRC_ClientInfo |
|---|
| 723 | { |
|---|
| 724 | const char *pchClientName; |
|---|
| 725 | BMRC_Client eClient; /* SW client enum */ |
|---|
| 726 | uint16_t usClientId; /* HW client bit position (values 0..127 spanning 4 32-bit registers) */ |
|---|
| 727 | } BMRC_ClientInfo; |
|---|
| 728 | |
|---|
| 729 | |
|---|
| 730 | /*************************************************************************** |
|---|
| 731 | Summary: |
|---|
| 732 | This structure contains the checker and access violation information |
|---|
| 733 | returned to a registered callback. |
|---|
| 734 | |
|---|
| 735 | Description: |
|---|
| 736 | BMRC_CheckerInfo provides the checker id, memory range, address that |
|---|
| 737 | violated the checker, request type, nmbx id, and the client responsible |
|---|
| 738 | for the violation. |
|---|
| 739 | ***************************************************************************/ |
|---|
| 740 | typedef struct BMRC_CheckerInfo |
|---|
| 741 | { |
|---|
| 742 | uint16_t usMemcId; /* memory controller id */ |
|---|
| 743 | uint16_t usCheckerId; /* checker id */ |
|---|
| 744 | uint32_t ulStart; /* memory range start */ |
|---|
| 745 | uint32_t ulSize; /* memory range size */ |
|---|
| 746 | uint32_t ulAddress; /* start address that violated the range checker */ |
|---|
| 747 | uint32_t ulAddressEnd; /* end address that violated the range checker */ |
|---|
| 748 | #if (BCHP_CHIP != 7440) && (BCHP_CHIP != 7601) && (BCHP_CHIP != 7635) && (BCHP_CHIP != 7630) && (BCHP_CHIP != 7640) |
|---|
| 749 | uint32_t ulReqType; /* req type */ |
|---|
| 750 | uint32_t ulNmbxId; /* nmbx id */ |
|---|
| 751 | uint32_t ulNmbx; /* nmbx */ |
|---|
| 752 | #else |
|---|
| 753 | uint32_t ulLength; |
|---|
| 754 | uint32_t ulMode; |
|---|
| 755 | uint32_t ulWrite; |
|---|
| 756 | #endif |
|---|
| 757 | uint16_t usClientId; /* client that violated the range checker */ |
|---|
| 758 | const char *pchClientName; /* client name */ |
|---|
| 759 | bool bExclusive; /* exclusive mode */ |
|---|
| 760 | } BMRC_CheckerInfo; |
|---|
| 761 | |
|---|
| 762 | |
|---|
| 763 | /*************************************************************************** |
|---|
| 764 | Summary: |
|---|
| 765 | Prototype of a memory range checker callback function. |
|---|
| 766 | |
|---|
| 767 | Description: |
|---|
| 768 | Upper level applications register callbacks to a checker that will be |
|---|
| 769 | executed when a checker violation occurs. |
|---|
| 770 | |
|---|
| 771 | See Also: |
|---|
| 772 | BMRC_Checker_SetCallback |
|---|
| 773 | **************************************************************************/ |
|---|
| 774 | typedef void (*BMRC_CallbackFunc_isr)( void *pvData1, int iData2, BMRC_CheckerInfo *pInfo); |
|---|
| 775 | |
|---|
| 776 | |
|---|
| 777 | /*************************************************************************** |
|---|
| 778 | Summary: |
|---|
| 779 | Gets the default settings. |
|---|
| 780 | |
|---|
| 781 | Description: |
|---|
| 782 | Fills the default settings structure with default values. |
|---|
| 783 | |
|---|
| 784 | Returns: |
|---|
| 785 | BERR_SUCCESS - Handle was successfully closed. |
|---|
| 786 | BERR_INVALID_PARAMETER - Handle was invalid. |
|---|
| 787 | |
|---|
| 788 | See Also: |
|---|
| 789 | BMRC_Open |
|---|
| 790 | **************************************************************************/ |
|---|
| 791 | BERR_Code BMRC_GetDefaultSettings |
|---|
| 792 | ( BMRC_Settings *pDefSettings /* [out] Default settings structure to fill */ |
|---|
| 793 | ); |
|---|
| 794 | |
|---|
| 795 | |
|---|
| 796 | /*************************************************************************** |
|---|
| 797 | Summary: |
|---|
| 798 | Opens the MRC module. |
|---|
| 799 | |
|---|
| 800 | Description: |
|---|
| 801 | Opens the Memory Range Checker module and creates its context. |
|---|
| 802 | |
|---|
| 803 | Returns: |
|---|
| 804 | BERR_SUCCESS - Handle was successfully created. |
|---|
| 805 | BERR_OUT_OF_SYSTEM_MEMORY - Unable to allocate memory for the handle. |
|---|
| 806 | |
|---|
| 807 | See Also: |
|---|
| 808 | BMRC_Close |
|---|
| 809 | **************************************************************************/ |
|---|
| 810 | BERR_Code BMRC_Open |
|---|
| 811 | ( BMRC_Handle *phMrc, /* [out] MRC handle to be returned */ |
|---|
| 812 | BREG_Handle hRegister, /* [in] Register access handle */ |
|---|
| 813 | BINT_Handle hInterrupt, /* [in] Interrupt handle */ |
|---|
| 814 | const BMRC_Settings *pDefSettings /* [in] Default settings */ |
|---|
| 815 | ); |
|---|
| 816 | |
|---|
| 817 | |
|---|
| 818 | /*************************************************************************** |
|---|
| 819 | Summary: |
|---|
| 820 | Closes the MRC module. |
|---|
| 821 | |
|---|
| 822 | Description: |
|---|
| 823 | Closes the Memory Range Checker module and its context. |
|---|
| 824 | |
|---|
| 825 | Returns: |
|---|
| 826 | BERR_SUCCESS - Handle was successfully closed. |
|---|
| 827 | BERR_INVALID_PARAMETER - Handle was invalid. |
|---|
| 828 | |
|---|
| 829 | See Also: |
|---|
| 830 | BMRC_Open |
|---|
| 831 | **************************************************************************/ |
|---|
| 832 | BERR_Code BMRC_Close |
|---|
| 833 | ( BMRC_Handle hMrc /* [in] MRC handle to close */ |
|---|
| 834 | ); |
|---|
| 835 | |
|---|
| 836 | |
|---|
| 837 | /*************************************************************************** |
|---|
| 838 | Summary: |
|---|
| 839 | Return settings passed into BMRC_Open |
|---|
| 840 | **************************************************************************/ |
|---|
| 841 | void BMRC_GetSettings |
|---|
| 842 | ( BMRC_Handle hMrc, /* [in] MRC handle to close */ |
|---|
| 843 | BMRC_Settings *pSettings /* [out] */ |
|---|
| 844 | ); |
|---|
| 845 | |
|---|
| 846 | /*************************************************************************** |
|---|
| 847 | Summary: |
|---|
| 848 | Gets maximum number of MRC checkers. |
|---|
| 849 | |
|---|
| 850 | Description: |
|---|
| 851 | Gets maximum number of checkers available to this MRC isntance, depending |
|---|
| 852 | on its associated memory controller. |
|---|
| 853 | |
|---|
| 854 | Returns: |
|---|
| 855 | BERR_SUCCESS - Handle was successfully closed. |
|---|
| 856 | BERR_INVALID_PARAMETER - Handle was invalid. |
|---|
| 857 | |
|---|
| 858 | See Also: |
|---|
| 859 | **************************************************************************/ |
|---|
| 860 | BERR_Code BMRC_GetMaxCheckers |
|---|
| 861 | ( BMRC_Handle hMrc, /* [in] MRC handle */ |
|---|
| 862 | uint32_t *pulMaxCheckers /* [out] Maximum number of checkers for this MRC */ |
|---|
| 863 | ); |
|---|
| 864 | |
|---|
| 865 | |
|---|
| 866 | /*************************************************************************** |
|---|
| 867 | Summary: |
|---|
| 868 | Creates a memory range access Checker. |
|---|
| 869 | |
|---|
| 870 | Description: |
|---|
| 871 | Creates a checker that can be used to check memory access to a certain |
|---|
| 872 | range in memory, with the ability to check for specific types of |
|---|
| 873 | violations by specific clients based on how the checker is configured. |
|---|
| 874 | |
|---|
| 875 | Returns: |
|---|
| 876 | BERR_SUCCESS - Checker handle was successfully created. |
|---|
| 877 | BERR_INVALID_PARAMETER - Mrc handle was invalid. |
|---|
| 878 | BMRC_CHECKER_ERR_ALL_USED - Maximum number of checkers reached and no |
|---|
| 879 | additional checkers can be created. |
|---|
| 880 | |
|---|
| 881 | |
|---|
| 882 | See Also: |
|---|
| 883 | BMRC_Checker_Destroy |
|---|
| 884 | **************************************************************************/ |
|---|
| 885 | BERR_Code BMRC_Checker_Create |
|---|
| 886 | ( BMRC_Handle hMrc, /* [in] MRC Module Handle */ |
|---|
| 887 | BMRC_Checker_Handle *phChecker /* [out] Checker handle to be returned */ |
|---|
| 888 | ); |
|---|
| 889 | |
|---|
| 890 | |
|---|
| 891 | /*************************************************************************** |
|---|
| 892 | Summary: |
|---|
| 893 | Destroys a memory range access Checker. |
|---|
| 894 | |
|---|
| 895 | Description: |
|---|
| 896 | Disables and destroys an existing checker and cleans up its resources. |
|---|
| 897 | |
|---|
| 898 | Returns: |
|---|
| 899 | BERR_SUCCESS - Checker handle was successfully destroyed. |
|---|
| 900 | BERR_INVALID_PARAMETER - Checker handle was invalid. |
|---|
| 901 | |
|---|
| 902 | See Also: |
|---|
| 903 | BMRC_Checker_Create |
|---|
| 904 | **************************************************************************/ |
|---|
| 905 | BERR_Code BMRC_Checker_Destroy |
|---|
| 906 | ( BMRC_Checker_Handle hChecker /* [in] Checker handle to be destroyed */ |
|---|
| 907 | ); |
|---|
| 908 | |
|---|
| 909 | |
|---|
| 910 | /*************************************************************************** |
|---|
| 911 | Summary: |
|---|
| 912 | Sets a checker's memory access range. |
|---|
| 913 | |
|---|
| 914 | Description: |
|---|
| 915 | Configures the memory range that a checker is to check, based on a |
|---|
| 916 | given memory address and range size. The function cannot be called |
|---|
| 917 | when a checker is already enabled. |
|---|
| 918 | |
|---|
| 919 | Returns: |
|---|
| 920 | BERR_SUCCESS - Checker range was successfully set. |
|---|
| 921 | BERR_INVALID_PARAMETER - Checker handle was invalid, ulStart address |
|---|
| 922 | or ulSize in bytes aren't 8 byte aligned. |
|---|
| 923 | BMRC_CHECKER_ERR_ENABLED_CANT_SET - Checker already enabled, cannot |
|---|
| 924 | be set. |
|---|
| 925 | |
|---|
| 926 | See Also: |
|---|
| 927 | **************************************************************************/ |
|---|
| 928 | BERR_Code BMRC_Checker_SetRange |
|---|
| 929 | ( BMRC_Checker_Handle hChecker, /* [in] Checker handle */ |
|---|
| 930 | uint32_t ulStart, /* [in] Memory range start address */ |
|---|
| 931 | uint32_t ulSize /* [in] Memory range size */ |
|---|
| 932 | ); |
|---|
| 933 | |
|---|
| 934 | |
|---|
| 935 | /*************************************************************************** |
|---|
| 936 | Summary: |
|---|
| 937 | Configures what types of accesses a checker should check for. |
|---|
| 938 | |
|---|
| 939 | Description: |
|---|
| 940 | This function sets up what sorts of accesses a checker checks. |
|---|
| 941 | |
|---|
| 942 | Setting eAccessType to BMRC_AccessType_eRead causes violations to occur |
|---|
| 943 | only when clients without read rights attempt to read from the checker's |
|---|
| 944 | range. |
|---|
| 945 | |
|---|
| 946 | Setting eAccessType to BMRC_AccessType_eWrite causes violations to occur |
|---|
| 947 | only when clients without write rights attempt to write from the |
|---|
| 948 | checker's range. |
|---|
| 949 | |
|---|
| 950 | Setting eAccessType to BMRC_AccessType_eBoth causes violations when |
|---|
| 951 | either unauthorized reads or writes occur. The function cannot be |
|---|
| 952 | called when a checker is already enabled. |
|---|
| 953 | |
|---|
| 954 | Returns: |
|---|
| 955 | BERR_SUCCESS - The access check type was successfully set. |
|---|
| 956 | BERR_INVALID_PARAMETER - Checker handle was invalid, or |
|---|
| 957 | BMRC_Access_eNone was used as the |
|---|
| 958 | access type to check. |
|---|
| 959 | BMRC_CHECKER_ERR_ENABLED_CANT_SET - Checker already enabled, cannot |
|---|
| 960 | be set. |
|---|
| 961 | |
|---|
| 962 | See Also: |
|---|
| 963 | **************************************************************************/ |
|---|
| 964 | BERR_Code BMRC_Checker_SetAccessCheck |
|---|
| 965 | ( BMRC_Checker_Handle hChecker, /* [in] Checker handle */ |
|---|
| 966 | BMRC_AccessType eAccessType /* [in] Access type to check */ |
|---|
| 967 | ); |
|---|
| 968 | |
|---|
| 969 | |
|---|
| 970 | /*************************************************************************** |
|---|
| 971 | Summary: |
|---|
| 972 | Configures what types of accesses are blocked in the event of a |
|---|
| 973 | violation. |
|---|
| 974 | |
|---|
| 975 | Description: |
|---|
| 976 | This function blocks read and/or write access to a checker's range when |
|---|
| 977 | a violation does occur. |
|---|
| 978 | |
|---|
| 979 | Setting eBlockType to BMRC_AccessType_eRead blocks further read |
|---|
| 980 | accesses |
|---|
| 981 | |
|---|
| 982 | Setting eBlockType to BMRC_AccessType_eWrite blocks further write |
|---|
| 983 | accesses |
|---|
| 984 | |
|---|
| 985 | Setting eBlockType to BMRC_AccessType_eBoth blocks both types of |
|---|
| 986 | accesses when a violation occurs. |
|---|
| 987 | |
|---|
| 988 | The function cannot be called when a checker is already enabled. |
|---|
| 989 | |
|---|
| 990 | Returns: |
|---|
| 991 | BERR_SUCCESS - The block type was successfully set. |
|---|
| 992 | BERR_INVALID_PARAMETER - Checker handle was invalid. |
|---|
| 993 | BMRC_CHECKER_ERR_ENABLED_CANT_SET - Checker already enabled, cannot |
|---|
| 994 | be set. |
|---|
| 995 | |
|---|
| 996 | See Also: |
|---|
| 997 | **************************************************************************/ |
|---|
| 998 | BERR_Code BMRC_Checker_SetBlock |
|---|
| 999 | ( BMRC_Checker_Handle hChecker, /* [in] Checker handle */ |
|---|
| 1000 | BMRC_AccessType eBlockType /* [in] Access type to block on violations*/ |
|---|
| 1001 | ); |
|---|
| 1002 | |
|---|
| 1003 | |
|---|
| 1004 | /*************************************************************************** |
|---|
| 1005 | Summary: |
|---|
| 1006 | Sets a checker's exclusive mode. |
|---|
| 1007 | |
|---|
| 1008 | Description: |
|---|
| 1009 | When a checker is configured for exclusive mode, clients with read |
|---|
| 1010 | access to the checker's memory range can only read from that range, and |
|---|
| 1011 | clients with write access can only write to that range. Accesses |
|---|
| 1012 | to other memory ranges by these clients will cause a violation. The |
|---|
| 1013 | function cannot be called when a checker is already enabled. |
|---|
| 1014 | |
|---|
| 1015 | Returns: |
|---|
| 1016 | BERR_SUCCESS - The checker's exlusive mode was successfully set. |
|---|
| 1017 | BERR_INVALID_PARAMETER - Checker handle was invalid. |
|---|
| 1018 | BMRC_CHECKER_ERR_ENABLED_CANT_SET - Checker already enabled, cannot |
|---|
| 1019 | be set. |
|---|
| 1020 | |
|---|
| 1021 | See Also: |
|---|
| 1022 | **************************************************************************/ |
|---|
| 1023 | BERR_Code BMRC_Checker_SetExclusive |
|---|
| 1024 | ( BMRC_Checker_Handle hChecker, /* [in] Checker handle */ |
|---|
| 1025 | bool bExclusive /* [in] Enable/disable exclusive mode */ |
|---|
| 1026 | ); |
|---|
| 1027 | |
|---|
| 1028 | |
|---|
| 1029 | /*************************************************************************** |
|---|
| 1030 | Summary: |
|---|
| 1031 | Configures a client's access rights to the checker's memory range. |
|---|
| 1032 | |
|---|
| 1033 | Description: |
|---|
| 1034 | This function sets a client's permissions to access the checker's memory |
|---|
| 1035 | range. A client can be given read rights, write rights, both, or none |
|---|
| 1036 | by setting eAccessType to BMRC_AccessType_eRead, BMRC_AccessType_eWrite, |
|---|
| 1037 | BMRC_AccessType_eBoth, or BMRC_AccessType_eNone. |
|---|
| 1038 | |
|---|
| 1039 | Returns: |
|---|
| 1040 | BERR_SUCCESS - Client was successfully configured. |
|---|
| 1041 | BERR_INVALID_PARAMETER - Checker handle was invalid. |
|---|
| 1042 | BMRC_CHECKER_ERR_ENABLED_CANT_SET - Checker already enabled, cannot |
|---|
| 1043 | be set. |
|---|
| 1044 | |
|---|
| 1045 | See Also: |
|---|
| 1046 | BMRC_Checker_SetAccess |
|---|
| 1047 | **************************************************************************/ |
|---|
| 1048 | BERR_Code BMRC_Checker_SetClient |
|---|
| 1049 | ( BMRC_Checker_Handle hChecker, /* [in] Checker handle */ |
|---|
| 1050 | BMRC_Client eClient, /* [in] The client to configure */ |
|---|
| 1051 | BMRC_AccessType eAccessType /* [in] The client's access rights */ |
|---|
| 1052 | ); |
|---|
| 1053 | |
|---|
| 1054 | |
|---|
| 1055 | /*************************************************************************** |
|---|
| 1056 | Summary: |
|---|
| 1057 | Enables a client's access checking. |
|---|
| 1058 | |
|---|
| 1059 | Description: |
|---|
| 1060 | This function enables a client's access checking and will produce |
|---|
| 1061 | violations when they occur. |
|---|
| 1062 | |
|---|
| 1063 | Returns: |
|---|
| 1064 | BERR_SUCCESS - Checker was successfully enabled. |
|---|
| 1065 | BERR_INVALID_PARAMETER - Checker handle was invalid. |
|---|
| 1066 | BMRC_CHECKER_ERR_NO_CALLBACK_SET - No callback set. |
|---|
| 1067 | |
|---|
| 1068 | See Also: |
|---|
| 1069 | BMRC_Checker_Disable |
|---|
| 1070 | BMRC_Checker_EnableCallback |
|---|
| 1071 | BMRC_Checker_DisableCallback |
|---|
| 1072 | **************************************************************************/ |
|---|
| 1073 | BERR_Code BMRC_Checker_Enable |
|---|
| 1074 | ( BMRC_Checker_Handle hChecker /* [in] Checker handle */ |
|---|
| 1075 | ); |
|---|
| 1076 | |
|---|
| 1077 | |
|---|
| 1078 | /*************************************************************************** |
|---|
| 1079 | Summary: |
|---|
| 1080 | Disables a client's access checking. |
|---|
| 1081 | |
|---|
| 1082 | Description: |
|---|
| 1083 | This function disables a client's access checking. |
|---|
| 1084 | |
|---|
| 1085 | Returns: |
|---|
| 1086 | BERR_SUCCESS - Checker was successfully disabled. |
|---|
| 1087 | BERR_INVALID_PARAMETER - Checker handle was invalid. |
|---|
| 1088 | |
|---|
| 1089 | See Also: |
|---|
| 1090 | BMRC_Checker_Enable |
|---|
| 1091 | BMRC_Checker_EnableCallback |
|---|
| 1092 | BMRC_Checker_DisableCallback |
|---|
| 1093 | BMRC_Checker_EnableCallback_isr |
|---|
| 1094 | BMRC_Checker_DisableCallback_isr |
|---|
| 1095 | **************************************************************************/ |
|---|
| 1096 | BERR_Code BMRC_Checker_Disable |
|---|
| 1097 | ( BMRC_Checker_Handle hChecker /* [in] Checker handle */ |
|---|
| 1098 | ); |
|---|
| 1099 | |
|---|
| 1100 | |
|---|
| 1101 | /*************************************************************************** |
|---|
| 1102 | Summary: |
|---|
| 1103 | Enables a client's callback. |
|---|
| 1104 | |
|---|
| 1105 | Description: |
|---|
| 1106 | This function enables a client's callback to be run when violations |
|---|
| 1107 | occur. A checker must also be enabled for callbacks to work. |
|---|
| 1108 | |
|---|
| 1109 | Returns: |
|---|
| 1110 | BERR_SUCCESS - Checker callback was successfully enabled. |
|---|
| 1111 | BERR_INVALID_PARAMETER - Checker handle was invalid. |
|---|
| 1112 | BMRC_CHECKER_ERR_NO_CALLBACK_SET - No callback set. |
|---|
| 1113 | |
|---|
| 1114 | See Also: |
|---|
| 1115 | BMRC_Checker_Enable |
|---|
| 1116 | BMRC_Checker_Disable |
|---|
| 1117 | BMRC_Checker_DisableCallback |
|---|
| 1118 | BMRC_Checker_EnableCallback_isr |
|---|
| 1119 | BMRC_Checker_DisableCallback_isr |
|---|
| 1120 | **************************************************************************/ |
|---|
| 1121 | BERR_Code BMRC_Checker_EnableCallback |
|---|
| 1122 | ( BMRC_Checker_Handle hChecker /* [in] Checker handle */ |
|---|
| 1123 | ); |
|---|
| 1124 | |
|---|
| 1125 | |
|---|
| 1126 | /*************************************************************************** |
|---|
| 1127 | Summary: |
|---|
| 1128 | Disables a client's callback. |
|---|
| 1129 | |
|---|
| 1130 | Description: |
|---|
| 1131 | This function disables a client's callback, and the callback will |
|---|
| 1132 | not be run even when violations occur. |
|---|
| 1133 | |
|---|
| 1134 | Returns: |
|---|
| 1135 | BERR_SUCCESS - Checker callback was successfully disabled. |
|---|
| 1136 | BERR_INVALID_PARAMETER - Checker handle was invalid. |
|---|
| 1137 | |
|---|
| 1138 | See Also: |
|---|
| 1139 | BMRC_Checker_Enable |
|---|
| 1140 | BMRC_Checker_Disable |
|---|
| 1141 | BMRC_Checker_EnableCallback |
|---|
| 1142 | BMRC_Checker_EnableCallback_isr |
|---|
| 1143 | BMRC_Checker_DisableCallback_isr |
|---|
| 1144 | **************************************************************************/ |
|---|
| 1145 | BERR_Code BMRC_Checker_DisableCallback |
|---|
| 1146 | ( BMRC_Checker_Handle hChecker /* [in] Checker handle */ |
|---|
| 1147 | ); |
|---|
| 1148 | |
|---|
| 1149 | |
|---|
| 1150 | /*************************************************************************** |
|---|
| 1151 | Summary: |
|---|
| 1152 | Enables a client's callback during an isr. |
|---|
| 1153 | |
|---|
| 1154 | Description: |
|---|
| 1155 | This function enables a client's callback to be run when violations |
|---|
| 1156 | occur. A checker must also be enabled for callbacks to work. |
|---|
| 1157 | |
|---|
| 1158 | Returns: |
|---|
| 1159 | BERR_SUCCESS - Checker was successfully enabled. |
|---|
| 1160 | BERR_INVALID_PARAMETER - Checker handle was invalid. |
|---|
| 1161 | BMRC_CHECKER_ERR_NO_CALLBACK_SET - No callback set. |
|---|
| 1162 | |
|---|
| 1163 | See Also: |
|---|
| 1164 | BMRC_Checker_DisableCallback_isr |
|---|
| 1165 | BMRC_Checker_Enable |
|---|
| 1166 | BMRC_Checker_Disable |
|---|
| 1167 | BMRC_Checker_EnableCallback |
|---|
| 1168 | BMRC_Checker_DisableCallback |
|---|
| 1169 | **************************************************************************/ |
|---|
| 1170 | BERR_Code BMRC_Checker_EnableCallback_isr |
|---|
| 1171 | ( BMRC_Checker_Handle hChecker /* [in] Checker handle */ |
|---|
| 1172 | ); |
|---|
| 1173 | |
|---|
| 1174 | |
|---|
| 1175 | /*************************************************************************** |
|---|
| 1176 | Summary: |
|---|
| 1177 | Disables a client's callback during an isr. |
|---|
| 1178 | |
|---|
| 1179 | Description: |
|---|
| 1180 | This function disables a client's callback, and the callback will |
|---|
| 1181 | not be run even when violations occur. |
|---|
| 1182 | |
|---|
| 1183 | Returns: |
|---|
| 1184 | BERR_SUCCESS - Checker was successfully disabled. |
|---|
| 1185 | BERR_INVALID_PARAMETER - Checker handle was invalid. |
|---|
| 1186 | |
|---|
| 1187 | See Also: |
|---|
| 1188 | BMRC_Checker_EnableCallback_isr |
|---|
| 1189 | BMRC_Checker_Enable |
|---|
| 1190 | BMRC_Checker_Disable |
|---|
| 1191 | BMRC_Checker_EnableCallback |
|---|
| 1192 | BMRC_Checker_DisableCallback |
|---|
| 1193 | **************************************************************************/ |
|---|
| 1194 | BERR_Code BMRC_Checker_DisableCallback_isr |
|---|
| 1195 | ( BMRC_Checker_Handle hChecker /* [in] Checker handle */ |
|---|
| 1196 | ); |
|---|
| 1197 | |
|---|
| 1198 | |
|---|
| 1199 | /*************************************************************************** |
|---|
| 1200 | Summary: |
|---|
| 1201 | Registers a callback to the checker. |
|---|
| 1202 | |
|---|
| 1203 | Description: |
|---|
| 1204 | This function registers the callback that will be called when a |
|---|
| 1205 | violation occurs. |
|---|
| 1206 | |
|---|
| 1207 | Returns: |
|---|
| 1208 | BERR_SUCCESS - Callback was successfully registered. |
|---|
| 1209 | |
|---|
| 1210 | See Also: |
|---|
| 1211 | **************************************************************************/ |
|---|
| 1212 | BERR_Code BMRC_Checker_SetCallback |
|---|
| 1213 | ( BMRC_Checker_Handle hChecker, /* [in] Checker handle */ |
|---|
| 1214 | const BMRC_CallbackFunc_isr pfCbFunc, /* [in] Pointer to the callback function */ |
|---|
| 1215 | void *pvCbData1, /* [in] User defined callback data structure. */ |
|---|
| 1216 | int iCbData2 /* [in] User defined callback value */ |
|---|
| 1217 | ); |
|---|
| 1218 | |
|---|
| 1219 | |
|---|
| 1220 | /************************************************************************** |
|---|
| 1221 | Summary: |
|---|
| 1222 | Gets a client's info. |
|---|
| 1223 | |
|---|
| 1224 | Description: |
|---|
| 1225 | This function returns the client's information, such as client id and |
|---|
| 1226 | name in a client info structure. |
|---|
| 1227 | |
|---|
| 1228 | Returns: |
|---|
| 1229 | |
|---|
| 1230 | See Also: |
|---|
| 1231 | **************************************************************************/ |
|---|
| 1232 | BERR_Code BMRC_Checker_GetClientInfo |
|---|
| 1233 | ( BMRC_Handle hMrc, /* [in] MRC Module Handle */ |
|---|
| 1234 | BMRC_Client eClient, /* [in] The client to get the info of */ |
|---|
| 1235 | BMRC_ClientInfo *pClientInfo /* [out] Pointer to the client info structure */ |
|---|
| 1236 | ); |
|---|
| 1237 | |
|---|
| 1238 | |
|---|
| 1239 | #ifdef __cplusplus |
|---|
| 1240 | } |
|---|
| 1241 | #endif |
|---|
| 1242 | |
|---|
| 1243 | #endif |
|---|
| 1244 | /* End of File */ |
|---|