blob: bee5342535229a004f99c69651be73113832f772 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
static final DynamicLibraryBundle dynamicLookupHelper;
protected static final CLProcAddressTable addressTable;
static {
addressTable = new CLProcAddressTable();
if(null==addressTable) {
throw new RuntimeException("Couldn't instantiate ALProcAddressTable");
}
dynamicLookupHelper = AccessController.doPrivileged(new PrivilegedAction<DynamicLibraryBundle>() {
public DynamicLibraryBundle run() {
final DynamicLibraryBundle bundle = new DynamicLibraryBundle(new CLDynamicLibraryBundleInfo());
if(null==bundle) {
throw new RuntimeException("Null CLDynamicLookupHelper");
}
if(!bundle.isToolLibLoaded()) {
throw new RuntimeException("Couln't load native CL library");
}
if(!bundle.isLibComplete()) {
throw new RuntimeException("Couln't load native CL/JNI glue library");
}
addressTable.reset(bundle);
return bundle;
} } );
}
public static CLProcAddressTable getCLProcAddressTable() { return addressTable; }
static long clGetExtensionFunctionAddress(long clGetExtensionFunctionAddressHandle, java.lang.String procname)
{
if (clGetExtensionFunctionAddressHandle == 0) {
throw new RuntimeException("Passed null pointer for method \"clGetExtensionFunctionAddress\"");
}
return dispatch_clGetExtensionFunctionAddressStatic(procname, clGetExtensionFunctionAddressHandle);
}
public CLAbstractImpl() {
}
/** Entry point (through function pointer) to C language function: <br> <code> void* clGetExtensionFunctionAddress(const char * fname); </code> */
long clGetExtensionFunctionAddress(String fname) {
final long __addr_ = addressTable._addressof_clGetExtensionFunctionAddress;
if (__addr_ == 0) {
throw new UnsupportedOperationException("Method \"clGetExtensionFunctionAddress\" not available");
}
return dispatch_clGetExtensionFunctionAddressStatic(fname, __addr_);
}
/** Entry point (through function pointer) to C language function: <br> <code> void* clGetExtensionFunctionAddress(const char * fname); </code> */
private static native long dispatch_clGetExtensionFunctionAddressStatic(String fname, long procAddress);
|