sig
  module Sysinfo :
    sig
      type t =
        Core.Linux_ext.Sysinfo.t = {
        uptime : Core.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 -> t) Core.Or_error.t
      val bin_t : t Bin_prot.Type_class.t
      val bin_read_t : t Bin_prot.Read_ml.reader
      val bin_read_t_ : t Bin_prot.Unsafe_read_c.reader
      val bin_read_t__ : (int -> t) Bin_prot.Unsafe_read_c.reader
      val bin_reader_t : t Bin_prot.Type_class.reader
      val bin_size_t : t Bin_prot.Size.sizer
      val bin_write_t : t Bin_prot.Write_ml.writer
      val bin_write_t_ : t Bin_prot.Unsafe_write_c.writer
      val bin_writer_t : t Bin_prot.Type_class.writer
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
    end
  val sendfile :
    (?pos:int ->
     ?len:int ->
     fd:Core.Core_unix.File_descr.t -> Core.Core_unix.File_descr.t -> int)
    Core.Or_error.t
  type tcp_bool_option = Core.Linux_ext.tcp_bool_option = TCP_CORK
  val gettcpopt_bool :
    (Core.Core_unix.File_descr.t -> tcp_bool_option -> bool) Core.Or_error.t
  val settcpopt_bool :
    (Core.Core_unix.File_descr.t -> tcp_bool_option -> bool -> unit)
    Core.Or_error.t
  val send_nonblocking_no_sigpipe :
    (Core.Core_unix.File_descr.t ->
     ?pos:int -> ?len:int -> string -> int option)
    Core.Or_error.t
  val send_no_sigpipe :
    (Core.Core_unix.File_descr.t -> ?pos:int -> ?len:int -> string -> int)
    Core.Or_error.t
  val sendmsg_nonblocking_no_sigpipe :
    (Core.Core_unix.File_descr.t ->
     ?count:int -> string Core.Core_unix.IOVec.t array -> int option)
    Core.Or_error.t
  module Clock :
    sig
      type t = Core.Linux_ext.Clock.t
      val get : (Thread.t -> t) Core.Or_error.t
      val get_time : (t -> Core.Span.t) Core.Or_error.t
      val set_time : (t -> Core.Span.t -> unit) Core.Or_error.t
      val get_resolution : (t -> Core.Span.t) Core.Or_error.t
      val get_process_clock : (unit -> t) Core.Or_error.t
      val get_thread_clock : (unit -> t) Core.Or_error.t
    end
  val pr_set_pdeathsig : (Core.Signal.t -> unit) Core.Or_error.t
  val pr_get_pdeathsig : (unit -> Core.Signal.t) Core.Or_error.t
  val pr_set_name_first16 : (string -> unit) Core.Or_error.t
  val pr_get_name : (unit -> string) Core.Or_error.t
  val file_descr_realpath :
    (Core.Core_unix.File_descr.t -> string) Core.Or_error.t
  val out_channel_realpath : (out_channel -> string) Core.Or_error.t
  val in_channel_realpath : (in_channel -> string) Core.Or_error.t
  val sched_setaffinity :
    (?pid:Core.Pid.t -> cpuset:int list -> unit -> unit) Core.Or_error.t
  val sched_setaffinity_this_thread :
    (cpuset:int list -> unit) Core.Or_error.t
  val cores : (unit -> int) Core.Or_error.t
  val get_terminal_size : (unit -> int * int) Core.Or_error.t
  val gettid : (unit -> int) Core.Or_error.t
  val get_ipv4_address_for_interface : (string -> string) Core.Or_error.t
  module Epoll :
    sig
      module Flags :
        sig
          type t = Core.Linux_ext.Epoll.Flags.t
          val of_int_exn : int -> t
          val to_int_exn : t -> int
          val equal : t -> t -> bool
          val none : t
          val in_ : t
          val out : t
          val pri : t
          val err : t
          val hup : t
          val et : t
          val oneshot : t
          val ( + ) : t -> t -> t
          val ( - ) : t -> t -> t
          val flag_and : t -> t -> t
          val flag_not : t -> t
          val do_intersect : t -> t -> bool
          val are_disjoint : t -> t -> bool
          val sexp_of_t : t -> Sexplib.Sexp.t
        end
      type t = Core.Linux_ext.Epoll.t
      val invariant : t -> unit
      val create :
        (num_file_descrs:int -> max_ready_events:int -> t) Core.Or_error.t
      val find : t -> Core.Core_unix.File_descr.t -> Flags.t option
      val find_exn : t -> Core.Core_unix.File_descr.t -> Flags.t
      val set : t -> Core.Core_unix.File_descr.t -> Flags.t -> unit
      val remove : t -> Core.Core_unix.File_descr.t -> unit
      val iter :
        t -> f:(Core.Core_unix.File_descr.t -> Flags.t -> unit) -> unit
      val wait : t -> timeout:Core.Span.t -> [ `Ok | `Timeout ]
      val iter_ready :
        t -> f:(Core.Core_unix.File_descr.t -> Flags.t -> unit) -> unit
      val fold_ready :
        t ->
        init:'->
        f:('-> Core.Core_unix.File_descr.t -> Flags.t -> 'a) -> 'a
      val sexp_of_t : t -> Sexplib.Sexp.t
    end
  val bin_tcp_bool_option : tcp_bool_option Bin_prot.Type_class.t
  val bin_read_tcp_bool_option : tcp_bool_option Bin_prot.Read_ml.reader
  val bin_read_tcp_bool_option_ :
    tcp_bool_option Bin_prot.Unsafe_read_c.reader
  val bin_read_tcp_bool_option__ :
    (int -> tcp_bool_option) Bin_prot.Unsafe_read_c.reader
  val bin_reader_tcp_bool_option : tcp_bool_option Bin_prot.Type_class.reader
  val bin_size_tcp_bool_option : tcp_bool_option Bin_prot.Size.sizer
  val bin_write_tcp_bool_option : tcp_bool_option Bin_prot.Write_ml.writer
  val bin_write_tcp_bool_option_ :
    tcp_bool_option Bin_prot.Unsafe_write_c.writer
  val bin_writer_tcp_bool_option : tcp_bool_option Bin_prot.Type_class.writer
  val tcp_bool_option_of_sexp : Sexplib.Sexp.t -> tcp_bool_option
  val sexp_of_tcp_bool_option : tcp_bool_option -> Sexplib.Sexp.t
  val ounit_tests : unit -> OUnit.test
  type uids = Extended_linux.uids = { ruid : int; euid : int; suid : int; }
  val setresuid :
    (?ruid:int -> ?euid:int -> ?suid:int -> unit -> unit) Core.Std.Or_error.t
  val getresuid : (unit -> uids) Core.Std.Or_error.t
  module Splice :
    sig
      type flag = Extended_linux.Splice.flag = MOVE | NONBLOCK | MORE | GIFT
      type flags = Extended_linux.Splice.flags
      val make_flags : flag array -> flags
      val splice :
        (?assume_fd_is_nonblocking:bool ->
         fd_in:Core.Std.Unix.File_descr.t ->
         ?off_in:int ->
         fd_out:Core.Std.Unix.File_descr.t ->
         ?off_out:int -> len:int -> flags -> int * int * int)
        Core.Std.Or_error.t
      val tee :
        (?assume_fd_is_nonblocking:bool ->
         fd_in:Core.Std.Unix.File_descr.t ->
         fd_out:Core.Std.Unix.File_descr.t -> int -> flags -> int)
        Core.Std.Or_error.t
      val vmsplice :
        (?assume_fd_is_nonblocking:bool ->
         Core.Std.Unix.File_descr.t ->
         Core.Std.Bigstring.t Core.Std.Unix.IOVec.t array ->
         ?count:int -> flags -> int)
        Core.Std.Or_error.t
      val bin_flag : flag Core.Std.Bin_prot.Type_class.t
      val bin_read_flag : flag Core.Std.Bin_prot.Read_ml.reader
      val bin_read_flag_ : flag Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_read_flag__ :
        (int -> flag) Core.Std.Bin_prot.Unsafe_read_c.reader
      val bin_reader_flag : flag Core.Std.Bin_prot.Type_class.reader
      val bin_size_flag : flag Core.Std.Bin_prot.Size.sizer
      val bin_write_flag : flag Core.Std.Bin_prot.Write_ml.writer
      val bin_write_flag_ : flag Core.Std.Bin_prot.Unsafe_write_c.writer
      val bin_writer_flag : flag Core.Std.Bin_prot.Type_class.writer
      val flag_of_sexp : Sexplib.Sexp.t -> flag
      val sexp_of_flag : flag -> Sexplib.Sexp.t
    end
  module Statfs :
    sig
      type f_type =
        Extended_linux.Statfs.f_type =
          ADFS_SUPER_MAGIC
        | AFFS_SUPER_MAGIC
        | BEFS_SUPER_MAGIC
        | BFS_MAGIC
        | CIFS_MAGIC_NUMBER
        | CODA_SUPER_MAGIC
        | COH_SUPER_MAGIC
        | CRAMFS_MAGIC
        | DEVFS_SUPER_MAGIC
        | EFS_SUPER_MAGIC
        | EXT_SUPER_MAGIC
        | EXT2_OLD_SUPER_MAGIC
        | EXT2_SUPER_MAGIC
        | EXT3_SUPER_MAGIC
        | HFS_SUPER_MAGIC
        | HPFS_SUPER_MAGIC
        | HUGETLBFS_MAGIC
        | ISOFS_SUPER_MAGIC
        | JFFS2_SUPER_MAGIC
        | JFS_SUPER_MAGIC
        | MINIX_SUPER_MAGIC
        | MINIX_SUPER_MAGIC2
        | MINIX2_SUPER_MAGIC
        | MINIX2_SUPER_MAGIC2
        | MSDOS_SUPER_MAGIC
        | NCP_SUPER_MAGIC
        | NFS_SUPER_MAGIC
        | NTFS_SB_MAGIC
        | UNKNOWN_SUPER_MAGIC of Core.Std.Int32.t
      type t =
        Extended_linux.Statfs.t = {
        f_type : f_type;
        f_bsize : int;
        f_blocks : int;
        f_bfree : int;
        f_bavail : int;
        f_files : int;
        f_ffree : int;
        f_namelen : int;
      }
    end
  val statfs : (string -> Statfs.t) Core.Std.Or_error.t
  val bin_uids : uids Core.Std.Bin_prot.Type_class.t
  val bin_read_uids : uids Core.Std.Bin_prot.Read_ml.reader
  val bin_read_uids_ : uids Core.Std.Bin_prot.Unsafe_read_c.reader
  val bin_read_uids__ : (int -> uids) Core.Std.Bin_prot.Unsafe_read_c.reader
  val bin_reader_uids : uids Core.Std.Bin_prot.Type_class.reader
  val bin_size_uids : uids Core.Std.Bin_prot.Size.sizer
  val bin_write_uids : uids Core.Std.Bin_prot.Write_ml.writer
  val bin_write_uids_ : uids Core.Std.Bin_prot.Unsafe_write_c.writer
  val bin_writer_uids : uids Core.Std.Bin_prot.Type_class.writer
  val uids_of_sexp : Sexplib.Sexp.t -> uids
  val sexp_of_uids : uids -> Sexplib.Sexp.t
  val ounit_tests : unit -> OUnit.test
end