package posix-socket

  1. Overview
  2. Docs

Source file posix_socket_generated_stubs.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
module CI = Cstubs_internals

external posix_socket_1_getnameinfo
  : _ CI.fatptr -> Unsigned.uint32 -> _ CI.fatptr -> Unsigned.uint32 ->
    _ CI.fatptr -> Unsigned.uint32 -> int -> int
  = "posix_socket_1_getnameinfo_byte7" "posix_socket_1_getnameinfo" 

external posix_socket_2_getaddrinfo
  : _ CI.fatptr -> _ CI.fatptr -> _ CI.fatptr -> _ CI.fatptr -> int
  = "posix_socket_2_getaddrinfo" 

external posix_socket_3_freeaddrinfo : _ CI.fatptr -> unit
  = "posix_socket_3_freeaddrinfo" 

external posix_socket_4_getservbyname
  : _ CI.fatptr -> _ CI.fatptr -> CI.voidp = "posix_socket_4_getservbyname" 

external posix_socket_5_gai_strerror : int -> CI.voidp
  = "posix_socket_5_gai_strerror" 

external posix_socket_6_strnlen
  : _ CI.fatptr -> Unsigned.size_t -> Unsigned.size_t
  = "posix_socket_6_strnlen" 

external posix_socket_7_htonl : Unsigned.uint32 -> Unsigned.uint32
  = "posix_socket_7_htonl" 

external posix_socket_8_htons : Unsigned.uint16 -> Unsigned.uint16
  = "posix_socket_8_htons" 

external posix_socket_9_ntohs : Unsigned.uint16 -> Unsigned.uint16
  = "posix_socket_9_ntohs" 

external posix_socket_10_ntohl : Unsigned.uint32 -> Unsigned.uint32
  = "posix_socket_10_ntohl" 

type 'a result = 'a
type 'a return = 'a
type 'a fn =
 | Returns  : 'a CI.typ   -> 'a return fn
 | Function : 'a CI.typ * 'b fn  -> ('a -> 'b) fn
let map_result f x = f x
let returning t = Returns t
let (@->) f p = Function (f, p)
let foreign : type a b. string -> (a -> b) fn -> (a -> b) =
  fun name t -> match t, name with
| Function (CI.Primitive CI.Uint32_t, Returns (CI.Primitive CI.Uint32_t)),
  "ntohl" -> posix_socket_10_ntohl
| Function (CI.Primitive CI.Uint16_t, Returns (CI.Primitive CI.Uint16_t)),
  "ntohs" -> posix_socket_9_ntohs
| Function (CI.Primitive CI.Uint16_t, Returns (CI.Primitive CI.Uint16_t)),
  "htons" -> posix_socket_8_htons
| Function (CI.Primitive CI.Uint32_t, Returns (CI.Primitive CI.Uint32_t)),
  "htonl" -> posix_socket_7_htonl
| Function
    (CI.Pointer _,
     Function (CI.Primitive CI.Size_t, Returns (CI.Primitive CI.Size_t))),
  "strnlen" ->
  (fun x5 x7 -> let CI.CPointer x6 = x5 in posix_socket_6_strnlen x6 x7)
| Function
    (CI.Primitive CI.Int,
     Returns (CI.View {CI.ty = CI.Pointer x9; read = x10; _})),
  "gai_strerror" ->
  (fun x8 -> x10 (CI.make_ptr x9 (posix_socket_5_gai_strerror x8)))
| Function (CI.Pointer _, Function (CI.Pointer _, Returns (CI.Pointer x15))),
  "getservbyname" ->
  (fun x11 x13 ->
    let CI.CPointer x14 = x13 in
    let CI.CPointer x12 = x11 in
    CI.make_ptr x15 (posix_socket_4_getservbyname x12 x14))
| Function (CI.Pointer _, Returns CI.Void), "freeaddrinfo" ->
  (fun x16 -> let CI.CPointer x17 = x16 in posix_socket_3_freeaddrinfo x17)
| Function
    (CI.View {CI.ty = CI.Pointer _; write = x19; _},
     Function
       (CI.Pointer _,
        Function
          (CI.Pointer _,
           Function (CI.Pointer _, Returns (CI.Primitive CI.Int))))),
  "getaddrinfo" ->
  (fun x18 x22 x24 x26 ->
    let CI.CPointer x27 = x26 in
    let CI.CPointer x25 = x24 in
    let CI.CPointer x23 = x22 in
    let CI.CPointer x21 = x19 x18 in
    let x20 = x21 in posix_socket_2_getaddrinfo x20 x23 x25 x27)
| Function
    (CI.Pointer _,
     Function
       (CI.View {CI.ty = CI.Primitive CI.Uint32_t; write = x31; _},
        Function
          (CI.Pointer _,
           Function
             (CI.View {CI.ty = CI.Primitive CI.Uint32_t; write = x36; _},
              Function
                (CI.Pointer _,
                 Function
                   (CI.View
                      {CI.ty = CI.Primitive CI.Uint32_t; write = x41; _},
                    Function
                      (CI.Primitive CI.Int, Returns (CI.Primitive CI.Int)))))))),
  "getnameinfo" ->
  (fun x28 x30 x33 x35 x38 x40 x43 ->
    let CI.CPointer x39 = x38 in
    let CI.CPointer x34 = x33 in
    let CI.CPointer x29 = x28 in
    let x32 = x31 x30 in
    let x37 = x36 x35 in
    let x42 = x41 x40 in
    posix_socket_1_getnameinfo x29 x32 x34 x37 x39 x42 x43)
| _, s ->  Printf.ksprintf failwith "No match for %s" s


let foreign_value : type a. string -> a Ctypes.typ -> a Ctypes.ptr =
  fun name t -> match t, name with
| _, s ->  Printf.ksprintf failwith "No match for %s" s