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

#ifndef _Included_jtux_UDir
#define _Included_jtux_UDir
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     jtux_UDir
 * Method:    closedir
 * Signature: (J)V
 */
JNIEXPORT void JNICALL Java_jtux_UDir_closedir
  (JNIEnv *, jclass, jlong);

/*
 * Class:     jtux_UDir
 * Method:    mkdir
 * Signature: (Ljava/lang/String;I)V
 */
JNIEXPORT void JNICALL Java_jtux_UDir_mkdir
  (JNIEnv *, jclass, jstring, jint);

/*
 * Class:     jtux_UDir
 * Method:    opendir
 * Signature: (Ljava/lang/String;)J
 */
JNIEXPORT jlong JNICALL Java_jtux_UDir_opendir
  (JNIEnv *, jclass, jstring);

/*
 * Class:     jtux_UDir
 * Method:    readdir
 * Signature: (J)Ljtux/UDir$s_dirent;
 */
JNIEXPORT jobject JNICALL Java_jtux_UDir_readdir
  (JNIEnv *, jclass, jlong);

/*
 * Class:     jtux_UDir
 * Method:    rewinddir
 * Signature: (J)V
 */
JNIEXPORT void JNICALL Java_jtux_UDir_rewinddir
  (JNIEnv *, jclass, jlong);

/*
 * Class:     jtux_UDir
 * Method:    rmdir
 * Signature: (Ljava/lang/String;)V
 */
JNIEXPORT void JNICALL Java_jtux_UDir_rmdir
  (JNIEnv *, jclass, jstring);

/*
 * Class:     jtux_UDir
 * Method:    seekdir
 * Signature: (JJ)V
 */
JNIEXPORT void JNICALL Java_jtux_UDir_seekdir
  (JNIEnv *, jclass, jlong, jlong);

/*
 * Class:     jtux_UDir
 * Method:    telldir
 * Signature: (J)J
 */
JNIEXPORT jlong JNICALL Java_jtux_UDir_telldir
  (JNIEnv *, jclass, jlong);

#ifdef __cplusplus
}
#endif
#endif
