--- /dev/null
+#include <bindings.dsl.h>
+#include <apr_poll.h>
+
+module Bindings.APR.Poll where
+#strict_import
+import Bindings.APR
+import Bindings.APR.ErrNo
+import Bindings.APR.File.Types
+import Bindings.APR.Network.IO
+import Bindings.APR.Pools
+import Bindings.APR.Time
+
+#num APR_POLLIN
+#num APR_POLLPRI
+#num APR_POLLOUT
+#num APR_POLLERR
+#num APR_POLLHUP
+#num APR_POLLNVAL
+
+#num APR_POLLSET_THREADSAFE
+#num APR_POLLSET_NOCOPY
+
+#integral_t apr_datatype_e
+#num APR_NO_DESC
+#num APR_POLL_SOCKET
+#num APR_POLL_FILE
+#num APR_POLL_LASTDESC
+
+#starttype apr_descriptor
+# union_field f, Ptr <apr_file_t>
+# union_field s, Ptr <apr_socket_t>
+#stoptype
+
+#starttype struct apr_pollfd_t
+# field p , Ptr <apr_pool_t>
+# field desc_type , <apr_datatype_e>
+# field reqevents , <apr_int16_t>
+# field rtnevents , <apr_int16_t>
+# field desc , <apr_descriptor>
+# field client_data, Ptr ()
+#stoptype
+
+#opaque_t apr_pollset_t
+
+#ccall apr_pollset_create , Ptr (Ptr <apr_pollset_t>) -> <apr_uint32_t> -> Ptr <apr_pool_t> -> <apr_uint32_t> -> IO <apr_status_t>
+#ccall apr_pollset_destroy, Ptr <apr_pollset_t> -> IO <apr_status_t>
+#ccall apr_pollset_add , Ptr <apr_pollset_t> -> Ptr <apr_pollfd_t> -> IO <apr_status_t>
+#ccall apr_pollset_remove , Ptr <apr_pollset_t> -> Ptr <apr_pollfd_t> -> IO <apr_status_t>
+#ccall apr_pollset_poll , Ptr <apr_pollset_t> -> <apr_interval_time_t> -> Ptr <apr_int32_t> -> Ptr (Ptr <apr_pollfd_t>) -> IO <apr_status_t>
+
+#ccall apr_poll, Ptr <apr_pollfd_t> -> <apr_int32_t> -> Ptr <apr_int32_t> -> <apr_interval_time_t> -> IO <apr_status_t>
+
+#opaque_t apr_pollcb_t
+
+#ccall apr_pollcb_create, Ptr (Ptr <apr_pollcb_t>) -> <apr_uint32_t> -> Ptr <apr_pool_t> -> <apr_uint32_t> -> IO <apr_status_t>
+#ccall apr_pollcb_add , Ptr <apr_pollcb_t> -> Ptr <apr_pollfd_t> -> IO <apr_status_t>
+#ccall apr_pollcb_remove, Ptr <apr_pollcb_t> -> Ptr <apr_pollfd_t> -> IO <apr_status_t>
+
+#callback apr_pollcb_cb_t, Ptr () -> Ptr <apr_pollfd_t> -> IO <apr_status_t>
+
+#ccall apr_pollcb_poll, Ptr <apr_pollcb_t> -> <apr_interval_time_t> -> <apr_pollcb_cb_t> -> Ptr () -> IO <apr_status_t>