package com.nativelibs4java.pthread;
import org.bridj.BridJ;
import org.bridj.Callback;
import org.bridj.Pointer;
import org.bridj.SizeT;
import org.bridj.TypedPointer;
import org.bridj.ann.Library;
import org.bridj.ann.Ptr;
import org.bridj.ann.Runtime;
import org.bridj.cpp.CPPRuntime;
import static org.bridj.Pointer.*;
/**
 * Wrapper for library <b>pthread</b><br>
 * This file was autogenerated by <a href="http://jnaerator.googlecode.com/">JNAerator</a>,<br>
 * a tool written by <a href="http://ochafik.free.fr/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses a few opensource projects.</a>.<br>
 * For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a> or <a href="http://bridj.googlecode.com/">BridJ</a> .
 */
@Library("pthread") 
@Runtime(CPPRuntime.class) 
public class PthreadLibrary {
	static {
		BridJ.register();
	}
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_CANCEL_DISABLE = 0;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_PROCESS_SHARED = 1;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_PRIO_PROTECT = 2;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_CANCEL_ENABLE = 1;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_MUTEX_RECURSIVE = 2;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_SCOPE_SYSTEM = 1;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_MUTEX_ERRORCHECK = 1;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_EXPLICIT_SCHED = 2;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_CANCEL_ASYNCHRONOUS = 0;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_PRIO_INHERIT = 1;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_SCOPE_PROCESS = 2;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_PROCESS_PRIVATE = 2;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_CREATE_JOINABLE = 1;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_INHERIT_SCHED = 1;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_PRIO_NONE = 0;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_MUTEX_NORMAL = 0;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_CREATE_DETACHED = 2;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final Pointer PTHREAD_CANCELED = pointerToAddress(1);
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_CANCEL_DEFERRED = 2;
	/// <i>native declaration : /usr/include/pthread.h</i>
	public static final int PTHREAD_MUTEX_DEFAULT = PthreadLibrary.PTHREAD_MUTEX_NORMAL;
	/// <i>native declaration : /usr/include/pthread.h:205</i>
	public static abstract class pthread_atfork_arg1_callback extends Callback<pthread_atfork_arg1_callback > {
		public abstract void apply();
	};
	/// <i>native declaration : /usr/include/pthread.h:205</i>
	public static abstract class pthread_atfork_arg2_callback extends Callback<pthread_atfork_arg2_callback > {
		public abstract void apply();
	};
	/// <i>native declaration : /usr/include/pthread.h:206</i>
	public static abstract class pthread_atfork_arg3_callback extends Callback<pthread_atfork_arg3_callback > {
		public abstract void apply();
	};
	/// <i>native declaration : /usr/include/pthread.h:261</i>
	public static abstract class pthread_create_arg1_callback extends Callback<pthread_create_arg1_callback > {
		public abstract Pointer<? > apply(Pointer<? > voidPtr1);
	};
	/// <i>native declaration : /usr/include/pthread.h:271</i>
	public static abstract class pthread_key_create_arg1_callback extends Callback<pthread_key_create_arg1_callback > {
		public abstract void apply(Pointer<? > voidPtr1);
	};
	/// <i>native declaration : /usr/include/pthread.h:290</i>
	public static abstract class pthread_once_arg1_callback extends Callback<pthread_once_arg1_callback > {
		public abstract void apply();
	};
	/// <i>native declaration : /usr/include/pthread.h:346</i>
	public static abstract class pthread_create_suspended_np_arg1_callback extends Callback<pthread_create_suspended_np_arg1_callback > {
		public abstract Pointer<? > apply(Pointer<? > voidPtr1);
	};
	public static native int pthread_atfork(Pointer<PthreadLibrary.pthread_atfork_arg1_callback > arg1, Pointer<PthreadLibrary.pthread_atfork_arg2_callback > arg2, Pointer<PthreadLibrary.pthread_atfork_arg3_callback > arg3);
	public static native int pthread_attr_destroy(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1);
	public static native int pthread_attr_getdetachstate(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_attr_getguardsize(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<SizeT > size_tPtr1);
	public static native int pthread_attr_getinheritsched(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_attr_getschedparam(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<PthreadLibrary.sched_param > sched_paramPtr1);
	public static native int pthread_attr_getschedpolicy(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_attr_getscope(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_attr_getstack(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<Pointer<? > > voidPtrPtr1, Pointer<SizeT > size_tPtr1);
	public static native int pthread_attr_getstackaddr(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<Pointer<? > > voidPtrPtr1);
	public static native int pthread_attr_getstacksize(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<SizeT > size_tPtr1);
	public static native int pthread_attr_init(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1);
	public static native int pthread_attr_setdetachstate(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, int int1);
	public static native int pthread_attr_setguardsize(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, @Ptr long size_t1);
	public static native int pthread_attr_setinheritsched(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, int int1);
	public static native int pthread_attr_setschedparam(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<PthreadLibrary.sched_param > sched_paramPtr1);
	public static native int pthread_attr_setschedpolicy(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, int int1);
	public static native int pthread_attr_setscope(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, int int1);
	public static native int pthread_attr_setstack(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<? > voidPtr1, @Ptr long size_t1);
	public static native int pthread_attr_setstackaddr(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<? > voidPtr1);
	public static native int pthread_attr_setstacksize(Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, @Ptr long size_t1);
	public static native int pthread_cancel();
	public static native int pthread_cond_broadcast(Pointer<PthreadLibrary._opaque_pthread_cond_t > pthread_cond_tPtr1);
	public static native int pthread_cond_destroy(Pointer<PthreadLibrary._opaque_pthread_cond_t > pthread_cond_tPtr1);
	public static native int pthread_cond_init(Pointer<PthreadLibrary._opaque_pthread_cond_t > pthread_cond_tPtr1, Pointer<PthreadLibrary._opaque_pthread_condattr_t > pthread_condattr_tPtr1);
	public static native int pthread_cond_signal(Pointer<PthreadLibrary._opaque_pthread_cond_t > pthread_cond_tPtr1);
	public static native int pthread_cond_timedwait(Pointer<PthreadLibrary._opaque_pthread_cond_t > pthread_cond_tPtr1, Pointer<PthreadLibrary._opaque_pthread_mutex_t > pthread_mutex_tPtr1, Pointer<PthreadLibrary.timespec > timespecPtr1);
	public static native int pthread_cond_wait(Pointer<PthreadLibrary._opaque_pthread_cond_t > pthread_cond_tPtr1, Pointer<PthreadLibrary._opaque_pthread_mutex_t > pthread_mutex_tPtr1);
	public static native int pthread_condattr_destroy(Pointer<PthreadLibrary._opaque_pthread_condattr_t > pthread_condattr_tPtr1);
	public static native int pthread_condattr_init(Pointer<PthreadLibrary._opaque_pthread_condattr_t > pthread_condattr_tPtr1);
	public static native int pthread_condattr_getpshared(Pointer<PthreadLibrary._opaque_pthread_condattr_t > pthread_condattr_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_condattr_setpshared(Pointer<PthreadLibrary._opaque_pthread_condattr_t > pthread_condattr_tPtr1, int int1);
	public static native int pthread_create(Pointer<Pointer<PthreadLibrary._opaque_pthread_t > > pthread_tPtr1, Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<PthreadLibrary.pthread_create_arg1_callback > arg1, Pointer<? > voidPtr1);
	public static native int pthread_detach();
	public static native int pthread_equal();
	public static native void pthread_exit(Pointer<? > voidPtr1);
	public static native int pthread_getconcurrency();
	public static native int pthread_getschedparam(Pointer<Integer > intPtr1, Pointer<PthreadLibrary.sched_param > sched_paramPtr1);
	public static native Pointer<? > pthread_getspecific();
	public static native int pthread_join(Pointer<Pointer<? > > voidPtrPtr1);
	public static native int pthread_key_create(Pointer<SizeT > pthread_key_tPtr1, Pointer<PthreadLibrary.pthread_key_create_arg1_callback > arg1);
	public static native int pthread_key_delete();
	public static native int pthread_mutex_destroy(Pointer<PthreadLibrary._opaque_pthread_mutex_t > pthread_mutex_tPtr1);
	public static native int pthread_mutex_getprioceiling(Pointer<PthreadLibrary._opaque_pthread_mutex_t > pthread_mutex_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_mutex_init(Pointer<PthreadLibrary._opaque_pthread_mutex_t > pthread_mutex_tPtr1, Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1);
	public static native int pthread_mutex_lock(Pointer<PthreadLibrary._opaque_pthread_mutex_t > pthread_mutex_tPtr1);
	public static native int pthread_mutex_setprioceiling(Pointer<PthreadLibrary._opaque_pthread_mutex_t > pthread_mutex_tPtr1, int int1, Pointer<Integer > intPtr1);
	public static native int pthread_mutex_trylock(Pointer<PthreadLibrary._opaque_pthread_mutex_t > pthread_mutex_tPtr1);
	public static native int pthread_mutex_unlock(Pointer<PthreadLibrary._opaque_pthread_mutex_t > pthread_mutex_tPtr1);
	public static native int pthread_mutexattr_destroy(Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1);
	public static native int pthread_mutexattr_getprioceiling(Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_mutexattr_getprotocol(Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_mutexattr_getpshared(Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_mutexattr_gettype(Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_mutexattr_init(Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1);
	public static native int pthread_mutexattr_setprioceiling(Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1, int int1);
	public static native int pthread_mutexattr_setprotocol(Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1, int int1);
	public static native int pthread_mutexattr_setpshared(Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1, int int1);
	public static native int pthread_mutexattr_settype(Pointer<PthreadLibrary._opaque_pthread_mutexattr_t > pthread_mutexattr_tPtr1, int int1);
	public static native int pthread_once(Pointer<PthreadLibrary._opaque_pthread_once_t > pthread_once_tPtr1, Pointer<PthreadLibrary.pthread_once_arg1_callback > arg1);
	public static native int pthread_rwlock_destroy(Pointer<PthreadLibrary._opaque_pthread_rwlock_t > pthread_rwlock_tPtr1);
	public static native int pthread_rwlock_init(Pointer<PthreadLibrary._opaque_pthread_rwlock_t > pthread_rwlock_tPtr1, Pointer<PthreadLibrary._opaque_pthread_rwlockattr_t > pthread_rwlockattr_tPtr1);
	public static native int pthread_rwlock_rdlock(Pointer<PthreadLibrary._opaque_pthread_rwlock_t > pthread_rwlock_tPtr1);
	public static native int pthread_rwlock_tryrdlock(Pointer<PthreadLibrary._opaque_pthread_rwlock_t > pthread_rwlock_tPtr1);
	public static native int pthread_rwlock_trywrlock(Pointer<PthreadLibrary._opaque_pthread_rwlock_t > pthread_rwlock_tPtr1);
	public static native int pthread_rwlock_wrlock(Pointer<PthreadLibrary._opaque_pthread_rwlock_t > pthread_rwlock_tPtr1);
	public static native int pthread_rwlock_unlock(Pointer<PthreadLibrary._opaque_pthread_rwlock_t > pthread_rwlock_tPtr1);
	public static native int pthread_rwlockattr_destroy(Pointer<PthreadLibrary._opaque_pthread_rwlockattr_t > pthread_rwlockattr_tPtr1);
	public static native int pthread_rwlockattr_getpshared(Pointer<PthreadLibrary._opaque_pthread_rwlockattr_t > pthread_rwlockattr_tPtr1, Pointer<Integer > intPtr1);
	public static native int pthread_rwlockattr_init(Pointer<PthreadLibrary._opaque_pthread_rwlockattr_t > pthread_rwlockattr_tPtr1);
	public static native int pthread_rwlockattr_setpshared(Pointer<PthreadLibrary._opaque_pthread_rwlockattr_t > pthread_rwlockattr_tPtr1, int int1);
	public static native PthreadLibrary.pthread_t pthread_self();
	public static native int pthread_setcancelstate(int int1, Pointer<Integer > intPtr1);
	public static native int pthread_setcanceltype(int int1, Pointer<Integer > intPtr1);
	public static native int pthread_setconcurrency(int int1);
	public static native int pthread_setschedparam(int int1, Pointer<PthreadLibrary.sched_param > sched_paramPtr1);
	public static native int pthread_setspecific(Pointer<? > voidPtr1);
	public static native void pthread_testcancel();
	public static native int pthread_is_threaded_np();
	public static native int pthread_threadid_np(Pointer<Long > __uint64_tPtr1);
	public static native int pthread_getname_np(Pointer<Byte > charPtr1, @Ptr long size_t1);
	public static native int pthread_setname_np(Pointer<Byte > charPtr1);
	public static native int pthread_main_np();
	public static native int pthread_mach_thread_np();
	@Ptr 
	public static native long pthread_get_stacksize_np();
	public static native Pointer<? > pthread_get_stackaddr_np();
	public static native int pthread_cond_signal_thread_np(Pointer<PthreadLibrary._opaque_pthread_cond_t > pthread_cond_tPtr1);
	public static native int pthread_cond_timedwait_relative_np(Pointer<PthreadLibrary._opaque_pthread_cond_t > pthread_cond_tPtr1, Pointer<PthreadLibrary._opaque_pthread_mutex_t > pthread_mutex_tPtr1, Pointer<PthreadLibrary.timespec > timespecPtr1);
	public static native int pthread_create_suspended_np(Pointer<Pointer<PthreadLibrary._opaque_pthread_t > > pthread_tPtr1, Pointer<PthreadLibrary._opaque_pthread_attr_t > pthread_attr_tPtr1, Pointer<PthreadLibrary.pthread_create_suspended_np_arg1_callback > arg1, Pointer<? > voidPtr1);
	public static native int pthread_kill(int int1);
	public static native PthreadLibrary.pthread_t pthread_from_mach_thread_np();
	public static native int pthread_sigmask(int int1, Pointer<Integer > sigset_tPtr1, Pointer<Integer > sigset_tPtr2);
	public static native void pthread_yield_np();
	/// Undefined type
	public static interface _opaque_pthread_condattr_t {
		
	};
	/// Undefined type
	public static interface sched_param {
		
	};
	/// Undefined type
	public static interface _opaque_pthread_attr_t {
		
	};
	/// Undefined type
	public static interface _opaque_pthread_rwlock_t {
		
	};
	/// Undefined type
	public static interface _opaque_pthread_rwlockattr_t {
		
	};
	/// Undefined type
	public static interface _opaque_pthread_cond_t {
		
	};
	/// Undefined type
	public static interface _opaque_pthread_t {
		
	};
	/// Undefined type
	public static interface timespec {
		
	};
	/// Undefined type
	public static interface _opaque_pthread_once_t {
		
	};
	/// Undefined type
	public static interface _opaque_pthread_mutexattr_t {
		
	};
	/// Undefined type
	public static interface _opaque_pthread_mutex_t {
		
	};
	/// Pointer to unknown (opaque) type
	public static class pthread_t extends TypedPointer {
		public pthread_t(long address) {
			super(address);
		}
		public pthread_t(Pointer address) {
			super(address);
		}
	};
}
