33 #include <fcntl.h>
34 #include "sun_nio_ch_FileChannelImpl.h"
35 #include "java_lang_Integer.h"
36 #include "nio.h"
37 #include "nio_util.h"
38 #include <dlfcn.h>
39
40 #if defined(__linux__) || defined(__solaris__)
41 #include <sys/sendfile.h>
42 #elif defined(_AIX)
43 #include <sys/socket.h>
44 #elif defined(_ALLBSD_SOURCE)
45 #include <sys/types.h>
46 #include <sys/socket.h>
47 #include <sys/uio.h>
48
49 #define lseek64 lseek
50 #define mmap64 mmap
51 #endif
52
53 static jfieldID chan_fd; /* jobject 'fd' in sun.io.FileChannelImpl */
54
55 JNIEXPORT jlong JNICALL
56 Java_sun_nio_ch_FileChannelImpl_initIDs(JNIEnv *env, jclass clazz)
57 {
58 jlong pageSize = sysconf(_SC_PAGESIZE);
59 chan_fd = (*env)->GetFieldID(env, clazz, "fd", "Ljava/io/FileDescriptor;");
60 return pageSize;
61 }
62
63 static jlong
64 handle(JNIEnv *env, jlong rv, char *msg)
65 {
66 if (rv >= 0)
67 return rv;
68 if (errno == EINTR)
69 return IOS_INTERRUPTED;
70 JNU_ThrowIOExceptionWithLastError(env, msg);
71 return IOS_THROWN;
72 }
73
|
33 #include <fcntl.h>
34 #include "sun_nio_ch_FileChannelImpl.h"
35 #include "java_lang_Integer.h"
36 #include "nio.h"
37 #include "nio_util.h"
38 #include <dlfcn.h>
39
40 #if defined(__linux__) || defined(__solaris__)
41 #include <sys/sendfile.h>
42 #elif defined(_AIX)
43 #include <sys/socket.h>
44 #elif defined(_ALLBSD_SOURCE)
45 #include <sys/types.h>
46 #include <sys/socket.h>
47 #include <sys/uio.h>
48
49 #define lseek64 lseek
50 #define mmap64 mmap
51 #endif
52
53 static jfieldID chan_fd; /* jobject 'fd' in sun.nio.ch.FileChannelImpl */
54
55 JNIEXPORT jlong JNICALL
56 Java_sun_nio_ch_FileChannelImpl_initIDs(JNIEnv *env, jclass clazz)
57 {
58 jlong pageSize = sysconf(_SC_PAGESIZE);
59 chan_fd = (*env)->GetFieldID(env, clazz, "fd", "Ljava/io/FileDescriptor;");
60 return pageSize;
61 }
62
63 static jlong
64 handle(JNIEnv *env, jlong rv, char *msg)
65 {
66 if (rv >= 0)
67 return rv;
68 if (errno == EINTR)
69 return IOS_INTERRUPTED;
70 JNU_ThrowIOExceptionWithLastError(env, msg);
71 return IOS_THROWN;
72 }
73
|