1 #include <bindings.dsl.h>
2 #include <bindings.apr.ring.h>
3 #include <apr_buckets.h>
5 module Bindings.APR.Buckets where
8 import Bindings.APR.Allocator.Types
9 import Bindings.APR.ErrNo
10 import Bindings.APR.File.Types
11 import Bindings.APR.MMap
12 import Bindings.APR.Network.IO
13 import Bindings.APR.Pools
14 import Bindings.APR.Want
16 #num APR_BUCKET_BUFF_SIZE
18 #integral_t apr_read_type_e
20 #num APR_NONBLOCK_READ
22 #opaque_t apr_bucket_alloc_t
25 #num APR_BUCKET_METADATA
26 #starttype struct apr_bucket_type_t
27 # field name , Ptr CChar
28 # field num_func , CInt
29 # field is_metadata, CInt
30 # field destroy , FunPtr (Ptr () -> IO ())
31 # field read , FunPtr (Ptr <apr_bucket> -> Ptr (Ptr CChar) -> Ptr <apr_size_t> -> <apr_read_type_e> -> IO <apr_status_t>)
32 # field setaside , FunPtr (Ptr <apr_bucket> -> Ptr <apr_pool_t> -> IO <apr_status_t>)
33 # field split , FunPtr (Ptr <apr_bucket> -> <apr_size_t> -> IO <apr_status_t>)
34 # field copy , FunPtr (Ptr <apr_bucket> -> Ptr (Ptr <apr_bucket>) -> IO <apr_status_t>)
37 #starttype struct apr_bucket
38 # apr_ring_entry_field link, <apr_bucket>
39 # field type , Ptr <apr_bucket_type_t>
40 # field length, <apr_size_t>
41 # field start , <apr_off_t>
43 # field free , FunPtr (Ptr () -> IO ())
44 # field list , Ptr <apr_bucket_alloc_t>
47 #apr_ring_head_t apr_bucket_list, <apr_bucket>
48 #starttype struct apr_bucket_brigade
49 # field p , Ptr <apr_pool_t>
50 # field list , <apr_bucket_list>
51 # field bucket_alloc, Ptr <apr_bucket_alloc_t>
54 #callback apr_brigade_flush, Ptr <apr_bucket_brigade> -> Ptr () -> IO <apr_status_t>
56 #cinline APR_BRIGADE_CHECK_CONSISTENCY, Ptr <apr_bucket_brigade> -> IO ()
57 #cinline APR_BUCKET_CHECK_CONSISTENCY , Ptr <apr_bucket> -> IO ()
59 #cinline APR_BRIGADE_SENTINEL , Ptr <apr_bucket_brigade> -> IO (Ptr <apr_bucket>)
60 #cinline APR_BRIGADE_EMPTY , Ptr <apr_bucket_brigade> -> IO CInt
61 #cinline APR_BRIGADE_FIRST , Ptr <apr_bucket_brigade> -> IO (Ptr <apr_bucket>)
62 #cinline APR_BRIGADE_LAST , Ptr <apr_bucket_brigade> -> IO (Ptr <apr_bucket>)
63 #cinline APR_BRIGADE_INSERT_HEAD, Ptr <apr_bucket_brigade> -> Ptr <apr_bucket> -> IO ()
64 #cinline APR_BRIGADE_INSERT_TAIL, Ptr <apr_bucket_brigade> -> Ptr <apr_bucket> -> IO ()
65 #cinline APR_BRIGADE_CONCAT , Ptr <apr_bucket_brigade> -> Ptr <apr_bucket_brigade> -> IO ()
66 #cinline APR_BRIGADE_PREPEND , Ptr <apr_bucket_brigade> -> Ptr <apr_bucket_brigade> -> IO ()
68 #cinline APR_BUCKET_INSERT_BEFORE, Ptr <apr_bucket> -> Ptr <apr_bucket> -> IO ()
69 #cinline APR_BUCKET_INSERT_AFTER , Ptr <apr_bucket> -> Ptr <apr_bucket> -> IO ()
70 #cinline APR_BUCKET_NEXT , Ptr <apr_bucket> -> IO (Ptr <apr_bucket>)
71 #cinline APR_BUCKET_PREV , Ptr <apr_bucket> -> IO (Ptr <apr_bucket>)
72 #cinline APR_BUCKET_REMOVE , Ptr <apr_bucket> -> IO ()
73 #cinline APR_BUCKET_INIT , Ptr <apr_bucket> -> IO ()
74 #cinline APR_BUCKET_IS_METADATA , Ptr <apr_bucket> -> IO CInt
75 #cinline APR_BUCKET_IS_FLUSH , Ptr <apr_bucket> -> IO CInt
76 #cinline APR_BUCKET_IS_EOS , Ptr <apr_bucket> -> IO CInt
77 #cinline APR_BUCKET_IS_FILE , Ptr <apr_bucket> -> IO CInt
78 #cinline APR_BUCKET_IS_PIPE , Ptr <apr_bucket> -> IO CInt
79 #cinline APR_BUCKET_IS_SOCKET , Ptr <apr_bucket> -> IO CInt
80 #cinline APR_BUCKET_IS_HEAP , Ptr <apr_bucket> -> IO CInt
81 #cinline APR_BUCKET_IS_TRANSIENT , Ptr <apr_bucket> -> IO CInt
82 #cinline APR_BUCKET_IS_IMMORTAL , Ptr <apr_bucket> -> IO CInt
84 # cinline APR_BUCKET_IS_MMAP , Ptr <apr_bucket> -> IO CInt
86 #cinline APR_BUCKET_IS_POOL , Ptr <apr_bucket> -> IO CInt
88 #starttype struct apr_bucket_refcount
89 # field refcount, CInt
92 #starttype struct apr_bucket_heap
93 # field refcount , <apr_bucket_refcount>
94 # field base , Ptr CChar
95 # field alloc_len, <apr_size_t>
96 # field free_func, FunPtr (Ptr () -> IO ())
99 #starttype struct apr_bucket_pool
100 # field heap, <apr_bucket_heap>
101 # field base, Ptr CChar
102 # field pool, Ptr <apr_pool_t>
103 # field list, Ptr <apr_bucket_alloc_t>
107 # starttype struct apr_bucket_mmap
108 # field refcount, <apr_bucket_refcount>
109 # field mmap , <apr_mmap_t>
113 #starttype struct apr_bucket_file
114 # field refcount, <apr_bucket_refcount>
115 # field fd , Ptr <apr_file_t>
116 # field readpool, Ptr <apr_pool_t>
118 # field can_mmap, CInt
122 #starttype union apr_bucket_structs
123 # union_field b , <apr_bucket>
124 # union_field heap, <apr_bucket_heap>
125 # union_field pool, <apr_bucket_pool>
127 # union_field mmap, <apr_bucket_mmap>
129 # union_field file, <apr_bucket_file>
132 #num APR_BUCKET_ALLOC_SIZE
134 #ccall apr_brigade_create , Ptr <apr_pool_t> -> Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket_brigade>)
135 #ccall apr_brigade_destroy , Ptr <apr_bucket_brigade> -> IO <apr_status_t>
136 #ccall apr_brigade_cleanup , Ptr () -> IO <apr_status_t>
137 #ccall apr_brigade_split_ex , Ptr <apr_bucket_brigade> -> Ptr <apr_bucket> -> Ptr <apr_bucket_brigade> -> IO (Ptr <apr_bucket_brigade>)
138 #ccall apr_brigade_split , Ptr <apr_bucket_brigade> -> Ptr <apr_bucket> -> IO (Ptr <apr_bucket_brigade>)
139 #ccall apr_brigade_partition , Ptr <apr_bucket_brigade> -> <apr_off_t> -> Ptr (Ptr <apr_bucket>) -> IO <apr_status_t>
140 #ccall apr_brigade_length , Ptr <apr_bucket_brigade> -> CInt -> Ptr <apr_off_t> -> IO <apr_status_t>
141 #ccall apr_brigade_flatten , Ptr <apr_bucket_brigade> -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>
142 #ccall apr_brigade_pflatten , Ptr <apr_bucket_brigade> -> Ptr (Ptr CChar) -> Ptr <apr_size_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
143 #ccall apr_brigade_split_line , Ptr <apr_bucket_brigade> -> Ptr <apr_bucket_brigade> -> <apr_read_type_e> -> <apr_off_t> -> IO <apr_status_t>
144 #ccall apr_brigade_to_iovec , Ptr <apr_bucket_brigade> -> Ptr <iovec> -> Ptr CInt -> <apr_status_t>
145 -- FIXME: apr_brigade_to_vputstrs takes va_list
146 #ccall apr_brigade_write , Ptr <apr_bucket_brigade> -> <apr_brigade_flush> -> Ptr () -> Ptr CChar -> <apr_size_t> -> IO <apr_status_t>
147 #ccall apr_brigade_writev , Ptr <apr_bucket_brigade> -> <apr_brigade_flush> -> Ptr () -> Ptr <iovec> -> <apr_size_t> -> IO <apr_status_t>
148 #ccall apr_brigade_puts , Ptr <apr_bucket_brigade> -> <apr_brigade_flush> -> Ptr () -> Ptr CChar -> IO <apr_status_t>
149 #ccall apr_brigade_putc , Ptr <apr_bucket_brigade> -> <apr_brigade_flush> -> Ptr () -> CChar -> IO <apr_status_t>
150 -- FIXME: apr_brigade_putstrs takes varargs
151 -- FIXME: apr_brigade_printf takes varargs
152 -- FIXME: apr_brigade_vprintf takes va_list
153 #ccall apr_brigade_insert_file, Ptr <apr_bucket_brigade> -> Ptr <apr_file_t> -> <apr_off_t> -> <apr_off_t> -> Ptr <apr_pool_t> -> IO (Ptr <apr_bucket>)
155 #ccall apr_bucket_alloc_create , Ptr <apr_pool_t> -> Ptr (<apr_bucket_alloc_t>)
156 #ccall apr_bucket_alloc_create_ex, Ptr <apr_allocator_t> -> Ptr (<apr_bucket_alloc_t>)
157 #ccall apr_bucket_alloc_destroy , Ptr <apr_bucket_alloc_t> -> IO ()
158 #ccall apr_bucket_alloc , <apr_size_t> -> Ptr <apr_bucket_alloc_t> -> IO (Ptr ())
159 #ccall apr_bucket_free , Ptr () -> IO ()
161 #cinline apr_bucket_destroy , Ptr <apr_bucket> -> IO ()
162 #cinline apr_bucket_delete , Ptr <apr_bucket> -> IO ()
163 #cinline apr_bucket_read , Ptr <apr_bucket> -> Ptr (Ptr CChar) -> Ptr <apr_size_t> -> <apr_read_type_e> -> IO <apr_status_t>
164 #cinline apr_bucket_setaside, Ptr <apr_bucket> -> Ptr <apr_pool_t> -> IO <apr_status_t>
165 #cinline apr_bucket_split , Ptr <apr_bucket> -> <apr_size_t> -> IO <apr_status_t>
166 #cinline apr_bucket_copy , Ptr <apr_bucket> -> Ptr (Ptr <apr_bucket>) -> IO <apr_status_t>
168 #ccall apr_bucket_setaside_noop , Ptr <apr_bucket> -> Ptr <apr_pool_t> -> IO <apr_status_t>
169 #ccall apr_bucket_setaside_notimpl, Ptr <apr_bucket> -> Ptr <apr_pool_t> -> IO <apr_status_t>
170 #ccall apr_bucket_split_notimpl , Ptr <apr_bucket> -> <apr_size_t> -> IO <apr_status_t>
171 #ccall apr_bucket_copy_notimpl , Ptr <apr_bucket> -> Ptr (Ptr <apr_bucket>) -> IO <apr_status_t>
172 #ccall apr_bucket_destroy_noop , Ptr () -> IO ()
174 #globalvar apr_bucket_type_flush , <apr_bucket_type_t>
175 #globalvar apr_bucket_type_eos , <apr_bucket_type_t>
176 #globalvar apr_bucket_type_file , <apr_bucket_type_t>
177 #globalvar apr_bucket_type_heap , <apr_bucket_type_t>
179 # globalvar apr_bucket_type_mmap , <apr_bucket_type_t>
181 #globalvar apr_bucket_type_pool , <apr_bucket_type_t>
182 #globalvar apr_bucket_type_pipe , <apr_bucket_type_t>
183 #globalvar apr_bucket_type_immortal , <apr_bucket_type_t>
184 #globalvar apr_bucket_type_transient, <apr_bucket_type_t>
185 #globalvar apr_bucket_type_socket , <apr_bucket_type_t>
187 #ccall apr_bucket_simple_split, Ptr <apr_bucket> -> <apr_size_t> -> IO <apr_status_t>
188 #ccall apr_bucket_simple_copy , Ptr <apr_bucket> -> Ptr (Ptr <apr_bucket>) -> IO <apr_status_t>
190 #ccall apr_bucket_shared_make , Ptr <apr_bucket> -> Ptr () -> <apr_off_t> -> <apr_size_t> -> IO (Ptr <apr_bucket>)
191 #ccall apr_bucket_shared_destroy, Ptr () -> IO CInt
192 #ccall apr_bucket_shared_split , Ptr <apr_bucket> -> <apr_size_t> -> IO <apr_status_t>
193 #ccall apr_bucket_shared_copy , Ptr <apr_bucket> -> Ptr (Ptr <apr_bucket>) -> IO <apr_status_t>
195 #ccall apr_bucket_eos_create , Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket>)
196 #ccall apr_bucket_eos_make , Ptr <apr_bucket> -> IO (Ptr <apr_bucket>)
197 #ccall apr_bucket_flush_create , Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket>)
198 #ccall apr_bucket_flush_make , Ptr <apr_bucket> -> IO (Ptr <apr_bucket>)
199 #ccall apr_bucket_immortal_create , Ptr CChar -> <apr_size_t> -> Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket>)
200 #ccall apr_bucket_immortal_make , Ptr <apr_bucket> -> Ptr CChar -> <apr_size_t> -> IO (Ptr <apr_bucket>)
201 #ccall apr_bucket_transient_create, Ptr CChar -> <apr_size_t> -> Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket>)
202 #ccall apr_bucket_transient_make , Ptr <apr_bucket> -> Ptr CChar -> <apr_size_t> -> IO (Ptr <apr_bucket>)
203 #ccall apr_bucket_heap_create , Ptr CChar -> <apr_size_t> -> FunPtr (Ptr () -> IO ()) -> Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket>)
204 #ccall apr_bucket_heap_make , Ptr <apr_bucket> -> Ptr CChar -> <apr_size_t> -> FunPtr (Ptr () -> IO ()) -> IO (Ptr <apr_bucket>)
205 #ccall apr_bucket_pool_create , Ptr CChar -> <apr_size_t> -> Ptr <apr_pool_t> -> Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket>)
206 #ccall apr_bucket_pool_make , Ptr <apr_bucket> -> Ptr CChar -> <apr_size_t> -> Ptr <apr_pool_t> -> IO (Ptr <apr_bucket>)
208 # ccall apr_bucket_mmap_create , Ptr <apr_mmap_t> -> <apr_off_t> -> <apr_size_t> -> Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket>)
209 # ccall apr_bucket_mmap_make , Ptr <apr_bucket> -> Ptr <apr_mmap_t> -> <apr_off_t> -> <apr_size_t> -> IO (Ptr <apr_bucket>)
211 #ccall apr_bucket_socket_create , Ptr <apr_socket_t> -> Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket>)
212 #ccall apr_bucket_socket_make , Ptr <apr_bucket> -> Ptr <apr_socket_t> -> IO (Ptr <apr_bucket>)
213 #ccall apr_bucket_pipe_create , Ptr <apr_file_t> -> Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket>)
214 #ccall apr_bucket_pipe_make , Ptr <apr_bucket> -> Ptr <apr_file_t> -> IO (Ptr <apr_bucket>)
215 #ccall apr_bucket_file_create , Ptr <apr_file_t> -> <apr_off_t> -> <apr_size_t> -> Ptr <apr_pool_t> -> Ptr <apr_bucket_alloc_t> -> IO (Ptr <apr_bucket>)
216 #ccall apr_bucket_file_make , Ptr <apr_bucket> -> Ptr <apr_file_t> -> <apr_off_t> -> <apr_size_t> -> Ptr <apr_pool_t> -> IO (Ptr <apr_bucket>)
217 #ccall apr_bucket_file_enable_mmap, Ptr <apr_bucket> -> CInt -> IO <apr_status_t>