package hvsock

  1. Overview
  2. Docs

Create an HVSOCK implementation given the ability to run blocking functions outside of Lwt.

Parameters

module Time : Mirage_time_lwt.S
module Fn : FN

Signature

type t

A Hyper-V socket

val create : unit -> t

create () creates an unbound AF_HVSOCK socket

val to_fd : t -> Unix.file_descr option

to_fd t returns the wrapped file descriptor. Note this only supports blocking I/O

val bind : t -> Hvsock.sockaddr -> unit

bind t sockaddr binds socket to sockaddr

val listen : t -> int -> unit

listen t queue

val accept : t -> (t * Hvsock.sockaddr) Lwt.t

accept t accepts a single connection

val connect : ?timeout_ms:int -> t -> Hvsock.sockaddr -> unit Lwt.t

connect ?timeout_ms t sockaddr connects to a remote partition

val read : t -> Cstruct.t -> int Lwt.t

read t buf reads as many bytes as available into buf returning the number of bytes read.

val write : t -> Cstruct.t -> int Lwt.t

write t buf writes as many bytes from buf to t as will currently fit inside t's internal buffer, and return the number of bytes written

val close : t -> unit Lwt.t

close t closes a socket

OCaml

Innovation. Community. Security.