/* DO NOT EDIT THIS FILE - it is machine generated */

#ifndef __gnu_java_nio_channels_FileChannelImpl__
#define __gnu_java_nio_channels_FileChannelImpl__

#include <jni.h>

#ifdef __cplusplus
extern "C"
{
#endif

JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_init (JNIEnv *env, jclass);
JNIEXPORT jint JNICALL Java_gnu_java_nio_channels_FileChannelImpl_open (JNIEnv *env, jobject, jstring, jint);
JNIEXPORT jint JNICALL Java_gnu_java_nio_channels_FileChannelImpl_available (JNIEnv *env, jobject);
JNIEXPORT jlong JNICALL Java_gnu_java_nio_channels_FileChannelImpl_implPosition (JNIEnv *env, jobject);
JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_seek (JNIEnv *env, jobject, jlong);
JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_implTruncate (JNIEnv *env, jobject, jlong);
JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_unlock (JNIEnv *env, jobject, jlong, jlong);
JNIEXPORT jlong JNICALL Java_gnu_java_nio_channels_FileChannelImpl_size (JNIEnv *env, jobject);
JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_implCloseChannel (JNIEnv *env, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_nio_channels_FileChannelImpl_read__ (JNIEnv *env, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_nio_channels_FileChannelImpl_read___3BII (JNIEnv *env, jobject, jbyteArray, jint, jint);
JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_write___3BII (JNIEnv *env, jobject, jbyteArray, jint, jint);
JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_write__I (JNIEnv *env, jobject, jint);
JNIEXPORT jobject JNICALL Java_gnu_java_nio_channels_FileChannelImpl_mapImpl (JNIEnv *env, jobject, jchar, jlong, jint);
JNIEXPORT void JNICALL Java_gnu_java_nio_channels_FileChannelImpl_force (JNIEnv *env, jobject);
JNIEXPORT jboolean JNICALL Java_gnu_java_nio_channels_FileChannelImpl_lock (JNIEnv *env, jobject, jlong, jlong, jboolean, jboolean);
#undef gnu_java_nio_channels_FileChannelImpl_READ
#define gnu_java_nio_channels_FileChannelImpl_READ 1L
#undef gnu_java_nio_channels_FileChannelImpl_WRITE
#define gnu_java_nio_channels_FileChannelImpl_WRITE 2L
#undef gnu_java_nio_channels_FileChannelImpl_APPEND
#define gnu_java_nio_channels_FileChannelImpl_APPEND 4L
#undef gnu_java_nio_channels_FileChannelImpl_EXCL
#define gnu_java_nio_channels_FileChannelImpl_EXCL 8L
#undef gnu_java_nio_channels_FileChannelImpl_SYNC
#define gnu_java_nio_channels_FileChannelImpl_SYNC 16L
#undef gnu_java_nio_channels_FileChannelImpl_DSYNC
#define gnu_java_nio_channels_FileChannelImpl_DSYNC 32L

#ifdef __cplusplus
}
#endif

#endif /* __gnu_java_nio_channels_FileChannelImpl__ */
