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

#include <jni.h>

#ifndef __gnu_java_nio_KqueueSelectorImpl__
#define __gnu_java_nio_KqueueSelectorImpl__

#ifdef __cplusplus
extern "C"
{
#endif

JNIEXPORT jboolean JNICALL Java_gnu_java_nio_KqueueSelectorImpl_kqueue_1supported (JNIEnv *env, jclass);
JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_sizeof_1struct_1kevent (JNIEnv *env, jclass);
JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_implOpen (JNIEnv *env, jclass);
JNIEXPORT void JNICALL Java_gnu_java_nio_KqueueSelectorImpl_implClose (JNIEnv *env, jclass, jint);
JNIEXPORT void JNICALL Java_gnu_java_nio_KqueueSelectorImpl_kevent_1set (JNIEnv *env, jclass, jobject, jint, jint, jint, jint, jint);
JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_kevent (JNIEnv *env, jclass, jint, jobject, jint, jint, jlong);
JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_fetch_1key (JNIEnv *env, jclass, jobject);
JNIEXPORT jint JNICALL Java_gnu_java_nio_KqueueSelectorImpl_ready_1ops (JNIEnv *env, jclass, jobject, jint);
JNIEXPORT jboolean JNICALL Java_gnu_java_nio_KqueueSelectorImpl_check_1eof (JNIEnv *env, jclass, jobject);

#undef gnu_java_nio_KqueueSelectorImpl_MAX_DOUBLING_CAPACITY
#define gnu_java_nio_KqueueSelectorImpl_MAX_DOUBLING_CAPACITY 16384L
#undef gnu_java_nio_KqueueSelectorImpl_CAP_INCREMENT
#define gnu_java_nio_KqueueSelectorImpl_CAP_INCREMENT 1024L
#undef gnu_java_nio_KqueueSelectorImpl_OP_ACCEPT
#define gnu_java_nio_KqueueSelectorImpl_OP_ACCEPT 16L
#undef gnu_java_nio_KqueueSelectorImpl_OP_CONNECT
#define gnu_java_nio_KqueueSelectorImpl_OP_CONNECT 8L
#undef gnu_java_nio_KqueueSelectorImpl_OP_READ
#define gnu_java_nio_KqueueSelectorImpl_OP_READ 1L
#undef gnu_java_nio_KqueueSelectorImpl_OP_WRITE
#define gnu_java_nio_KqueueSelectorImpl_OP_WRITE 4L

#ifdef __cplusplus
}
#endif

#endif /* __gnu_java_nio_KqueueSelectorImpl__ */
