#include <bindings.dsl.h>
#include <apr_anylock.h>
module Bindings.APR.AnyLock where
#strict_import
import Bindings.APR.ErrNo
import Bindings.APR.Proc.Mutex
import Bindings.APR.Thread.Mutex
import Bindings.APR.Thread.RWLock
#synonym_t tm_lock, CInt
#num apr_anylock_none
#num apr_anylock_procmutex
#num apr_anylock_readlock
#num apr_anylock_writelock
#starttype union apr_anylock_u_t
# union_field pm, Ptr <apr_proc_mutex_t>
# if APR_HAS_THREADS
# union_field tm, Ptr <apr_thread_mutex_t>
# union_field rw, Ptr <apr_thread_rwlock_t>
# endif
#stoptype
#starttype struct apr_anylock_t
#field type, <tm_lock>
#field lock, <apr_anylock_u_t>
#stoptype
#cinline APR_ANYLOCK_LOCK , Ptr <apr_anylock_t> -> IO <apr_status_t>
#cinline APR_ANYLOCK_TRYLOCK, Ptr <apr_anylock_t> -> IO <apr_status_t>
#cinline APR_ANYLOCK_UNLOCK , Ptr <apr_anylock_t> -> IO <apr_status_t>