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_kernel.Std.Or_error.t
      val bin_t : t Core_kernel.Std.Bin_prot.Type_class.t
      val bin_read_t : t Core_kernel.Std.Bin_prot.Read.reader
      val __bin_read_t__ : (int -> t) Core_kernel.Std.Bin_prot.Read.reader
      val bin_reader_t : t Core_kernel.Std.Bin_prot.Type_class.reader
      val bin_size_t : t Core_kernel.Std.Bin_prot.Size.sizer
      val bin_write_t : t Core_kernel.Std.Bin_prot.Write.writer
      val bin_writer_t : t Core_kernel.Std.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_kernel.Std.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_kernel.Std.Or_error.t
  val settcpopt_bool :
    (Core.Core_unix.File_descr.t -> tcp_bool_option -> bool -> unit)
    Core_kernel.Std.Or_error.t
  val send_nonblocking_no_sigpipe :
    (Core.Core_unix.File_descr.t ->
     ?pos:int -> ?len:int -> string -> int option)
    Core_kernel.Std.Or_error.t
  val send_no_sigpipe :
    (Core.Core_unix.File_descr.t -> ?pos:int -> ?len:int -> string -> int)
    Core_kernel.Std.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_kernel.Std.Or_error.t
  module Clock :
    sig
      type t = Core.Linux_ext.Clock.t
      val get : (Thread.t -> t) Core_kernel.Std.Or_error.t
      val get_time : (t -> Core.Span.t) Core_kernel.Std.Or_error.t
      val set_time : (t -> Core.Span.t -> unit) Core_kernel.Std.Or_error.t
      val get_resolution : (t -> Core.Span.t) Core_kernel.Std.Or_error.t
      val get_process_clock : (unit -> t) Core_kernel.Std.Or_error.t
      val get_thread_clock : (unit -> t) Core_kernel.Std.Or_error.t
    end
  module Timerfd :
    sig
      module Clock :
        sig
          type t = Core.Linux_ext.Timerfd.Clock.t
          val realtime : t
          val monotonic : t
          val t_of_sexp : Sexplib.Sexp.t -> t
          val sexp_of_t : t -> Sexplib.Sexp.t
          val compare : t -> t -> int
          val bin_t : t Core_kernel.Std.Bin_prot.Type_class.t
          val bin_read_t : t Core_kernel.Std.Bin_prot.Read.reader
          val __bin_read_t__ :
            (int -> t) Core_kernel.Std.Bin_prot.Read.reader
          val bin_reader_t : t Core_kernel.Std.Bin_prot.Type_class.reader
          val bin_size_t : t Core_kernel.Std.Bin_prot.Size.sizer
          val bin_write_t : t Core_kernel.Std.Bin_prot.Write.writer
          val bin_writer_t : t Core_kernel.Std.Bin_prot.Type_class.writer
        end
      module Flags :
        sig
          type t = Core.Linux_ext.Timerfd.Flags.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 : t
          val cloexec : t
          val sexp_of_t : t -> Sexplib.Sexp.t
        end
      type t = Core.Linux_ext.Timerfd.t
      val create :
        (?flags:Flags.t -> Clock.t -> t) Core_kernel.Std.Or_error.t
      val set : t -> [ `After of Core.Span.t | `At of Core.Time.t ] -> unit
      val set_repeating :
        ?initial:[ `After of Core.Span.t | `At of Core.Time.t ] ->
        t -> Core.Span.t -> unit
      val clear : t -> unit
      type repeat =
        Core.Linux_ext.Timerfd.repeat = {
        fire_after : Core.Span.t;
        interval : Core.Span.t;
      }
      val get :
        t -> [ `Fire_after of Core.Span.t | `Not_armed | `Repeat of repeat ]
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
      val compare : t -> t -> int
      val bin_t : t Core_kernel.Std.Bin_prot.Type_class.t
      val bin_read_t : t Core_kernel.Std.Bin_prot.Read.reader
      val __bin_read_t__ : (int -> t) Core_kernel.Std.Bin_prot.Read.reader
      val bin_reader_t : t Core_kernel.Std.Bin_prot.Type_class.reader
      val bin_size_t : t Core_kernel.Std.Bin_prot.Size.sizer
      val bin_write_t : t Core_kernel.Std.Bin_prot.Write.writer
      val bin_writer_t : t Core_kernel.Std.Bin_prot.Type_class.writer
    end
  val pr_set_pdeathsig : (Core.Signal.t -> unit) Core_kernel.Std.Or_error.t
  val pr_get_pdeathsig : (unit -> Core.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.Core_unix.File_descr.t -> string) Core_kernel.Std.Or_error.t
  val out_channel_realpath :
    (out_channel -> string) Core_kernel.Std.Or_error.t
  val in_channel_realpath : (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 = Core.Linux_ext.Priority.t
      val equal : t -> t -> bool
      val of_int : int -> t
      val to_int : t -> int
      val incr : t -> t
      val decr : t -> t
      val t_of_sexp : Sexplib.Sexp.t -> t
      val sexp_of_t : t -> Sexplib.Sexp.t
    end
  val setpriority : (Priority.t -> unit) Core_kernel.Std.Or_error.t
  val getpriority : (unit -> 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.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 = Core.Linux_ext.Epoll.Flags.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 : t
          val in_ : t
          val out : t
          val pri : t
          val err : t
          val hup : t
          val et : t
          val oneshot : t
          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_kernel.Std.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:[ `After of Core.Span.t | `Immediately | `Never ] ->
        [ `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 Core_kernel.Std.Bin_prot.Type_class.t
  val bin_read_tcp_bool_option :
    tcp_bool_option Core_kernel.Std.Bin_prot.Read.reader
  val __bin_read_tcp_bool_option__ :
    (int -> tcp_bool_option) Core_kernel.Std.Bin_prot.Read.reader
  val bin_reader_tcp_bool_option :
    tcp_bool_option Core_kernel.Std.Bin_prot.Type_class.reader
  val bin_size_tcp_bool_option :
    tcp_bool_option Core_kernel.Std.Bin_prot.Size.sizer
  val bin_write_tcp_bool_option :
    tcp_bool_option Core_kernel.Std.Bin_prot.Write.writer
  val bin_writer_tcp_bool_option :
    tcp_bool_option Core_kernel.Std.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
  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.reader
      val __bin_read_flag__ : (int -> flag) Core.Std.Bin_prot.Read.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.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.reader
  val __bin_read_uids__ : (int -> uids) Core.Std.Bin_prot.Read.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.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
end