package protocol-9p

  1. Overview
  2. Docs

Parsers and printers for all 9P request messages.

module Version : sig ... end
module Auth : sig ... end
module Flush : sig ... end
module Attach : sig ... end
module Walk : sig ... end
module Open : sig ... end
module Create : sig ... end
module Read : sig ... end
module Write : sig ... end
module Clunk : sig ... end
module Remove : sig ... end
module Stat : sig ... end
module Wstat : sig ... end
type payload =
  1. | Version of Version.t
  2. | Auth of Auth.t
  3. | Flush of Flush.t
  4. | Attach of Attach.t
  5. | Walk of Walk.t
  6. | Open of Open.t
  7. | Create of Create.t
  8. | Read of Read.t
  9. | Write of Write.t
  10. | Clunk of Clunk.t
  11. | Remove of Remove.t
  12. | Stat of Stat.t
  13. | Wstat of Wstat.t

A variant type containing all possible request payloads

include sig ... end
val payload_of_sexp : Sexplib.Sexp.t -> payload
val sexp_of_payload : payload -> Sexplib.Sexp.t
type t = {
  1. tag : Protocol_9p_types.Tag.t;
    (*

    The tag used to match the response with the original request

    *)
  2. payload : payload;
}

A 9P protocol request

include sig ... end
val t_of_sexp : Sexplib.Sexp.t -> t
val sexp_of_t : t -> Sexplib.Sexp.t
include Protocol_9p_s.SERIALISABLE with type t := t
val sizeof : t -> int

The size of a buffer needed to hold t

val read : Cstruct.t -> (t * Cstruct.t, [ `Msg of string ]) Result.result

Read a t from the given buffer and return it, along with the unused remainder of the buffer. If the buffer cannot be parsed then return an error.

val write : t -> Cstruct.t -> (Cstruct.t, [ `Msg of string ]) Result.result

Write a t into the given buffer. If the buffer is too small, then return an error. Return the unused remainder of the buffer.

val sizeof_header : int

The size of the fixed request header

val pp : t Fmt.t

pp formats request.

val equal : t -> t -> bool

equal is the equality function for requests.