1 /**************************************************************************** 2 3 (c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29 4 www.systec-electronic.com 5 6 Project: openPOWERLINK 7 8 Description: header file for benchmarking 9 10 License: 11 12 Redistribution and use in source and binary forms, with or without 13 modification, are permitted provided that the following conditions 14 are met: 15 16 1. Redistributions of source code must retain the above copyright 17 notice, this list of conditions and the following disclaimer. 18 19 2. Redistributions in binary form must reproduce the above copyright 20 notice, this list of conditions and the following disclaimer in the 21 documentation and/or other materials provided with the distribution. 22 23 3. Neither the name of SYSTEC electronic GmbH nor the names of its 24 contributors may be used to endorse or promote products derived 25 from this software without prior written permission. For written 26 permission, please contact info@systec-electronic.com. 27 28 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 31 FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 32 COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 33 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 34 BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 35 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 36 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 37 LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 38 ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 39 POSSIBILITY OF SUCH DAMAGE. 40 41 Severability Clause: 42 43 If a provision of this License is or becomes illegal, invalid or 44 unenforceable in any jurisdiction, that shall not affect: 45 1. the validity or enforceability in that jurisdiction of any other 46 provision of this License; or 47 2. the validity or enforceability in other jurisdictions of that or 48 any other provision of this License. 49 50 ------------------------------------------------------------------------- 51 52 $RCSfile: Benchmark.h,v $ 53 54 $Author: D.Krueger $ 55 56 $Revision: 1.5 $ $Date: 2008/04/17 21:36:32 $ 57 58 $State: Exp $ 59 60 Build Environment: 61 ... 62 63 ------------------------------------------------------------------------- 64 65 Revision History: 66 67 2006/08/16 d.k.: start of implementation 68 69 ****************************************************************************/ 70 71 #ifndef _BENCHMARK_H_ 72 #define _BENCHMARK_H_ 73 74 #include "global.h" 75 76 #if (TARGET_SYSTEM == _NO_OS_) && (DEV_SYSTEM == _DEV_GNU_CF548X_) 77 #include "common.h" 78 79 #elif (TARGET_SYSTEM == _LINUX_) && defined(__KERNEL__) 80 81 // #include <linux/config.h> 82 #include <linux/kernel.h> 83 84 #ifdef CONFIG_COLDFIRE 85 #include <asm/coldfire.h> 86 #include <asm/m5485gpio.h> 87 88 #define BENCHMARK_SET(x) MCF_GPIO_PODR_PCIBG |= (1 << (x)) // (x+1) 89 #define BENCHMARK_RESET(x) MCF_GPIO_PODR_PCIBG &= ~(1 << (x)) // (x+1) 90 #define BENCHMARK_TOGGLE(x) MCF_GPIO_PODR_PCIBR ^= (1 << (x - 5)) 91 #else 92 #undef BENCHMARK_MODULES 93 #define BENCHMARK_MODULES 0x00000000 94 #endif 95 96 #else 97 // disable Benchmarking 98 #undef BENCHMARK_MODULES 99 #define BENCHMARK_MODULES 0x00000000 100 #endif 101 102 /***************************************************************************/ 103 /* */ 104 /* */ 105 /* G L O B A L D E F I N I T I O N S */ 106 /* */ 107 /* */ 108 /***************************************************************************/ 109 110 //--------------------------------------------------------------------------- 111 // const defines 112 //--------------------------------------------------------------------------- 113 114 #ifndef BENCHMARK_MODULES 115 #define BENCHMARK_MODULES 0x00000000 116 #endif 117 118 #define BENCHMARK_MOD_01 0x00000001 119 #define BENCHMARK_MOD_02 0x00000002 120 #define BENCHMARK_MOD_03 0x00000004 121 #define BENCHMARK_MOD_04 0x00000008 122 #define BENCHMARK_MOD_05 0x00000010 123 #define BENCHMARK_MOD_06 0x00000020 124 #define BENCHMARK_MOD_07 0x00000040 125 #define BENCHMARK_MOD_08 0x00000080 126 #define BENCHMARK_MOD_09 0x00000100 127 #define BENCHMARK_MOD_10 0x00000200 128 #define BENCHMARK_MOD_11 0x00000400 129 #define BENCHMARK_MOD_12 0x00000800 130 #define BENCHMARK_MOD_13 0x00001000 131 #define BENCHMARK_MOD_14 0x00002000 132 #define BENCHMARK_MOD_15 0x00004000 133 #define BENCHMARK_MOD_16 0x00008000 134 #define BENCHMARK_MOD_17 0x00010000 135 #define BENCHMARK_MOD_18 0x00020000 136 #define BENCHMARK_MOD_19 0x00040000 137 #define BENCHMARK_MOD_20 0x00080000 138 #define BENCHMARK_MOD_21 0x00100000 139 #define BENCHMARK_MOD_22 0x00200000 140 #define BENCHMARK_MOD_23 0x00400000 141 #define BENCHMARK_MOD_24 0x00800000 142 #define BENCHMARK_MOD_25 0x01000000 143 #define BENCHMARK_MOD_26 0x02000000 144 #define BENCHMARK_MOD_27 0x04000000 145 #define BENCHMARK_MOD_28 0x08000000 146 #define BENCHMARK_MOD_29 0x10000000 147 #define BENCHMARK_MOD_30 0x20000000 148 #define BENCHMARK_MOD_31 0x40000000 149 #define BENCHMARK_MOD_32 0x80000000 150 151 #if (BENCHMARK_MODULES & BENCHMARK_MOD_01) 152 #define BENCHMARK_MOD_01_SET(x) BENCHMARK_SET(x) 153 #define BENCHMARK_MOD_01_RESET(x) BENCHMARK_RESET(x) 154 #define BENCHMARK_MOD_01_TOGGLE(x) BENCHMARK_TOGGLE(x) 155 #else 156 #define BENCHMARK_MOD_01_SET(x) 157 #define BENCHMARK_MOD_01_RESET(x) 158 #define BENCHMARK_MOD_01_TOGGLE(x) 159 #endif 160 161 #if (BENCHMARK_MODULES & BENCHMARK_MOD_02) 162 #define BENCHMARK_MOD_02_SET(x) BENCHMARK_SET(x) 163 #define BENCHMARK_MOD_02_RESET(x) BENCHMARK_RESET(x) 164 #define BENCHMARK_MOD_02_TOGGLE(x) BENCHMARK_TOGGLE(x) 165 #else 166 #define BENCHMARK_MOD_02_SET(x) 167 #define BENCHMARK_MOD_02_RESET(x) 168 #define BENCHMARK_MOD_02_TOGGLE(x) 169 #endif 170 171 #if (BENCHMARK_MODULES & BENCHMARK_MOD_03) 172 #define BENCHMARK_MOD_03_SET(x) BENCHMARK_SET(x) 173 #define BENCHMARK_MOD_03_RESET(x) BENCHMARK_RESET(x) 174 #define BENCHMARK_MOD_03_TOGGLE(x) BENCHMARK_TOGGLE(x) 175 #else 176 #define BENCHMARK_MOD_03_SET(x) 177 #define BENCHMARK_MOD_03_RESET(x) 178 #define BENCHMARK_MOD_03_TOGGLE(x) 179 #endif 180 181 #if (BENCHMARK_MODULES & BENCHMARK_MOD_04) 182 #define BENCHMARK_MOD_04_SET(x) BENCHMARK_SET(x) 183 #define BENCHMARK_MOD_04_RESET(x) BENCHMARK_RESET(x) 184 #define BENCHMARK_MOD_04_TOGGLE(x) BENCHMARK_TOGGLE(x) 185 #else 186 #define BENCHMARK_MOD_04_SET(x) 187 #define BENCHMARK_MOD_04_RESET(x) 188 #define BENCHMARK_MOD_04_TOGGLE(x) 189 #endif 190 191 #if (BENCHMARK_MODULES & BENCHMARK_MOD_05) 192 #define BENCHMARK_MOD_05_SET(x) BENCHMARK_SET(x) 193 #define BENCHMARK_MOD_05_RESET(x) BENCHMARK_RESET(x) 194 #define BENCHMARK_MOD_05_TOGGLE(x) BENCHMARK_TOGGLE(x) 195 #else 196 #define BENCHMARK_MOD_05_SET(x) 197 #define BENCHMARK_MOD_05_RESET(x) 198 #define BENCHMARK_MOD_05_TOGGLE(x) 199 #endif 200 201 #if (BENCHMARK_MODULES & BENCHMARK_MOD_06) 202 #define BENCHMARK_MOD_06_SET(x) BENCHMARK_SET(x) 203 #define BENCHMARK_MOD_06_RESET(x) BENCHMARK_RESET(x) 204 #define BENCHMARK_MOD_06_TOGGLE(x) BENCHMARK_TOGGLE(x) 205 #else 206 #define BENCHMARK_MOD_06_SET(x) 207 #define BENCHMARK_MOD_06_RESET(x) 208 #define BENCHMARK_MOD_06_TOGGLE(x) 209 #endif 210 211 #if (BENCHMARK_MODULES & BENCHMARK_MOD_07) 212 #define BENCHMARK_MOD_07_SET(x) BENCHMARK_SET(x) 213 #define BENCHMARK_MOD_07_RESET(x) BENCHMARK_RESET(x) 214 #define BENCHMARK_MOD_07_TOGGLE(x) BENCHMARK_TOGGLE(x) 215 #else 216 #define BENCHMARK_MOD_07_SET(x) 217 #define BENCHMARK_MOD_07_RESET(x) 218 #define BENCHMARK_MOD_07_TOGGLE(x) 219 #endif 220 221 #if (BENCHMARK_MODULES & BENCHMARK_MOD_08) 222 #define BENCHMARK_MOD_08_SET(x) BENCHMARK_SET(x) 223 #define BENCHMARK_MOD_08_RESET(x) BENCHMARK_RESET(x) 224 #define BENCHMARK_MOD_08_TOGGLE(x) BENCHMARK_TOGGLE(x) 225 #else 226 #define BENCHMARK_MOD_08_SET(x) 227 #define BENCHMARK_MOD_08_RESET(x) 228 #define BENCHMARK_MOD_08_TOGGLE(x) 229 #endif 230 231 #if (BENCHMARK_MODULES & BENCHMARK_MOD_09) 232 #define BENCHMARK_MOD_09_SET(x) BENCHMARK_SET(x) 233 #define BENCHMARK_MOD_09_RESET(x) BENCHMARK_RESET(x) 234 #define BENCHMARK_MOD_09_TOGGLE(x) BENCHMARK_TOGGLE(x) 235 #else 236 #define BENCHMARK_MOD_09_SET(x) 237 #define BENCHMARK_MOD_09_RESET(x) 238 #define BENCHMARK_MOD_09_TOGGLE(x) 239 #endif 240 241 #if (BENCHMARK_MODULES & BENCHMARK_MOD_10) 242 #define BENCHMARK_MOD_10_SET(x) BENCHMARK_SET(x) 243 #define BENCHMARK_MOD_10_RESET(x) BENCHMARK_RESET(x) 244 #else 245 #define BENCHMARK_MOD_10_SET(x) 246 #define BENCHMARK_MOD_10_RESET(x) 247 #endif 248 249 #if (BENCHMARK_MODULES & BENCHMARK_MOD_11) 250 #define BENCHMARK_MOD_11_SET(x) BENCHMARK_SET(x) 251 #define BENCHMARK_MOD_11_RESET(x) BENCHMARK_RESET(x) 252 #else 253 #define BENCHMARK_MOD_11_SET(x) 254 #define BENCHMARK_MOD_11_RESET(x) 255 #endif 256 257 #if (BENCHMARK_MODULES & BENCHMARK_MOD_12) 258 #define BENCHMARK_MOD_12_SET(x) BENCHMARK_SET(x) 259 #define BENCHMARK_MOD_12_RESET(x) BENCHMARK_RESET(x) 260 #else 261 #define BENCHMARK_MOD_12_SET(x) 262 #define BENCHMARK_MOD_12_RESET(x) 263 #endif 264 265 #if (BENCHMARK_MODULES & BENCHMARK_MOD_13) 266 #define BENCHMARK_MOD_13_SET(x) BENCHMARK_SET(x) 267 #define BENCHMARK_MOD_13_RESET(x) BENCHMARK_RESET(x) 268 #else 269 #define BENCHMARK_MOD_13_SET(x) 270 #define BENCHMARK_MOD_13_RESET(x) 271 #endif 272 273 #if (BENCHMARK_MODULES & BENCHMARK_MOD_14) 274 #define BENCHMARK_MOD_14_SET(x) BENCHMARK_SET(x) 275 #define BENCHMARK_MOD_14_RESET(x) BENCHMARK_RESET(x) 276 #else 277 #define BENCHMARK_MOD_14_SET(x) 278 #define BENCHMARK_MOD_14_RESET(x) 279 #endif 280 281 #if (BENCHMARK_MODULES & BENCHMARK_MOD_15) 282 #define BENCHMARK_MOD_15_SET(x) BENCHMARK_SET(x) 283 #define BENCHMARK_MOD_15_RESET(x) BENCHMARK_RESET(x) 284 #else 285 #define BENCHMARK_MOD_15_SET(x) 286 #define BENCHMARK_MOD_15_RESET(x) 287 #endif 288 289 #if (BENCHMARK_MODULES & BENCHMARK_MOD_16) 290 #define BENCHMARK_MOD_16_SET(x) BENCHMARK_SET(x) 291 #define BENCHMARK_MOD_16_RESET(x) BENCHMARK_RESET(x) 292 #else 293 #define BENCHMARK_MOD_16_SET(x) 294 #define BENCHMARK_MOD_16_RESET(x) 295 #endif 296 297 #if (BENCHMARK_MODULES & BENCHMARK_MOD_17) 298 #define BENCHMARK_MOD_17_SET(x) BENCHMARK_SET(x) 299 #define BENCHMARK_MOD_17_RESET(x) BENCHMARK_RESET(x) 300 #else 301 #define BENCHMARK_MOD_17_SET(x) 302 #define BENCHMARK_MOD_17_RESET(x) 303 #endif 304 305 #if (BENCHMARK_MODULES & BENCHMARK_MOD_18) 306 #define BENCHMARK_MOD_18_SET(x) BENCHMARK_SET(x) 307 #define BENCHMARK_MOD_18_RESET(x) BENCHMARK_RESET(x) 308 #else 309 #define BENCHMARK_MOD_18_SET(x) 310 #define BENCHMARK_MOD_18_RESET(x) 311 #endif 312 313 #if (BENCHMARK_MODULES & BENCHMARK_MOD_19) 314 #define BENCHMARK_MOD_19_SET(x) BENCHMARK_SET(x) 315 #define BENCHMARK_MOD_19_RESET(x) BENCHMARK_RESET(x) 316 #else 317 #define BENCHMARK_MOD_19_SET(x) 318 #define BENCHMARK_MOD_19_RESET(x) 319 #endif 320 321 #if (BENCHMARK_MODULES & BENCHMARK_MOD_20) 322 #define BENCHMARK_MOD_20_SET(x) BENCHMARK_SET(x) 323 #define BENCHMARK_MOD_20_RESET(x) BENCHMARK_RESET(x) 324 #else 325 #define BENCHMARK_MOD_20_SET(x) 326 #define BENCHMARK_MOD_20_RESET(x) 327 #endif 328 329 #if (BENCHMARK_MODULES & BENCHMARK_MOD_21) 330 #define BENCHMARK_MOD_21_SET(x) BENCHMARK_SET(x) 331 #define BENCHMARK_MOD_21_RESET(x) BENCHMARK_RESET(x) 332 #else 333 #define BENCHMARK_MOD_21_SET(x) 334 #define BENCHMARK_MOD_21_RESET(x) 335 #endif 336 337 #if (BENCHMARK_MODULES & BENCHMARK_MOD_22) 338 #define BENCHMARK_MOD_22_SET(x) BENCHMARK_SET(x) 339 #define BENCHMARK_MOD_22_RESET(x) BENCHMARK_RESET(x) 340 #else 341 #define BENCHMARK_MOD_22_SET(x) 342 #define BENCHMARK_MOD_22_RESET(x) 343 #endif 344 345 #if (BENCHMARK_MODULES & BENCHMARK_MOD_23) 346 #define BENCHMARK_MOD_23_SET(x) BENCHMARK_SET(x) 347 #define BENCHMARK_MOD_23_RESET(x) BENCHMARK_RESET(x) 348 #else 349 #define BENCHMARK_MOD_23_SET(x) 350 #define BENCHMARK_MOD_23_RESET(x) 351 #endif 352 353 #if (BENCHMARK_MODULES & BENCHMARK_MOD_24) 354 #define BENCHMARK_MOD_24_SET(x) BENCHMARK_SET(x) 355 #define BENCHMARK_MOD_24_RESET(x) BENCHMARK_RESET(x) 356 #else 357 #define BENCHMARK_MOD_24_SET(x) 358 #define BENCHMARK_MOD_24_RESET(x) 359 #endif 360 361 #if (BENCHMARK_MODULES & BENCHMARK_MOD_25) 362 #define BENCHMARK_MOD_25_SET(x) BENCHMARK_SET(x) 363 #define BENCHMARK_MOD_25_RESET(x) BENCHMARK_RESET(x) 364 #else 365 #define BENCHMARK_MOD_25_SET(x) 366 #define BENCHMARK_MOD_25_RESET(x) 367 #endif 368 369 #if (BENCHMARK_MODULES & BENCHMARK_MOD_26) 370 #define BENCHMARK_MOD_26_SET(x) BENCHMARK_SET(x) 371 #define BENCHMARK_MOD_26_RESET(x) BENCHMARK_RESET(x) 372 #else 373 #define BENCHMARK_MOD_26_SET(x) 374 #define BENCHMARK_MOD_26_RESET(x) 375 #endif 376 377 #if (BENCHMARK_MODULES & BENCHMARK_MOD_27) 378 #define BENCHMARK_MOD_27_SET(x) BENCHMARK_SET(x) 379 #define BENCHMARK_MOD_27_RESET(x) BENCHMARK_RESET(x) 380 #else 381 #define BENCHMARK_MOD_27_SET(x) 382 #define BENCHMARK_MOD_27_RESET(x) 383 #endif 384 385 #if (BENCHMARK_MODULES & BENCHMARK_MOD_28) 386 #define BENCHMARK_MOD_28_SET(x) BENCHMARK_SET(x) 387 #define BENCHMARK_MOD_28_RESET(x) BENCHMARK_RESET(x) 388 #else 389 #define BENCHMARK_MOD_28_SET(x) 390 #define BENCHMARK_MOD_28_RESET(x) 391 #endif 392 393 #if (BENCHMARK_MODULES & BENCHMARK_MOD_29) 394 #define BENCHMARK_MOD_29_SET(x) BENCHMARK_SET(x) 395 #define BENCHMARK_MOD_29_RESET(x) BENCHMARK_RESET(x) 396 #else 397 #define BENCHMARK_MOD_29_SET(x) 398 #define BENCHMARK_MOD_29_RESET(x) 399 #endif 400 401 #if (BENCHMARK_MODULES & BENCHMARK_MOD_30) 402 #define BENCHMARK_MOD_30_SET(x) BENCHMARK_SET(x) 403 #define BENCHMARK_MOD_30_RESET(x) BENCHMARK_RESET(x) 404 #else 405 #define BENCHMARK_MOD_30_SET(x) 406 #define BENCHMARK_MOD_30_RESET(x) 407 #endif 408 409 #if (BENCHMARK_MODULES & BENCHMARK_MOD_31) 410 #define BENCHMARK_MOD_31_SET(x) BENCHMARK_SET(x) 411 #define BENCHMARK_MOD_31_RESET(x) BENCHMARK_RESET(x) 412 #else 413 #define BENCHMARK_MOD_31_SET(x) 414 #define BENCHMARK_MOD_31_RESET(x) 415 #endif 416 417 #if (BENCHMARK_MODULES & BENCHMARK_MOD_32) 418 #define BENCHMARK_MOD_32_SET(x) BENCHMARK_SET(x) 419 #define BENCHMARK_MOD_32_RESET(x) BENCHMARK_RESET(x) 420 #else 421 #define BENCHMARK_MOD_32_SET(x) 422 #define BENCHMARK_MOD_32_RESET(x) 423 #endif 424 425 //--------------------------------------------------------------------------- 426 // modul global types 427 //--------------------------------------------------------------------------- 428 429 //--------------------------------------------------------------------------- 430 // local vars 431 //--------------------------------------------------------------------------- 432 433 //--------------------------------------------------------------------------- 434 // local function prototypes 435 //--------------------------------------------------------------------------- 436 437 #endif // _BENCHMARK_H_ 438