Module Tjr_minifs.Minifs_intf

Minifs main types; safe to open.

There is a lot of overlap with Stdlib.Unix. We want our code to run in contexts where Unix is not available. Thus, we have to define many equiv types. We also want to use eg the OCaml Fuse bindings, which use Stdlib.Unix types. So we need to be able to convert between our types and the existing types in Unix.

FIXME a lot of these types should be moved to fs_shared

Misc

type buffer = Tjr_minifs__.Bigarray_buffer.buffer

Alias

type buf = buffer
type ('a, 'e) r_ = ('a'e) Stdlib.result

Alias for result FIXME why?

module Int_base_types : sig ... end

fd and dh represented by ints... which is the usual underlying repn

type finished = {
finished : bool;
}
module Base_extra : sig ... end

Some utility functions

val exit_1 : string -> 'a

Errors

module Error_ : sig ... end
type exn_ = Error_.exn_
module Call_specific_errors : sig ... end

Errors for each API function... an attempt to refine the different types of error each call can return FIXME needs further refinement

Stat records

module Kind : sig ... end
module Times : sig ... end
type times = Times.times
val bin_shape_times : Bin_prot.Shape.t
val bin_size_times : times Bin_prot.Size.sizer
val bin_write_times : times Bin_prot.Write.writer
val bin_writer_times : times Bin_prot.Type_class.writer
val __bin_read_times__ : (int -> times) Bin_prot.Read.reader
val bin_read_times : times Bin_prot.Read.reader
val bin_reader_times : times Bin_prot.Type_class.reader
val bin_times : times Bin_prot.Type_class.t
module Stat_record : sig ... end

Simplified stat record

type stat_record = Stat_record.stat_record
module St_convs : sig ... end

Conversions to/from Unix equivalents

Msgs btwn client and server

module Msgs : sig ... end

The main filesystem operations: unlink, mkdir etc

module Ops_type : sig ... end
type ('fd, 'dh, 't) ops = ('fd'dh't) Ops_type.ops
type path = Ops_type.path
type 'w co_eta = {
co_eta : a. ('a'w) Tjr_monad.m -> 'a;
}

Extract a value from a monad (Fuse lives in the real-world, so we need a way to project from a monad like lwt)