This source file includes following definitions.
- Java_mpi_File_open
- Java_mpi_File_close
- Java_mpi_File_delete
- Java_mpi_File_setSize
- Java_mpi_File_preallocate
- Java_mpi_File_getSize
- Java_mpi_File_getGroup
- Java_mpi_File_getAMode
- Java_mpi_File_setInfo
- Java_mpi_File_getInfo
- Java_mpi_File_setView
- Java_mpi_File_readAt
- Java_mpi_File_readAtAll
- Java_mpi_File_writeAt
- Java_mpi_File_writeAtAll
- Java_mpi_File_iReadAt
- Java_mpi_File_iReadAtAll
- Java_mpi_File_iWriteAt
- Java_mpi_File_iWriteAtAll
- Java_mpi_File_read
- Java_mpi_File_readAll
- Java_mpi_File_write
- Java_mpi_File_writeAll
- Java_mpi_File_iRead
- Java_mpi_File_iReadAll
- Java_mpi_File_iWrite
- Java_mpi_File_iWriteAll
- Java_mpi_File_seek
- Java_mpi_File_getPosition
- Java_mpi_File_getByteOffset
- Java_mpi_File_readShared
- Java_mpi_File_writeShared
- Java_mpi_File_iReadShared
- Java_mpi_File_iWriteShared
- Java_mpi_File_readOrdered
- Java_mpi_File_writeOrdered
- Java_mpi_File_seekShared
- Java_mpi_File_getPositionShared
- Java_mpi_File_readAtAllBegin
- Java_mpi_File_readAtAllEnd
- Java_mpi_File_writeAtAllBegin
- Java_mpi_File_writeAtAllEnd
- Java_mpi_File_readAllBegin
- Java_mpi_File_readAllEnd
- Java_mpi_File_writeAllBegin
- Java_mpi_File_writeAllEnd
- Java_mpi_File_readOrderedBegin
- Java_mpi_File_readOrderedEnd
- Java_mpi_File_writeOrderedBegin
- Java_mpi_File_writeOrderedEnd
- Java_mpi_File_getTypeExtent
- Java_mpi_File_setAtomicity
- Java_mpi_File_getAtomicity
- Java_mpi_File_sync
- Java_mpi_File_setErrhandler
- Java_mpi_File_getErrhandler
- Java_mpi_File_callErrhandler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 #include "ompi_config.h"
23
24 #include <stdlib.h>
25 #include <assert.h>
26 #ifdef HAVE_TARGETCONDITIONALS_H
27 #include <TargetConditionals.h>
28 #endif
29
30 #include "mpi.h"
31 #include "mpi_File.h"
32 #include "mpiJava.h"
33
34 JNIEXPORT jlong JNICALL Java_mpi_File_open(
35 JNIEnv *env, jobject jthis, jlong comm,
36 jstring jfilename, jint amode, jlong info)
37 {
38 const char* filename = (*env)->GetStringUTFChars(env, jfilename, NULL);
39 MPI_File fh;
40
41 int rc = MPI_File_open((MPI_Comm)comm, (char*)filename,
42 amode, (MPI_Info)info, &fh);
43
44 ompi_java_exceptionCheck(env, rc);
45 (*env)->ReleaseStringUTFChars(env, jfilename, filename);
46 return (jlong)fh;
47 }
48
49 JNIEXPORT jlong JNICALL Java_mpi_File_close(
50 JNIEnv *env, jobject jthis, jlong fh)
51 {
52 MPI_File file = (MPI_File)fh;
53 int rc = MPI_File_close(&file);
54 ompi_java_exceptionCheck(env, rc);
55 return (jlong)file;
56 }
57
58 JNIEXPORT void JNICALL Java_mpi_File_delete(
59 JNIEnv *env, jclass clazz, jstring jfilename, jlong info)
60 {
61 const char* filename = (*env)->GetStringUTFChars(env, jfilename, NULL);
62 int rc = MPI_File_delete((char*)filename, (MPI_Info)info);
63 ompi_java_exceptionCheck(env, rc);
64 (*env)->ReleaseStringUTFChars(env, jfilename, filename);
65 }
66
67 JNIEXPORT void JNICALL Java_mpi_File_setSize(
68 JNIEnv *env, jobject jthis, jlong fh, jlong size)
69 {
70 int rc = MPI_File_set_size((MPI_File)fh, (MPI_Offset)size);
71 ompi_java_exceptionCheck(env, rc);
72 }
73
74 JNIEXPORT void JNICALL Java_mpi_File_preallocate(
75 JNIEnv *env, jobject jthis, jlong fh, jlong size)
76 {
77 int rc = MPI_File_preallocate((MPI_File)fh, (MPI_Offset)size);
78 ompi_java_exceptionCheck(env, rc);
79 }
80
81 JNIEXPORT jlong JNICALL Java_mpi_File_getSize(
82 JNIEnv *env, jobject jthis, jlong fh)
83 {
84 MPI_Offset size;
85 int rc = MPI_File_get_size((MPI_File)fh, &size);
86 ompi_java_exceptionCheck(env, rc);
87 return (jlong)size;
88 }
89
90 JNIEXPORT jlong JNICALL Java_mpi_File_getGroup(
91 JNIEnv *env, jobject jthis, jlong fh)
92 {
93 MPI_Group group;
94 int rc = MPI_File_get_group((MPI_File)fh, &group);
95 ompi_java_exceptionCheck(env, rc);
96 return (jlong)group;
97 }
98
99 JNIEXPORT jint JNICALL Java_mpi_File_getAMode(
100 JNIEnv *env, jobject jthis, jlong fh)
101 {
102 int amode;
103 int rc = MPI_File_get_amode((MPI_File)fh, &amode);
104 ompi_java_exceptionCheck(env, rc);
105 return amode;
106 }
107
108 JNIEXPORT void JNICALL Java_mpi_File_setInfo(
109 JNIEnv *env, jobject jthis, jlong fh, jlong info)
110 {
111 int rc = MPI_File_set_info((MPI_File)fh, (MPI_Info)info);
112 ompi_java_exceptionCheck(env, rc);
113 }
114
115 JNIEXPORT jlong JNICALL Java_mpi_File_getInfo(
116 JNIEnv *env, jobject jthis, jlong fh)
117 {
118 MPI_Info info;
119 int rc = MPI_File_get_info((MPI_File)fh, &info);
120 ompi_java_exceptionCheck(env, rc);
121 return (jlong)info;
122 }
123
124 JNIEXPORT void JNICALL Java_mpi_File_setView(
125 JNIEnv *env, jobject jthis, jlong fh, jlong disp,
126 jlong etype, jlong filetype, jstring jdatarep, jlong info)
127 {
128 const char* datarep = (*env)->GetStringUTFChars(env, jdatarep, NULL);
129
130 int rc = MPI_File_set_view(
131 (MPI_File)fh, (MPI_Offset)disp, (MPI_Datatype)etype,
132 (MPI_Datatype)filetype, (char*)datarep, (MPI_Info)info);
133
134 ompi_java_exceptionCheck(env, rc);
135 (*env)->ReleaseStringUTFChars(env, jdatarep, datarep);
136 }
137
138 JNIEXPORT void JNICALL Java_mpi_File_readAt(
139 JNIEnv *env, jobject jthis, jlong fh, jlong fileOffset,
140 jobject buf, jboolean db, jint off, jint count,
141 jlong jType, jint bType, jlongArray stat)
142 {
143 jboolean exception;
144 MPI_Datatype type = (MPI_Datatype)jType;
145 void *ptr;
146 ompi_java_buffer_t *item;
147 ompi_java_getWritePtr(&ptr, &item, env, buf, db, count, type);
148 MPI_Status status;
149
150 int rc = MPI_File_read_at((MPI_File)fh, (MPI_Offset)fileOffset,
151 ptr, count, type, &status);
152
153 exception = ompi_java_exceptionCheck(env, rc);
154 ompi_java_releaseWritePtr(ptr, item, env, buf, db, off, count, type, bType);
155
156 if(!exception)
157 ompi_java_status_set(env, stat, &status);
158 }
159
160 JNIEXPORT void JNICALL Java_mpi_File_readAtAll(
161 JNIEnv *env, jobject jthis, jlong fh, jlong fileOffset,
162 jobject buf, jboolean db, jint off, jint count,
163 jlong jType, jint bType, jlongArray stat)
164 {
165 jboolean exception;
166 MPI_Datatype type = (MPI_Datatype)jType;
167 void *ptr;
168 ompi_java_buffer_t *item;
169 ompi_java_getWritePtr(&ptr, &item, env, buf, db, count, type);
170 MPI_Status status;
171
172 int rc = MPI_File_read_at_all((MPI_File)fh, (MPI_Offset)fileOffset,
173 ptr, count, type, &status);
174
175 exception = ompi_java_exceptionCheck(env, rc);
176 ompi_java_releaseWritePtr(ptr, item, env, buf, db, off, count, type, bType);
177
178 if(!exception)
179 ompi_java_status_set(env, stat, &status);
180 }
181
182 JNIEXPORT void JNICALL Java_mpi_File_writeAt(
183 JNIEnv *env, jobject jthis, jlong fh, jlong fileOffset,
184 jobject buf, jboolean db, jint off, jint count,
185 jlong jType, jint bType, jlongArray stat)
186 {
187 jboolean exception;
188 MPI_Datatype type = (MPI_Datatype)jType;
189 void *ptr;
190 ompi_java_buffer_t *item;
191 ompi_java_getReadPtr(&ptr, &item, env, buf, db, off, count, type, bType);
192 MPI_Status status;
193
194 int rc = MPI_File_write_at((MPI_File)fh, (MPI_Offset)fileOffset,
195 ptr, count, type, &status);
196
197 exception = ompi_java_exceptionCheck(env, rc);
198 ompi_java_releaseReadPtr(ptr, item, buf, db);
199
200 if(!exception)
201 ompi_java_status_set(env, stat, &status);
202 }
203
204 JNIEXPORT void JNICALL Java_mpi_File_writeAtAll(
205 JNIEnv *env, jobject jthis, jlong fh, jlong fileOffset,
206 jobject buf, jboolean db, jint off, jint count,
207 jlong jType, jint bType, jlongArray stat)
208 {
209 jboolean exception;
210 MPI_Datatype type = (MPI_Datatype)jType;
211 void *ptr;
212 ompi_java_buffer_t *item;
213 ompi_java_getReadPtr(&ptr, &item, env, buf, db, off, count, type, bType);
214 MPI_Status status;
215
216 int rc = MPI_File_write_at_all((MPI_File)fh, (MPI_Offset)fileOffset,
217 ptr, count, (MPI_Datatype)type, &status);
218
219 exception = ompi_java_exceptionCheck(env, rc);
220 ompi_java_releaseReadPtr(ptr, item, buf, db);
221
222 if(!exception)
223 ompi_java_status_set(env, stat, &status);
224 }
225
226 JNIEXPORT jlong JNICALL Java_mpi_File_iReadAt(
227 JNIEnv *env, jobject jthis, jlong fh, jlong offset,
228 jobject buf, jint count, jlong type)
229 {
230 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
231 MPI_Request request;
232
233 int rc = MPI_File_iread_at((MPI_File)fh, (MPI_Offset)offset,
234 ptr, count, (MPI_Datatype)type, &request);
235
236 ompi_java_exceptionCheck(env, rc);
237 return (jlong)request;
238 }
239
240 JNIEXPORT jlong JNICALL Java_mpi_File_iReadAtAll(
241 JNIEnv *env, jobject jthis, jlong fh, jlong offset,
242 jobject buf, jint count, jlong type)
243 {
244 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
245 MPI_Request request;
246
247 int rc = MPI_File_iread_at_all((MPI_File)fh, (MPI_Offset)offset,
248 ptr, count, (MPI_Datatype)type, &request);
249
250 ompi_java_exceptionCheck(env, rc);
251 return (jlong)request;
252 }
253
254 JNIEXPORT jlong JNICALL Java_mpi_File_iWriteAt(
255 JNIEnv *env, jobject jthis, jlong fh, jlong offset,
256 jobject buf, jint count, jlong type)
257 {
258 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
259 MPI_Request request;
260
261 int rc = MPI_File_iwrite_at((MPI_File)fh, (MPI_Offset)offset,
262 ptr, count, (MPI_Datatype)type, &request);
263
264 ompi_java_exceptionCheck(env, rc);
265 return (jlong)request;
266 }
267
268 JNIEXPORT jlong JNICALL Java_mpi_File_iWriteAtAll(
269 JNIEnv *env, jobject jthis, jlong fh, jlong offset,
270 jobject buf, jint count, jlong type)
271 {
272 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
273 MPI_Request request;
274
275 int rc = MPI_File_iwrite_at_all((MPI_File)fh, (MPI_Offset)offset,
276 ptr, count, (MPI_Datatype)type, &request);
277
278 ompi_java_exceptionCheck(env, rc);
279 return (jlong)request;
280 }
281
282 JNIEXPORT void JNICALL Java_mpi_File_read(
283 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jboolean db,
284 jint off, jint count, jlong jType, jint bType, jlongArray stat)
285 {
286 jboolean exception;
287 MPI_Datatype type = (MPI_Datatype)jType;
288 void *ptr;
289 ompi_java_buffer_t *item;
290 ompi_java_getWritePtr(&ptr, &item, env, buf, db, count, type);
291 MPI_Status status;
292 int rc = MPI_File_read((MPI_File)fh, ptr, count, type, &status);
293 exception = ompi_java_exceptionCheck(env, rc);
294 ompi_java_releaseWritePtr(ptr, item, env, buf, db, off, count, type, bType);
295
296 if(!exception)
297 ompi_java_status_set(env, stat, &status);
298 }
299
300 JNIEXPORT void JNICALL Java_mpi_File_readAll(
301 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jboolean db,
302 jint off, jint count, jlong jType, jint bType, jlongArray stat)
303 {
304 jboolean exception;
305 MPI_Datatype type = (MPI_Datatype)jType;
306 void *ptr;
307 ompi_java_buffer_t *item;
308 ompi_java_getWritePtr(&ptr, &item, env, buf, db, count, type);
309 MPI_Status status;
310 int rc = MPI_File_read_all((MPI_File)fh, ptr, count, type, &status);
311 exception = ompi_java_exceptionCheck(env, rc);
312 ompi_java_releaseWritePtr(ptr, item, env, buf, db, off, count, type, bType);
313
314 if(!exception)
315 ompi_java_status_set(env, stat, &status);
316 }
317
318 JNIEXPORT void JNICALL Java_mpi_File_write(
319 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jboolean db,
320 jint off, jint count, jlong jType, jint bType, jlongArray stat)
321 {
322 jboolean exception;
323 MPI_Datatype type = (MPI_Datatype)jType;
324 void *ptr;
325 ompi_java_buffer_t *item;
326 ompi_java_getReadPtr(&ptr, &item, env, buf, db, off, count, type, bType);
327 MPI_Status status;
328 int rc = MPI_File_write((MPI_File)fh, ptr, count, type, &status);
329 exception = ompi_java_exceptionCheck(env, rc);
330 ompi_java_releaseReadPtr(ptr, item, buf, db);
331
332 if(!exception)
333 ompi_java_status_set(env, stat, &status);
334 }
335
336 JNIEXPORT void JNICALL Java_mpi_File_writeAll(
337 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jboolean db,
338 jint off, jint count, jlong jType, jint bType, jlongArray stat)
339 {
340 jboolean exception;
341 MPI_Datatype type = (MPI_Datatype)jType;
342 void *ptr;
343 ompi_java_buffer_t *item;
344 ompi_java_getReadPtr(&ptr, &item, env, buf, db, off, count, type, bType);
345 MPI_Status status;
346 int rc = MPI_File_write_all((MPI_File)fh, ptr, count, type, &status);
347 exception = ompi_java_exceptionCheck(env, rc);
348 ompi_java_releaseReadPtr(ptr, item, buf, db);
349
350 if(!exception)
351 ompi_java_status_set(env, stat, &status);
352 }
353
354 JNIEXPORT jlong JNICALL Java_mpi_File_iRead(
355 JNIEnv *env, jobject jthis, jlong fh,
356 jobject buf, jint count, jlong type)
357 {
358 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
359 MPI_Request request;
360
361 int rc = MPI_File_iread((MPI_File)fh, ptr, count,
362 (MPI_Datatype)type, &request);
363
364 ompi_java_exceptionCheck(env, rc);
365 return (jlong)request;
366 }
367
368 JNIEXPORT jlong JNICALL Java_mpi_File_iReadAll(
369 JNIEnv *env, jobject jthis, jlong fh,
370 jobject buf, jint count, jlong type)
371 {
372 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
373 MPI_Request request;
374
375 int rc = MPI_File_iread_all((MPI_File)fh, ptr, count,
376 (MPI_Datatype)type, &request);
377
378 ompi_java_exceptionCheck(env, rc);
379 return (jlong)request;
380 }
381
382 JNIEXPORT jlong JNICALL Java_mpi_File_iWrite(
383 JNIEnv *env, jobject jthis, jlong fh,
384 jobject buf, jint count, jlong type)
385 {
386 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
387 MPI_Request request;
388
389 int rc = MPI_File_iwrite((MPI_File)fh, ptr, count,
390 (MPI_Datatype)type, &request);
391
392 ompi_java_exceptionCheck(env, rc);
393 return (jlong)request;
394 }
395
396 JNIEXPORT jlong JNICALL Java_mpi_File_iWriteAll(
397 JNIEnv *env, jobject jthis, jlong fh,
398 jobject buf, jint count, jlong type)
399 {
400 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
401 MPI_Request request;
402
403 int rc = MPI_File_iwrite_all((MPI_File)fh, ptr, count,
404 (MPI_Datatype)type, &request);
405
406 ompi_java_exceptionCheck(env, rc);
407 return (jlong)request;
408 }
409
410 JNIEXPORT void JNICALL Java_mpi_File_seek(
411 JNIEnv *env, jobject jthis, jlong fh, jlong offset, jint whence)
412 {
413 int rc = MPI_File_seek((MPI_File)fh, (MPI_Offset)offset, whence);
414 ompi_java_exceptionCheck(env, rc);
415 }
416
417 JNIEXPORT jlong JNICALL Java_mpi_File_getPosition(
418 JNIEnv *env, jobject jthis, jlong fh)
419 {
420 MPI_Offset offset;
421 int rc = MPI_File_get_position((MPI_File)fh, &offset);
422 ompi_java_exceptionCheck(env, rc);
423 return (jlong)offset;
424 }
425
426 JNIEXPORT jlong JNICALL Java_mpi_File_getByteOffset(
427 JNIEnv *env, jobject jthis, jlong fh, jlong offset)
428 {
429 MPI_Offset disp;
430 int rc = MPI_File_get_byte_offset((MPI_File)fh, (MPI_Offset)offset, &disp);
431 ompi_java_exceptionCheck(env, rc);
432 return (jlong)disp;
433 }
434
435 JNIEXPORT void JNICALL Java_mpi_File_readShared(
436 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jboolean db,
437 jint off, jint count, jlong jType, jint bType, jlongArray stat)
438 {
439 jboolean exception;
440 MPI_Datatype type = (MPI_Datatype)jType;
441 void *ptr;
442 ompi_java_buffer_t *item;
443 ompi_java_getWritePtr(&ptr, &item, env, buf, db, count, type);
444 MPI_Status status;
445 int rc = MPI_File_read_shared((MPI_File)fh, ptr, count, type, &status);
446 exception = ompi_java_exceptionCheck(env, rc);
447 ompi_java_releaseWritePtr(ptr, item, env, buf, db, off, count, type, bType);
448
449 if(!exception)
450 ompi_java_status_set(env, stat, &status);
451 }
452
453 JNIEXPORT void JNICALL Java_mpi_File_writeShared(
454 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jboolean db,
455 jint off, jint count, jlong jType, jint bType, jlongArray stat)
456 {
457 jboolean exception;
458 MPI_Datatype type = (MPI_Datatype)jType;
459 void *ptr;
460 ompi_java_buffer_t *item;
461 ompi_java_getReadPtr(&ptr, &item, env, buf, db, off, count, type, bType);
462 MPI_Status status;
463 int rc = MPI_File_write_shared((MPI_File)fh, ptr, count, type, &status);
464 exception = ompi_java_exceptionCheck(env, rc);
465 ompi_java_releaseReadPtr(ptr, item, buf, db);
466
467 if(!exception)
468 ompi_java_status_set(env, stat, &status);
469 }
470
471 JNIEXPORT jlong JNICALL Java_mpi_File_iReadShared(
472 JNIEnv *env, jobject jthis, jlong fh,
473 jobject buf, jint count, jlong type)
474 {
475 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
476 MPI_Request request;
477
478 int rc = MPI_File_iread_shared((MPI_File)fh, ptr, count,
479 (MPI_Datatype)type, &request);
480
481 ompi_java_exceptionCheck(env, rc);
482 return (jlong)request;
483 }
484
485 JNIEXPORT jlong JNICALL Java_mpi_File_iWriteShared(
486 JNIEnv *env, jobject jthis, jlong fh,
487 jobject buf, jint count, jlong type)
488 {
489 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
490 MPI_Request request;
491
492 int rc = MPI_File_iwrite_shared((MPI_File)fh, ptr, count,
493 (MPI_Datatype)type, &request);
494
495 ompi_java_exceptionCheck(env, rc);
496 return (jlong)request;
497 }
498
499 JNIEXPORT void JNICALL Java_mpi_File_readOrdered(
500 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jboolean db,
501 jint off, jint count, jlong jType, jint bType, jlongArray stat)
502 {
503 jboolean exception;
504 MPI_Datatype type = (MPI_Datatype)jType;
505 void *ptr;
506 ompi_java_buffer_t *item;
507 ompi_java_getWritePtr(&ptr, &item, env, buf, db, count, type);
508 MPI_Status status;
509 int rc = MPI_File_read_ordered((MPI_File)fh, ptr, count, type, &status);
510 exception = ompi_java_exceptionCheck(env, rc);
511 ompi_java_releaseWritePtr(ptr, item, env, buf, db, off, count, type, bType);
512
513 if(!exception)
514 ompi_java_status_set(env, stat, &status);
515 }
516
517 JNIEXPORT void JNICALL Java_mpi_File_writeOrdered(
518 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jboolean db,
519 jint off, jint count, jlong jType, jint bType, jlongArray stat)
520 {
521 jboolean exception;
522 MPI_Datatype type = (MPI_Datatype)jType;
523 void *ptr;
524 ompi_java_buffer_t *item;
525 ompi_java_getReadPtr(&ptr, &item, env, buf, db, off, count, type, bType);
526 MPI_Status status;
527 int rc = MPI_File_write_ordered((MPI_File)fh, ptr, count, type, &status);
528 exception = ompi_java_exceptionCheck(env, rc);
529 ompi_java_releaseReadPtr(ptr, item, buf, db);
530
531 if(!exception)
532 ompi_java_status_set(env, stat, &status);
533 }
534
535 JNIEXPORT void JNICALL Java_mpi_File_seekShared(
536 JNIEnv *env, jobject jthis, jlong fh, jlong offset, jint whence)
537 {
538 int rc = MPI_File_seek_shared((MPI_File)fh, (MPI_Offset)offset, whence);
539 ompi_java_exceptionCheck(env, rc);
540 }
541
542 JNIEXPORT jlong JNICALL Java_mpi_File_getPositionShared(
543 JNIEnv *env, jobject jthis, jlong fh)
544 {
545 MPI_Offset offset;
546 int rc = MPI_File_get_position_shared((MPI_File)fh, &offset);
547 ompi_java_exceptionCheck(env, rc);
548 return (jlong)offset;
549 }
550
551 JNIEXPORT void JNICALL Java_mpi_File_readAtAllBegin(
552 JNIEnv *env, jobject jthis, jlong fh, jlong offset,
553 jobject buf, jint count, jlong type)
554 {
555 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
556
557 int rc = MPI_File_read_at_all_begin((MPI_File)fh, (MPI_Offset)offset,
558 ptr, count, (MPI_Datatype)type);
559 ompi_java_exceptionCheck(env, rc);
560 }
561
562 JNIEXPORT void JNICALL Java_mpi_File_readAtAllEnd(
563 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jlongArray stat)
564 {
565 MPI_Status status;
566 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
567 int rc = MPI_File_read_at_all_end((MPI_File)fh, ptr, &status);
568
569 if(!ompi_java_exceptionCheck(env, rc))
570 ompi_java_status_set(env, stat, &status);
571 }
572
573 JNIEXPORT void JNICALL Java_mpi_File_writeAtAllBegin(
574 JNIEnv *env, jobject jthis, jlong fh, jlong fileOffset,
575 jobject buf, jint count, jlong type)
576 {
577 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
578
579 int rc = MPI_File_write_at_all_begin((MPI_File)fh, (MPI_Offset)fileOffset,
580 ptr, count, (MPI_Datatype)type);
581 ompi_java_exceptionCheck(env, rc);
582 }
583
584 JNIEXPORT void JNICALL Java_mpi_File_writeAtAllEnd(
585 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jlongArray stat)
586 {
587 MPI_Status status;
588 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
589 int rc = MPI_File_write_at_all_end((MPI_File)fh, ptr, &status);
590
591 if(!ompi_java_exceptionCheck(env, rc))
592 ompi_java_status_set(env, stat, &status);
593 }
594
595 JNIEXPORT void JNICALL Java_mpi_File_readAllBegin(
596 JNIEnv *env, jobject jthis, jlong fh,
597 jobject buf, jint count, jlong type)
598 {
599 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
600
601 int rc = MPI_File_read_all_begin(
602 (MPI_File)fh, ptr, count, (MPI_Datatype)type);
603
604 ompi_java_exceptionCheck(env, rc);
605 }
606
607 JNIEXPORT void JNICALL Java_mpi_File_readAllEnd(
608 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jlongArray stat)
609 {
610 MPI_Status status;
611 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
612 int rc = MPI_File_read_all_end((MPI_File)fh, ptr, &status);
613
614 if(!ompi_java_exceptionCheck(env, rc))
615 ompi_java_status_set(env, stat, &status);
616 }
617
618 JNIEXPORT void JNICALL Java_mpi_File_writeAllBegin(
619 JNIEnv *env, jobject jthis, jlong fh,
620 jobject buf, jint count, jlong type)
621 {
622 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
623
624 int rc = MPI_File_write_all_begin(
625 (MPI_File)fh, ptr, count, (MPI_Datatype)type);
626
627 ompi_java_exceptionCheck(env, rc);
628 }
629
630 JNIEXPORT void JNICALL Java_mpi_File_writeAllEnd(
631 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jlongArray stat)
632 {
633 MPI_Status status;
634 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
635 int rc = MPI_File_write_all_end((MPI_File)fh, ptr, &status);
636
637 if(!ompi_java_exceptionCheck(env, rc))
638 ompi_java_status_set(env, stat, &status);
639 }
640
641 JNIEXPORT void JNICALL Java_mpi_File_readOrderedBegin(
642 JNIEnv *env, jobject jthis, jlong fh,
643 jobject buf, jint count, jlong type)
644 {
645 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
646
647 int rc = MPI_File_read_ordered_begin(
648 (MPI_File)fh, ptr, count, (MPI_Datatype)type);
649
650 ompi_java_exceptionCheck(env, rc);
651 }
652
653 JNIEXPORT void JNICALL Java_mpi_File_readOrderedEnd(
654 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jlongArray stat)
655 {
656 MPI_Status status;
657 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
658 int rc = MPI_File_read_ordered_end((MPI_File)fh, ptr, &status);
659
660 if(!ompi_java_exceptionCheck(env, rc))
661 ompi_java_status_set(env, stat, &status);
662 }
663
664 JNIEXPORT void JNICALL Java_mpi_File_writeOrderedBegin(
665 JNIEnv *env, jobject jthis, jlong fh,
666 jobject buf, jint count, jlong type)
667 {
668 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
669
670 int rc = MPI_File_write_ordered_begin(
671 (MPI_File)fh, ptr, count, (MPI_Datatype)type);
672
673 ompi_java_exceptionCheck(env, rc);
674 }
675
676 JNIEXPORT void JNICALL Java_mpi_File_writeOrderedEnd(
677 JNIEnv *env, jobject jthis, jlong fh, jobject buf, jlongArray stat)
678 {
679 MPI_Status status;
680 void *ptr = (*env)->GetDirectBufferAddress(env, buf);
681 int rc = MPI_File_write_ordered_end((MPI_File)fh, ptr, &status);
682
683 if(!ompi_java_exceptionCheck(env, rc))
684 ompi_java_status_set(env, stat, &status);
685 }
686
687 JNIEXPORT jint JNICALL Java_mpi_File_getTypeExtent(
688 JNIEnv *env, jobject jthis, jlong fh, jlong type)
689 {
690 MPI_Aint extent;
691
692 int rc = MPI_File_get_type_extent(
693 (MPI_File)fh, (MPI_Datatype)type, &extent);
694
695 ompi_java_exceptionCheck(env, rc);
696 return (int)extent;
697 }
698
699 JNIEXPORT void JNICALL Java_mpi_File_setAtomicity(
700 JNIEnv *env, jobject jthis, jlong fh, jboolean atomicity)
701 {
702 int rc = MPI_File_set_atomicity((MPI_File)fh, atomicity);
703 ompi_java_exceptionCheck(env, rc);
704 }
705
706 JNIEXPORT jboolean JNICALL Java_mpi_File_getAtomicity(
707 JNIEnv *env, jobject jthis, jlong fh)
708 {
709 int atomicity;
710 int rc = MPI_File_get_atomicity((MPI_File)fh, &atomicity);
711 ompi_java_exceptionCheck(env, rc);
712 return atomicity ? JNI_TRUE : JNI_FALSE;
713 }
714
715 JNIEXPORT void JNICALL Java_mpi_File_sync(
716 JNIEnv *env, jobject jthis, jlong fh)
717 {
718 int rc = MPI_File_sync((MPI_File)fh);
719 ompi_java_exceptionCheck(env, rc);
720 }
721
722 JNIEXPORT void JNICALL Java_mpi_File_setErrhandler(
723 JNIEnv *env, jobject jthis, jlong fh, jlong errhandler)
724 {
725 int rc = MPI_File_set_errhandler(
726 (MPI_File)fh, (MPI_Errhandler)errhandler);
727
728 ompi_java_exceptionCheck(env, rc);
729 }
730
731 JNIEXPORT jlong JNICALL Java_mpi_File_getErrhandler(
732 JNIEnv *env, jobject jthis, jlong fh)
733 {
734 MPI_Errhandler errhandler;
735 int rc = MPI_File_get_errhandler((MPI_File)fh, &errhandler);
736 ompi_java_exceptionCheck(env, rc);
737 return (jlong)errhandler;
738 }
739
740 JNIEXPORT void JNICALL Java_mpi_File_callErrhandler(
741 JNIEnv *env, jobject jthis, jlong fh, jint errorCode)
742 {
743 int rc = MPI_File_call_errhandler((MPI_File)fh, errorCode);
744 ompi_java_exceptionCheck(env, rc);
745 }