Source file mmdb_ffi_bindings.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
module T = Mmdb_types
module M (F : Ctypes.FOREIGN) = struct
module C = struct
include Ctypes
let ( @-> ) = F.( @-> )
let returning = F.returning
end
module Core = struct
let open_file =
F.foreign "MMDB_open" C.(ptr char @-> int @-> T.Mmdb.t @-> returning int)
let close = F.foreign "MMDB_close" C.(T.Mmdb.t @-> returning void)
let lookup_string =
F.foreign "MMDB_lookup_string"
C.(
T.Mmdb.t @-> ptr char @-> ptr int @-> ptr int
@-> returning T.Lookup_result.t)
let aget_value =
F.foreign "MMDB_aget_value"
C.(
ptr T.Entry.t @-> T.Entry_data.t @-> ptr (ptr char) @-> returning int)
let strerror = F.foreign "MMDB_strerror" C.(int @-> returning (ptr char))
end
module Helpers = struct
let size_of_mmdb_s =
F.foreign "mmdb_ml_sizeof_mmdb_s" C.(void @-> returning size_t)
let alignment_of_mmdb_s =
F.foreign "mmdb_ml_alignof_mmdb_s" C.(void @-> returning size_t)
let size_of_mmdb_entry_data_s =
F.foreign "mmdb_ml_sizeof_mmdb_entry_data_s"
C.(void @-> returning size_t)
let alignment_of_mmdb_entry_data_s =
F.foreign "mmdb_ml_alignof_mmdb_entry_data_s"
C.(void @-> returning size_t)
let get_entry_data_has_data =
F.foreign "mmdb_ml_get_entry_data_has_data"
C.(T.Entry_data.t @-> returning bool)
let get_entry_data_type =
F.foreign "mmdb_ml_get_entry_data_type"
C.(T.Entry_data.t @-> returning uint32_t)
let get_entry_data_size =
F.foreign "mmdb_ml_get_entry_data_size"
C.(T.Entry_data.t @-> returning uint32_t)
let get_entry_data_utf8_string_value =
F.foreign "mmdb_ml_get_entry_data_utf8_string_value"
C.(T.Entry_data.t @-> returning (ptr char))
let get_entry_data_double_value =
F.foreign "mmdb_ml_get_entry_data_double_value"
C.(T.Entry_data.t @-> returning double)
let get_entry_data_bytes_value =
F.foreign "mmdb_ml_get_entry_data_bytes_value"
C.(T.Entry_data.t @-> returning (ptr uint8_t))
let get_entry_data_uint16_value =
F.foreign "mmdb_ml_get_entry_data_uint16_value"
C.(T.Entry_data.t @-> returning uint16_t)
let get_entry_data_uint32_value =
F.foreign "mmdb_ml_get_entry_data_uint32_value"
C.(T.Entry_data.t @-> returning uint32_t)
let get_entry_data_int32_value =
F.foreign "mmdb_ml_get_entry_data_int32_value"
C.(T.Entry_data.t @-> returning int32_t)
let get_entry_data_uint64_value =
F.foreign "mmdb_ml_get_entry_data_uint64_value"
C.(T.Entry_data.t @-> returning uint64_t)
let get_entry_data_boolean_value =
F.foreign "mmdb_ml_get_entry_data_boolean_value"
C.(T.Entry_data.t @-> returning bool)
let get_entry_data_float_value =
F.foreign "mmdb_ml_get_entry_data_float_value"
C.(T.Entry_data.t @-> returning float)
end
end