#include jlong cryfs_init(JNIEnv* env, jstring jbaseDir, jstring jlocalSateDir, jbyteArray jpassword, jboolean createBaseDir, jstring jcipher); jlong cryfs_create(JNIEnv* env, jlong fusePtr, jstring jpath, mode_t mode); jlong cryfs_open(JNIEnv* env, jlong fusePtr, jstring jpath, jint flags); jint cryfs_read(JNIEnv* env, jlong fusePtr, jlong fileHandle, jbyteArray jbuffer, jlong offset); jint cryfs_write(JNIEnv* env, jlong fusePtr, jlong fileHandle, jlong offset, jbyteArray jbuffer, jint size); jint cryfs_truncate(JNIEnv* env, jlong fusePtr, jstring jpath, jlong size); jint cryfs_unlink(JNIEnv* env, jlong fusePtr, jstring jpath); jint cryfs_release(jlong fusePtr, jlong fileHandle); jlong cryfs_readdir(JNIEnv* env, jlong fusePtr, jstring jpath ,void* data, int(void*, const char*, const struct stat*)); jint cryfs_mkdir(JNIEnv* env, jlong fusePtr, jstring jpath, mode_t mode); jint cryfs_rmdir(JNIEnv* env, jlong fusePtr, jstring jpath); jint cryfs_getattr(JNIEnv* env, jlong fusePtr, jstring jpath, struct stat* stat); jint cryfs_rename(JNIEnv* env, jlong fusePtr, jstring jsrcPath, jstring jdstPath); void cryfs_destroy(jlong fusePtr); jboolean cryfs_is_closed(jlong fusePtr);