< prev index next >
src/java.base/unix/native/libnio/ch/FileChannelImpl.c
Print this page
*** 274,278 ****
--- 274,306 ----
#else
return IOS_UNSUPPORTED_CASE;
#endif
}
+ JNIEXPORT jint JNICALL
+ Java_sun_nio_ch_FileChannelImpl_setDirect0(JNIEnv *env, jobject this, jobject fObj)
+ {
+ jint fd = fdval(env, fObj);
+ jint result;
+
+ #ifdef O_DIRECT
+ result = fcntl(fd, F_SETFL, O_DIRECT);
+ if (result == -1) {
+ JNU_ThrowIOExceptionWithLastError(env, "DirectIO setup failed");
+ }
+ return result;
+ #elif F_NOCACHE
+ result = fcntl(fd, F_NOCACHE, 1);
+ if (result == -1) {
+ JNU_ThrowIOExceptionWithLastError(env, "DirectIO setup failed");
+ }
+ return result;
+ //#elif DIRECTIO_ON
+ // result = directio(fd, DIRECTIO_ON);
+ // if (result == -1) {
+ // JNU_ThrowIOExceptionWithLastError(env, "DirectIO setup failed");
+ // }
+ return result;
+ #else
+ return -1;
+ #endif
+ }
< prev index next >