sig
  external clock_rt_getres : unit -> int = "tsc_clock_rt_getres" "noalloc"
  external clock_mono_getres : unit -> int = "tsc_clock_mono_getres"
    "noalloc"
  external clock_rt_gettime : unit -> int = "tsc_clock_rt_gettime" "noalloc"
  external clock_mono_gettime : unit -> int = "tsc_clock_mono_gettime"
    "noalloc"
  module Cycles :
    sig
      type t = private int
      type snapshot
      external now : unit -> Time_stamp_counter.Cycles.t = "tsc_rdtsc"
        "noalloc"
      val add :
        Time_stamp_counter.Cycles.t ->
        Time_stamp_counter.Cycles.t -> Time_stamp_counter.Cycles.t
      val diff :
        Time_stamp_counter.Cycles.t ->
        Time_stamp_counter.Cycles.t -> Time_stamp_counter.Cycles.t
      val to_cycle_count : Time_stamp_counter.Cycles.t -> int
      val of_int : int -> Time_stamp_counter.Cycles.t
      val get_snapshot : unit -> Time_stamp_counter.Cycles.snapshot
      val cpu_mhz :
        ?snapshot:Time_stamp_counter.Cycles.snapshot -> unit -> float
      val to_ns :
        ?snapshot:Time_stamp_counter.Cycles.snapshot ->
        Time_stamp_counter.Cycles.t -> int
      val to_time :
        ?snapshot:Time_stamp_counter.Cycles.snapshot ->
        Time_stamp_counter.Cycles.t -> Core.Std.Time.t
      val calibrate_snapshot :
        Time_stamp_counter.Cycles.snapshot ->
        Time_stamp_counter.Cycles.snapshot
      val recalibrate : unit -> unit
      val bin_t : Time_stamp_counter.Cycles.t Core.Std.Bin_prot.Type_class.t
      val bin_read_t :
        Time_stamp_counter.Cycles.t Core.Std.Bin_prot.Read_ml.reader
      val bin_read_t_ :
        Time_stamp_counter.Cycles.t Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_read_t__ :
        (int -> Time_stamp_counter.Cycles.t)
        Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_reader_t :
        Time_stamp_counter.Cycles.t Core.Std.Bin_prot.Type_class.reader
      val bin_size_t :
        Time_stamp_counter.Cycles.t Core.Std.Bin_prot.Size.sizer
      val bin_write_t :
        Time_stamp_counter.Cycles.t Core.Std.Bin_prot.Write_ml.writer
      val bin_write_t_ :
        Time_stamp_counter.Cycles.t Core.Std.Bin_prot.Unsafe_write_c.writer
      val bin_writer_t :
        Time_stamp_counter.Cycles.t Core.Std.Bin_prot.Type_class.writer
      val t_of_sexp : Sexplib.Sexp.t -> Time_stamp_counter.Cycles.t
      val sexp_of_t : Time_stamp_counter.Cycles.t -> Sexplib.Sexp.t
      val bin_snapshot :
        Time_stamp_counter.Cycles.snapshot Core.Std.Bin_prot.Type_class.t
      val bin_read_snapshot :
        Time_stamp_counter.Cycles.snapshot Core.Std.Bin_prot.Read_ml.reader
      val bin_read_snapshot_ :
        Time_stamp_counter.Cycles.snapshot
        Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_read_snapshot__ :
        (int -> Time_stamp_counter.Cycles.snapshot)
        Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_reader_snapshot :
        Time_stamp_counter.Cycles.snapshot
        Core.Std.Bin_prot.Type_class.reader
      val bin_size_snapshot :
        Time_stamp_counter.Cycles.snapshot Core.Std.Bin_prot.Size.sizer
      val bin_write_snapshot :
        Time_stamp_counter.Cycles.snapshot Core.Std.Bin_prot.Write_ml.writer
      val bin_write_snapshot_ :
        Time_stamp_counter.Cycles.snapshot
        Core.Std.Bin_prot.Unsafe_write_c.writer
      val bin_writer_snapshot :
        Time_stamp_counter.Cycles.snapshot
        Core.Std.Bin_prot.Type_class.writer
      val snapshot_of_sexp :
        Sexplib.Sexp.t -> Time_stamp_counter.Cycles.snapshot
      val sexp_of_snapshot :
        Time_stamp_counter.Cycles.snapshot -> Sexplib.Sexp.t
    end
end