packages feed

bindings-apr-util-0.1: Bindings/APR/AnyLock.hsc

#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>