< prev index next >

src/java.base/unix/native/libnio/ch/FileChannelImpl.c

Print this page




 259             return IOS_UNAVAILABLE;
 260         if ((errno == EINVAL) && ((ssize_t)count >= 0))
 261             return IOS_UNSUPPORTED_CASE;
 262         if (errno == EINTR)
 263             return IOS_INTERRUPTED;
 264         if (errno == ENOTSOCK)
 265             return IOS_UNSUPPORTED;
 266         JNU_ThrowIOExceptionWithLastError(env, "Transfer failed");
 267         return IOS_THROWN;
 268     }
 269 
 270     if (sf_iobuf.bytes_sent > 0)
 271         return (jlong)sf_iobuf.bytes_sent;
 272 
 273     return IOS_UNSUPPORTED_CASE;
 274 #else
 275     return IOS_UNSUPPORTED_CASE;
 276 #endif
 277 }
 278 






























 259             return IOS_UNAVAILABLE;
 260         if ((errno == EINVAL) && ((ssize_t)count >= 0))
 261             return IOS_UNSUPPORTED_CASE;
 262         if (errno == EINTR)
 263             return IOS_INTERRUPTED;
 264         if (errno == ENOTSOCK)
 265             return IOS_UNSUPPORTED;
 266         JNU_ThrowIOExceptionWithLastError(env, "Transfer failed");
 267         return IOS_THROWN;
 268     }
 269 
 270     if (sf_iobuf.bytes_sent > 0)
 271         return (jlong)sf_iobuf.bytes_sent;
 272 
 273     return IOS_UNSUPPORTED_CASE;
 274 #else
 275     return IOS_UNSUPPORTED_CASE;
 276 #endif
 277 }
 278 
 279 JNIEXPORT jint JNICALL
 280 Java_sun_nio_ch_FileChannelImpl_setDirect0(JNIEnv *env, jobject this, jobject fObj)
 281 {
 282     jint fd = fdval(env, fObj);
 283     jint result;
 284 
 285 #ifdef O_DIRECT
 286     result = fcntl(fd, F_SETFL, O_DIRECT);
 287     if (result == -1) {
 288         JNU_ThrowIOExceptionWithLastError(env, "DirectIO setup failed");
 289     }
 290     return result;
 291 #elif F_NOCACHE
 292     result = fcntl(fd, F_NOCACHE, 1);
 293     if (result == -1) {
 294         JNU_ThrowIOExceptionWithLastError(env, "DirectIO setup failed");
 295     }
 296     return result;
 297 //#elif DIRECTIO_ON
 298 //    result = directio(fd, DIRECTIO_ON);
 299 //    if (result == -1) {
 300 //        JNU_ThrowIOExceptionWithLastError(env, "DirectIO setup failed");
 301 //    }
 302     return result;
 303 #else
 304     return -1;
 305 #endif
 306 }
< prev index next >