root/ompi/mpi/java/c/mpi_File.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. Java_mpi_File_open
  2. Java_mpi_File_close
  3. Java_mpi_File_delete
  4. Java_mpi_File_setSize
  5. Java_mpi_File_preallocate
  6. Java_mpi_File_getSize
  7. Java_mpi_File_getGroup
  8. Java_mpi_File_getAMode
  9. Java_mpi_File_setInfo
  10. Java_mpi_File_getInfo
  11. Java_mpi_File_setView
  12. Java_mpi_File_readAt
  13. Java_mpi_File_readAtAll
  14. Java_mpi_File_writeAt
  15. Java_mpi_File_writeAtAll
  16. Java_mpi_File_iReadAt
  17. Java_mpi_File_iReadAtAll
  18. Java_mpi_File_iWriteAt
  19. Java_mpi_File_iWriteAtAll
  20. Java_mpi_File_read
  21. Java_mpi_File_readAll
  22. Java_mpi_File_write
  23. Java_mpi_File_writeAll
  24. Java_mpi_File_iRead
  25. Java_mpi_File_iReadAll
  26. Java_mpi_File_iWrite
  27. Java_mpi_File_iWriteAll
  28. Java_mpi_File_seek
  29. Java_mpi_File_getPosition
  30. Java_mpi_File_getByteOffset
  31. Java_mpi_File_readShared
  32. Java_mpi_File_writeShared
  33. Java_mpi_File_iReadShared
  34. Java_mpi_File_iWriteShared
  35. Java_mpi_File_readOrdered
  36. Java_mpi_File_writeOrdered
  37. Java_mpi_File_seekShared
  38. Java_mpi_File_getPositionShared
  39. Java_mpi_File_readAtAllBegin
  40. Java_mpi_File_readAtAllEnd
  41. Java_mpi_File_writeAtAllBegin
  42. Java_mpi_File_writeAtAllEnd
  43. Java_mpi_File_readAllBegin
  44. Java_mpi_File_readAllEnd
  45. Java_mpi_File_writeAllBegin
  46. Java_mpi_File_writeAllEnd
  47. Java_mpi_File_readOrderedBegin
  48. Java_mpi_File_readOrderedEnd
  49. Java_mpi_File_writeOrderedBegin
  50. Java_mpi_File_writeOrderedEnd
  51. Java_mpi_File_getTypeExtent
  52. Java_mpi_File_setAtomicity
  53. Java_mpi_File_getAtomicity
  54. Java_mpi_File_sync
  55. Java_mpi_File_setErrhandler
  56. Java_mpi_File_getErrhandler
  57. Java_mpi_File_callErrhandler

   1 /*
   2  * Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
   3  *                         University Research and Technology
   4  *                         Corporation.  All rights reserved.
   5  * Copyright (c) 2004-2005 The University of Tennessee and The University
   6  *                         of Tennessee Research Foundation.  All rights
   7  *                         reserved.
   8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
   9  *                         University of Stuttgart.  All rights reserved.
  10  * Copyright (c) 2004-2005 The Regents of the University of California.
  11  *                         All rights reserved.
  12  * Copyright (c) 2016      Los Alamos National Security, LLC. All rights
  13  *                         reserved.
  14  * Copyright (c) 2017      FUJITSU LIMITED.  All rights reserved.
  15  * $COPYRIGHT$
  16  *
  17  * Additional copyrights may follow
  18  *
  19  * $HEADER$
  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 }

/* [<][>][^][v][top][bottom][index][help] */