Last active
December 2, 2019 08:42
-
-
Save toots/3f40f16b59c07bc80512b16a55804660 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module Constants = Sys_socket_constants.Def(Sys_socket_generated_constants) | |
module type Socklen = functor (S : Cstubs.Types.TYPE) -> sig | |
type socklen | |
val socklen_t : socklen S.typ | |
val int_of_socklen : socklen -> int | |
val socklen_of_int : int -> socklen | |
end | |
let socklen : (module Socklen) = | |
match Constants.socklen_t_len with | |
| 4 -> (module functor (S : Cstubs.Types.TYPE) -> struct | |
type socklen = Unsigned.uint32 | |
let socklen_t = S.uint32_t | |
let int_of_socklen = Unsigned.UInt32.to_int | |
let socklen_of_int = Unsigned.UInt32.of_int | |
end) | |
| 8 -> (module functor (S : Cstubs.Types.TYPE) -> struct | |
type socklen = Unsigned.uint64 | |
let socklen_t = S.uint64_t | |
let int_of_socklen = Unsigned.UInt64.to_int | |
let socklen_of_int = Unsigned.UInt64.of_int | |
end) | |
| _ -> assert false | |
module Socklen = (val socklen : Socklen) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment