/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class org_kne_cloud_network_tun_WindowsTUNNetworkDevice */

#ifndef _Included_org_kne_cloud_network_tun_WindowsTUNNetworkDevice
#define _Included_org_kne_cloud_network_tun_WindowsTUNNetworkDevice
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    loadDriver
 * Signature: ()J
 */
JNIEXPORT jlong JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_loadDriver
  (JNIEnv *, jclass);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    unloadDriver
 * Signature: (J)V
 */
JNIEXPORT void JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_unloadDriver
  (JNIEnv *, jclass, jlong);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    openTUNDevice
 * Signature: (Ljava/lang/String;Ljava/lang/String;JJ)J
 */
JNIEXPORT jlong JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_openTUNDevice
  (JNIEnv *, jobject, jstring, jstring, jlong, jlong);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    closeTUNDevice
 * Signature: (J)J
 */
JNIEXPORT jlong JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_closeTUNDevice
  (JNIEnv *, jobject, jlong);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    openSession
 * Signature: (J)J
 */
JNIEXPORT jlong JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_openSession
  (JNIEnv *, jobject, jlong);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    closeSession
 * Signature: (J)J
 */
JNIEXPORT jlong JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_closeSession
  (JNIEnv *, jobject, jlong);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    readAvaliable
 * Signature: (J)Z
 */
JNIEXPORT jboolean JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_readAvaliable
  (JNIEnv *, jobject, jlong);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    waitForReadAvaliable
 * Signature: (J)Z
 */
JNIEXPORT jboolean JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_waitForReadAvaliable
  (JNIEnv *, jobject, jlong);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    read0
 * Signature: (JLjava/nio/ByteBuffer;)I
 */
JNIEXPORT jint JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_read0
  (JNIEnv *, jobject, jlong, jobject);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    writeAvaliable
 * Signature: (J)Z
 */
JNIEXPORT jboolean JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_writeAvaliable
  (JNIEnv *, jobject, jlong);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    write0
 * Signature: (JLjava/nio/ByteBuffer;)I
 */
JNIEXPORT jint JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_write0
  (JNIEnv *, jobject, jlong, jobject);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    setTUNDeviceIPAddressV6
 * Signature: (J[BI)I
 */
JNIEXPORT jint JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_setTUNDeviceIPAddressV6
  (JNIEnv *, jobject, jlong, jbyteArray, jint);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    getMTU0
 * Signature: (J)I
 */
JNIEXPORT jint JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_getMTU0
  (JNIEnv *, jobject, jlong);

/*
 * Class:     org_kne_cloud_network_tun_WindowsTUNNetworkDevice
 * Method:    setMTU0
 * Signature: (JI)V
 */
JNIEXPORT void JNICALL Java_org_kne_cloud_network_tun_WindowsTUNNetworkDevice_setMTU0
  (JNIEnv *, jobject, jlong, jint);

#ifdef __cplusplus
}
#endif
#endif
