sig
  module Sysinfo :
    sig
      type t = {
        uptime : Span.t;
        load1 : int;
        load5 : int;
        load15 : int;
        total_ram : int;
        free_ram : int;
        shared_ram : int;
        buffer_ram : int;
        total_swap : int;
        free_swap : int;
        procs : int;
        totalhigh : int;
        freehigh : int;
        mem_unit : int;
      }
      val sysinfo : (unit -> Linux_ext.Sysinfo.t) Core_kernel.Std.Or_error.t
      val bin_t : Linux_ext.Sysinfo.t Core_kernel.Std.Bin_prot.Type_class.t
      val bin_read_t :
        Linux_ext.Sysinfo.t Core_kernel.Std.Bin_prot.Read_ml.reader
      val bin_read_t_ :
        Linux_ext.Sysinfo.t Core_kernel.Std.Bin_prot.Unsafe_read_c.reader
      val bin_read_t__ :
        (int -> Linux_ext.Sysinfo.t)
        Core_kernel.Std.Bin_prot.Unsafe_read_c.reader
      val bin_reader_t :
        Linux_ext.Sysinfo.t Core_kernel.Std.Bin_prot.Type_class.reader
      val bin_size_t :
        Linux_ext.Sysinfo.t Core_kernel.Std.Bin_prot.Size.sizer
      val bin_write_t :
        Linux_ext.Sysinfo.t Core_kernel.Std.Bin_prot.Write_ml.writer
      val bin_write_t_ :
        Linux_ext.Sysinfo.t Core_kernel.Std.Bin_prot.Unsafe_write_c.writer
      val bin_writer_t :
        Linux_ext.Sysinfo.t Core_kernel.Std.Bin_prot.Type_class.writer
      val t_of_sexp : Sexplib.Sexp.t -> Linux_ext.Sysinfo.t
      val sexp_of_t : Linux_ext.Sysinfo.t -> Sexplib.Sexp.t
    end
  val sendfile :
    (?pos:int ->
     ?len:int -> fd:Core_unix.File_descr.t -> Core_unix.File_descr.t -> int)
    Core_kernel.Std.Or_error.t
  type tcp_bool_option = TCP_CORK
  val gettcpopt_bool :
    (Core_unix.File_descr.t -> Linux_ext.tcp_bool_option -> bool)
    Core_kernel.Std.Or_error.t
  val settcpopt_bool :
    (Core_unix.File_descr.t -> Linux_ext.tcp_bool_option -> bool -> unit)
    Core_kernel.Std.Or_error.t
  val send_nonblocking_no_sigpipe :
    (Core_unix.File_descr.t -> ?pos:int -> ?len:int -> string -> int option)
    Core_kernel.Std.Or_error.t
  val send_no_sigpipe :
    (Core_unix.File_descr.t -> ?pos:int -> ?len:int -> string -> int)
    Core_kernel.Std.Or_error.t
  val sendmsg_nonblocking_no_sigpipe :
    (Core_unix.File_descr.t ->
     ?count:int -> string Core_unix.IOVec.t array -> int option)
    Core_kernel.Std.Or_error.t
  module Clock :
    sig
      type t
      val get : (Thread.t -> Linux_ext.Clock.t) Core_kernel.Std.Or_error.t
      val get_time : (Linux_ext.Clock.t -> Span.t) Core_kernel.Std.Or_error.t
      val set_time :
        (Linux_ext.Clock.t -> Span.t -> unit) Core_kernel.Std.Or_error.t
      val get_resolution :
        (Linux_ext.Clock.t -> Span.t) Core_kernel.Std.Or_error.t
      val get_process_clock :
        (unit -> Linux_ext.Clock.t) Core_kernel.Std.Or_error.t
      val get_thread_clock :
        (unit -> Linux_ext.Clock.t) Core_kernel.Std.Or_error.t
    end
  module Timerfd :
    sig
      module Clock :
        sig
          type t
          val realtime : Linux_ext.Timerfd.Clock.t
          val monotonic : Linux_ext.Timerfd.Clock.t
          val t_of_sexp : Sexplib.Sexp.t -> Linux_ext.Timerfd.Clock.t
          val sexp_of_t : Linux_ext.Timerfd.Clock.t -> Sexplib.Sexp.t
          val compare :
            Linux_ext.Timerfd.Clock.t -> Linux_ext.Timerfd.Clock.t -> int
          val bin_t :
            Linux_ext.Timerfd.Clock.t Core_kernel.Std.Bin_prot.Type_class.t
          val bin_read_t :
            Linux_ext.Timerfd.Clock.t Core_kernel.Std.Bin_prot.Read_ml.reader
          val bin_read_t_ :
            Linux_ext.Timerfd.Clock.t
            Core_kernel.Std.Bin_prot.Unsafe_read_c.reader
          val bin_read_t__ :
            (int -> Linux_ext.Timerfd.Clock.t)
            Core_kernel.Std.Bin_prot.Unsafe_read_c.reader
          val bin_reader_t :
            Linux_ext.Timerfd.Clock.t
            Core_kernel.Std.Bin_prot.Type_class.reader
          val bin_size_t :
            Linux_ext.Timerfd.Clock.t Core_kernel.Std.Bin_prot.Size.sizer
          val bin_write_t :
            Linux_ext.Timerfd.Clock.t
            Core_kernel.Std.Bin_prot.Write_ml.writer
          val bin_write_t_ :
            Linux_ext.Timerfd.Clock.t
            Core_kernel.Std.Bin_prot.Unsafe_write_c.writer
          val bin_writer_t :
            Linux_ext.Timerfd.Clock.t
            Core_kernel.Std.Bin_prot.Type_class.writer
        end
      module Flags :
        sig
          type t
          val of_int : int -> t
          val to_int_exn : t -> int
          val equal : t -> t -> bool
          val empty : t
          val ( + ) : t -> t -> t
          val ( - ) : t -> t -> t
          val intersect : t -> t -> t
          val complement : t -> t
          val is_empty : t -> bool
          val do_intersect : t -> t -> bool
          val are_disjoint : t -> t -> bool
          val nonblock : Linux_ext.Timerfd.Flags.t
          val cloexec : Linux_ext.Timerfd.Flags.t
          val sexp_of_t : Linux_ext.Timerfd.Flags.t -> Sexplib.Sexp.t
        end
      type t = private Core_unix.File_descr.t
      val create :
        (?flags:Linux_ext.Timerfd.Flags.t ->
         Linux_ext.Timerfd.Clock.t -> Linux_ext.Timerfd.t)
        Core_kernel.Std.Or_error.t
      val set :
        Linux_ext.Timerfd.t -> [ `After of Span.t | `At of Time.t ] -> unit
      val set_repeating :
        ?initial:[ `After of Span.t | `At of Time.t ] ->
        Linux_ext.Timerfd.t -> Span.t -> unit
      val clear : Linux_ext.Timerfd.t -> unit
      type repeat = { fire_after : Span.t; interval : Span.t; }
      val get :
        Linux_ext.Timerfd.t ->
        [ `Fire_after of Span.t
        | `Not_armed
        | `Repeat of Linux_ext.Timerfd.repeat ]
      val t_of_sexp : Sexplib.Sexp.t -> Linux_ext.Timerfd.t
      val sexp_of_t : Linux_ext.Timerfd.t -> Sexplib.Sexp.t
      val compare : Linux_ext.Timerfd.t -> Linux_ext.Timerfd.t -> int
      val bin_t : Linux_ext.Timerfd.t Core_kernel.Std.Bin_prot.Type_class.t
      val bin_read_t :
        Linux_ext.Timerfd.t Core_kernel.Std.Bin_prot.Read_ml.reader
      val bin_read_t_ :
        Linux_ext.Timerfd.t Core_kernel.Std.Bin_prot.Unsafe_read_c.reader
      val bin_read_t__ :
        (int -> Linux_ext.Timerfd.t)
        Core_kernel.Std.Bin_prot.Unsafe_read_c.reader
      val bin_reader_t :
        Linux_ext.Timerfd.t Core_kernel.Std.Bin_prot.Type_class.reader
      val bin_size_t :
        Linux_ext.Timerfd.t Core_kernel.Std.Bin_prot.Size.sizer
      val bin_write_t :
        Linux_ext.Timerfd.t Core_kernel.Std.Bin_prot.Write_ml.writer
      val bin_write_t_ :
        Linux_ext.Timerfd.t Core_kernel.Std.Bin_prot.Unsafe_write_c.writer
      val bin_writer_t :
        Linux_ext.Timerfd.t Core_kernel.Std.Bin_prot.Type_class.writer
    end
  val pr_set_pdeathsig : (Signal.t -> unit) Core_kernel.Std.Or_error.t
  val pr_get_pdeathsig : (unit -> Signal.t) Core_kernel.Std.Or_error.t
  val pr_set_name_first16 : (string -> unit) Core_kernel.Std.Or_error.t
  val pr_get_name : (unit -> string) Core_kernel.Std.Or_error.t
  val file_descr_realpath :
    (Core_unix.File_descr.t -> string) Core_kernel.Std.Or_error.t
  val out_channel_realpath :
    (Pervasives.out_channel -> string) Core_kernel.Std.Or_error.t
  val in_channel_realpath :
    (Pervasives.in_channel -> string) Core_kernel.Std.Or_error.t
  val sched_setaffinity :
    (?pid:Core_kernel.Std.Pid.t -> cpuset:int list -> unit -> unit)
    Core_kernel.Std.Or_error.t
  val sched_setaffinity_this_thread :
    (cpuset:int list -> unit) Core_kernel.Std.Or_error.t
  val cores : (unit -> int) Core_kernel.Std.Or_error.t
  val get_terminal_size : (unit -> int * int) Core_kernel.Std.Or_error.t
  val gettid : (unit -> int) Core_kernel.Std.Or_error.t
  module Priority :
    sig
      type t
      val equal : Linux_ext.Priority.t -> Linux_ext.Priority.t -> bool
      val of_int : int -> Linux_ext.Priority.t
      val to_int : Linux_ext.Priority.t -> int
      val incr : Linux_ext.Priority.t -> Linux_ext.Priority.t
      val decr : Linux_ext.Priority.t -> Linux_ext.Priority.t
      val t_of_sexp : Sexplib.Sexp.t -> Linux_ext.Priority.t
      val sexp_of_t : Linux_ext.Priority.t -> Sexplib.Sexp.t
    end
  val setpriority : (Linux_ext.Priority.t -> unit) Core_kernel.Std.Or_error.t
  val getpriority : (unit -> Linux_ext.Priority.t) Core_kernel.Std.Or_error.t
  val get_ipv4_address_for_interface :
    (string -> string) Core_kernel.Std.Or_error.t
  val bind_to_interface :
    (Core_unix.File_descr.t -> [ `Any | `Interface_name of string ] -> unit)
    Core_kernel.Std.Or_error.t
  module Epoll :
    sig
      module Flags :
        sig
          type t
          val of_int : int -> t
          val to_int_exn : t -> int
          val equal : t -> t -> bool
          val empty : t
          val ( + ) : t -> t -> t
          val ( - ) : t -> t -> t
          val intersect : t -> t -> t
          val complement : t -> t
          val is_empty : t -> bool
          val do_intersect : t -> t -> bool
          val are_disjoint : t -> t -> bool
          val none : Linux_ext.Epoll.Flags.t
          val in_ : Linux_ext.Epoll.Flags.t
          val out : Linux_ext.Epoll.Flags.t
          val pri : Linux_ext.Epoll.Flags.t
          val err : Linux_ext.Epoll.Flags.t
          val hup : Linux_ext.Epoll.Flags.t
          val et : Linux_ext.Epoll.Flags.t
          val oneshot : Linux_ext.Epoll.Flags.t
          val sexp_of_t : Linux_ext.Epoll.Flags.t -> Sexplib.Sexp.t
        end
      type t
      val invariant : Linux_ext.Epoll.t -> unit
      val create :
        (num_file_descrs:int -> max_ready_events:int -> Linux_ext.Epoll.t)
        Core_kernel.Std.Or_error.t
      val find :
        Linux_ext.Epoll.t ->
        Core_unix.File_descr.t -> Linux_ext.Epoll.Flags.t option
      val find_exn :
        Linux_ext.Epoll.t ->
        Core_unix.File_descr.t -> Linux_ext.Epoll.Flags.t
      val set :
        Linux_ext.Epoll.t ->
        Core_unix.File_descr.t -> Linux_ext.Epoll.Flags.t -> unit
      val remove : Linux_ext.Epoll.t -> Core_unix.File_descr.t -> unit
      val iter :
        Linux_ext.Epoll.t ->
        f:(Core_unix.File_descr.t -> Linux_ext.Epoll.Flags.t -> unit) -> unit
      val wait :
        Linux_ext.Epoll.t ->
        timeout:[ `After of Span.t | `Immediately | `Never ] ->
        [ `Ok | `Timeout ]
      val iter_ready :
        Linux_ext.Epoll.t ->
        f:(Core_unix.File_descr.t -> Linux_ext.Epoll.Flags.t -> unit) -> unit
      val fold_ready :
        Linux_ext.Epoll.t ->
        init:'->
        f:('-> Core_unix.File_descr.t -> Linux_ext.Epoll.Flags.t -> 'a) ->
        'a
      val sexp_of_t : Linux_ext.Epoll.t -> Sexplib.Sexp.t
    end
  val bin_tcp_bool_option :
    Linux_ext.tcp_bool_option Core_kernel.Std.Bin_prot.Type_class.t
  val bin_read_tcp_bool_option :
    Linux_ext.tcp_bool_option Core_kernel.Std.Bin_prot.Read_ml.reader
  val bin_read_tcp_bool_option_ :
    Linux_ext.tcp_bool_option Core_kernel.Std.Bin_prot.Unsafe_read_c.reader
  val bin_read_tcp_bool_option__ :
    (int -> Linux_ext.tcp_bool_option)
    Core_kernel.Std.Bin_prot.Unsafe_read_c.reader
  val bin_reader_tcp_bool_option :
    Linux_ext.tcp_bool_option Core_kernel.Std.Bin_prot.Type_class.reader
  val bin_size_tcp_bool_option :
    Linux_ext.tcp_bool_option Core_kernel.Std.Bin_prot.Size.sizer
  val bin_write_tcp_bool_option :
    Linux_ext.tcp_bool_option Core_kernel.Std.Bin_prot.Write_ml.writer
  val bin_write_tcp_bool_option_ :
    Linux_ext.tcp_bool_option Core_kernel.Std.Bin_prot.Unsafe_write_c.writer
  val bin_writer_tcp_bool_option :
    Linux_ext.tcp_bool_option Core_kernel.Std.Bin_prot.Type_class.writer
  val tcp_bool_option_of_sexp : Sexplib.Sexp.t -> Linux_ext.tcp_bool_option
  val sexp_of_tcp_bool_option : Linux_ext.tcp_bool_option -> Sexplib.Sexp.t
end