Point Cloud Library (PCL)  1.9.1
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
cutil_inline_bankchecker.h
1 /*
2  * Copyright 1993-2010 NVIDIA Corporation. All rights reserved.
3  *
4  * Please refer to the NVIDIA end user license agreement (EULA) associated
5  * with this source code for terms and conditions that govern your use of
6  * this software. Any use, reproduction, disclosure, or distribution of
7  * this software and related documentation outside the terms of the EULA
8  * is strictly prohibited.
9  *
10  */
11 
12  #ifndef _CUTIL_INLINE_BANKCHECKER_H_
13 #define _CUTIL_INLINE_BANKCHECKER_H_
14 
15 #ifdef _DEBUG
16  #if __DEVICE_EMULATION__
17  #define cutilBankChecker(array, idx) (__cutilBankChecker (threadIdx.x, threadIdx.y, threadIdx.z, \
18  blockDim.x, blockDim.y, blockDim.z, \
19  #array, idx, __FILE__, __LINE__), \
20  array[idx])
21 
22  #else
23  #define cutilBankChecker(array, idx) array[idx]
24  #endif
25 #else
26  #define cutilBankChecker(array, idx) array[idx]
27 #endif
28 
29  // Interface for bank conflict checker
30 inline void __cutilBankChecker(unsigned int tidx, unsigned int tidy, unsigned int tidz,
31  unsigned int bdimx, unsigned int bdimy, unsigned int bdimz,
32  char *aname, int index, char *file, int line)
33 {
34  cutCheckBankAccess( tidx, tidy, tidz, bdimx, bdimy, bdimz, file, line, aname, index);
35 }
36 
37 #endif // _CUTIL_INLINE_BANKCHECKER_H_