sig
  exception Not_available of string
  type ('a, 'b) carray = ('a, 'b, Bigarray.c_layout) Bigarray.Array1.t
  type 'a carray8 =
      ('a, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
  type open_flag = Unix.open_flag
  external eventfd : int -> Unix.file_descr = "caml_extunix_eventfd"
  external eventfd_read : Unix.file_descr -> int64
    = "caml_extunix_eventfd_read"
  external eventfd_write : Unix.file_descr -> int64 -> unit
    = "caml_extunix_eventfd_write"
  module Uname :
    sig
      type t =
        ExtUnixAll.Uname.t = {
        sysname : string;
        nodename : string;
        release : string;
        version : string;
        machine : string;
      }
      val to_string : t -> string
    end
  external uname : unit -> Uname.t = "caml_extunix_uname"
  external fsync : Unix.file_descr -> unit = "caml_extunix_fsync"
  external fdatasync : Unix.file_descr -> unit = "caml_extunix_fdatasync"
  external sync : unit -> unit = "caml_extunix_sync"
  external syncfs : Unix.file_descr -> unit = "caml_extunix_syncfs"
  external dirfd : Unix.dir_handle -> Unix.file_descr = "caml_extunix_dirfd"
  type st_flag =
    ExtUnixAll.st_flag =
      ST_RDONLY
    | ST_NOSUID
    | ST_NODEV
    | ST_NOEXEC
    | ST_SYNCHRONOUS
    | ST_MANDLOCK
    | ST_WRITE
    | ST_APPEND
    | ST_IMMUTABLE
    | ST_NOATIME
    | ST_NODIRATIME
    | ST_RELATIME
  type statvfs =
    ExtUnixAll.statvfs = {
    f_bsize : int;
    f_blocks : int64;
    f_bfree : int64;
    f_bavail : int64;
    f_files : int64;
    f_ffree : int64;
    f_favail : int64;
    f_fsid : int64;
    f_flag : int;
    f_flags : st_flag list;
    f_namemax : int;
  }
  external statvfs : string -> statvfs = "caml_extunix_statvfs"
  external fstatvfs : Unix.file_descr -> statvfs = "caml_extunix_fstatvfs"
  type at_flag =
    ExtUnixAll.at_flag =
      AT_EACCESS
    | AT_SYMLINK_NOFOLLOW
    | AT_REMOVEDIR
    | AT_SYMLINK_FOLLOW
    | AT_NO_AUTOMOUNT
  external openat :
    Unix.file_descr ->
    string -> open_flag list -> Unix.file_perm -> Unix.file_descr
    = "caml_extunix_openat"
  external fstatat : Unix.file_descr -> string -> at_flag list -> Unix.stats
    = "caml_extunix_fstatat"
  external unlinkat : Unix.file_descr -> string -> at_flag list -> unit
    = "caml_extunix_unlinkat"
  external renameat :
    Unix.file_descr -> string -> Unix.file_descr -> string -> unit
    = "caml_extunix_renameat"
  external mkdirat : Unix.file_descr -> string -> int -> unit
    = "caml_extunix_mkdirat"
  external linkat :
    Unix.file_descr ->
    string -> Unix.file_descr -> string -> at_flag list -> unit
    = "caml_extunix_linkat"
  external symlinkat : string -> Unix.file_descr -> string -> unit
    = "caml_extunix_symlinkat"
  external readlinkat : Unix.file_descr -> string -> string
    = "caml_extunix_readlinkat"
  val int_of_file_descr : Unix.file_descr -> int
  val file_descr_of_int : int -> Unix.file_descr
  external is_open_descr : Unix.file_descr -> bool
    = "caml_extunix_is_open_descr"
  external realpath : string -> string = "caml_extunix_realpath"
  type advice =
    ExtUnixAll.advice =
      POSIX_FADV_NORMAL
    | POSIX_FADV_SEQUENTIAL
    | POSIX_FADV_RANDOM
    | POSIX_FADV_NOREUSE
    | POSIX_FADV_WILLNEED
    | POSIX_FADV_DONTNEED
  external fadvise : Unix.file_descr -> int -> int -> advice -> unit
    = "caml_extunix_fadvise"
  external fallocate : Unix.file_descr -> int -> int -> unit
    = "caml_extunix_fallocate"
  external unsafe_all_pread :
    Unix.file_descr -> int -> string -> int -> int -> int
    = "caml_extunix_all_pread"
  val all_pread : Unix.file_descr -> int -> string -> int -> int -> int
  external unsafe_single_pread :
    Unix.file_descr -> int -> string -> int -> int -> int
    = "caml_extunix_single_pread"
  val single_pread : Unix.file_descr -> int -> string -> int -> int -> int
  external unsafe_pread :
    Unix.file_descr -> int -> string -> int -> int -> int
    = "caml_extunix_pread"
  val pread : Unix.file_descr -> int -> string -> int -> int -> int
  external unsafe_intr_pread :
    Unix.file_descr -> int -> string -> int -> int -> int
    = "caml_extunix_intr_pread"
  val intr_pread : Unix.file_descr -> int -> string -> int -> int -> int
  external unsafe_all_pwrite :
    Unix.file_descr -> int -> string -> int -> int -> int
    = "caml_extunix_all_pwrite"
  val all_pwrite : Unix.file_descr -> int -> string -> int -> int -> int
  external unsafe_single_pwrite :
    Unix.file_descr -> int -> string -> int -> int -> int
    = "caml_extunix_single_pwrite"
  val single_pwrite : Unix.file_descr -> int -> string -> int -> int -> int
  external unsafe_pwrite :
    Unix.file_descr -> int -> string -> int -> int -> int
    = "caml_extunix_pwrite"
  val pwrite : Unix.file_descr -> int -> string -> int -> int -> int
  external unsafe_intr_pwrite :
    Unix.file_descr -> int -> string -> int -> int -> int
    = "caml_extunix_intr_pwrite"
  val intr_pwrite : Unix.file_descr -> int -> string -> int -> int -> int
  external unsafe_all_read : Unix.file_descr -> string -> int -> int -> int
    = "caml_extunix_all_read"
  val all_read : Unix.file_descr -> string -> int -> int -> int
  external unsafe_single_read :
    Unix.file_descr -> string -> int -> int -> int
    = "caml_extunix_single_read"
  val single_read : Unix.file_descr -> string -> int -> int -> int
  external unsafe_read : Unix.file_descr -> string -> int -> int -> int
    = "caml_extunix_read"
  val read : Unix.file_descr -> string -> int -> int -> int
  external unsafe_intr_read : Unix.file_descr -> string -> int -> int -> int
    = "caml_extunix_intr_read"
  val intr_read : Unix.file_descr -> string -> int -> int -> int
  external unsafe_all_write : Unix.file_descr -> string -> int -> int -> int
    = "caml_extunix_all_write"
  val all_write : Unix.file_descr -> string -> int -> int -> int
  external unsafe_single_write :
    Unix.file_descr -> string -> int -> int -> int
    = "caml_extunix_single_write"
  val single_write : Unix.file_descr -> string -> int -> int -> int
  external unsafe_write : Unix.file_descr -> string -> int -> int -> int
    = "caml_extunix_write"
  val write : Unix.file_descr -> string -> int -> int -> int
  external unsafe_intr_write : Unix.file_descr -> string -> int -> int -> int
    = "caml_extunix_intr_write"
  val intr_write : Unix.file_descr -> string -> int -> int -> int
  module LargeFile :
    sig
      external fadvise : Unix.file_descr -> int64 -> int64 -> advice -> unit
        = "caml_extunix_fadvise64"
      external fallocate : Unix.file_descr -> int64 -> int64 -> unit
        = "caml_extunix_fallocate64"
      external unsafe_all_pread :
        Unix.file_descr -> int64 -> string -> int -> int -> int
        = "caml_extunix_all_pread64"
      val all_pread : Unix.file_descr -> int64 -> string -> int -> int -> int
      external unsafe_single_pread :
        Unix.file_descr -> int64 -> string -> int -> int -> int
        = "caml_extunix_single_pread64"
      val single_pread :
        Unix.file_descr -> int64 -> string -> int -> int -> int
      external unsafe_pread :
        Unix.file_descr -> int64 -> string -> int -> int -> int
        = "caml_extunix_pread64"
      val pread : Unix.file_descr -> int64 -> string -> int -> int -> int
      external unsafe_intr_pread :
        Unix.file_descr -> int64 -> string -> int -> int -> int
        = "caml_extunix_intr_pread64"
      val intr_pread :
        Unix.file_descr -> int64 -> string -> int -> int -> int
      external unsafe_all_pwrite :
        Unix.file_descr -> int64 -> string -> int -> int -> int
        = "caml_extunix_all_pwrite64"
      val all_pwrite :
        Unix.file_descr -> int64 -> string -> int -> int -> int
      external unsafe_single_pwrite :
        Unix.file_descr -> int64 -> string -> int -> int -> int
        = "caml_extunix_single_pwrite64"
      val single_pwrite :
        Unix.file_descr -> int64 -> string -> int -> int -> int
      external unsafe_pwrite :
        Unix.file_descr -> int64 -> string -> int -> int -> int
        = "caml_extunix_pwrite64"
      val pwrite : Unix.file_descr -> int64 -> string -> int -> int -> int
      external unsafe_intr_pwrite :
        Unix.file_descr -> int64 -> string -> int -> int -> int
        = "caml_extunix_intr_pwrite64"
      val intr_pwrite :
        Unix.file_descr -> int64 -> string -> int -> int -> int
      module BA :
        sig
          external unsafe_all_pread :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
            = "caml_extunixba_all_pread64"
          val all_pread : Unix.file_descr -> int64 -> ('a, 'b) carray -> int
          external unsafe_single_pread :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
            = "caml_extunixba_single_pread64"
          val single_pread :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
          external unsafe_pread :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
            = "caml_extunixba_pread64"
          val pread : Unix.file_descr -> int64 -> ('a, 'b) carray -> int
          external unsafe_intr_pread :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
            = "caml_extunixba_intr_pread64"
          val intr_pread : Unix.file_descr -> int64 -> ('a, 'b) carray -> int
          external unsafe_all_pwrite :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
            = "caml_extunixba_all_pwrite64"
          val all_pwrite : Unix.file_descr -> int64 -> ('a, 'b) carray -> int
          external unsafe_single_pwrite :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
            = "caml_extunixba_single_pwrite64"
          val single_pwrite :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
          external unsafe_pwrite :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
            = "caml_extunixba_pwrite64"
          val pwrite : Unix.file_descr -> int64 -> ('a, 'b) carray -> int
          external unsafe_intr_pwrite :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
            = "caml_extunixba_intr_pwrite64"
          val intr_pwrite :
            Unix.file_descr -> int64 -> ('a, 'b) carray -> int
        end
    end
  module Ioctl :
    sig
      external siocgifconf : sock:Unix.file_descr -> (string * string) list
        = "caml_extunix_ioctl_siocgifconf"
      external crtscts : Unix.file_descr -> int = "caml_extunix_crtscts"
      external tiocmget : Unix.file_descr -> int
        = "caml_extunix_ioctl_TIOCMGET"
      external tiocmset : Unix.file_descr -> int -> unit
        = "caml_extunix_ioctl_TIOCMSET"
      external tiocmbic : Unix.file_descr -> int -> unit
        = "caml_extunix_ioctl_TIOCMBIC"
      external tiocmbis : Unix.file_descr -> int -> unit
        = "caml_extunix_ioctl_TIOCMBIS"
    end
  external ttyname : Unix.file_descr -> string = "caml_extunix_ttyname"
  external ctermid : unit -> string = "caml_extunix_ctermid"
  external setpgid : int -> int -> unit = "caml_extunix_setpgid"
  external getpgid : int -> int = "caml_extunix_getpgid"
  external getsid : int -> int = "caml_extunix_getsid"
  external setreuid : int -> int -> unit = "caml_extunix_setreuid"
  external setregid : int -> int -> unit = "caml_extunix_setregid"
  external setresuid : int -> int -> int -> unit = "caml_extunix_setresuid"
  external setresgid : int -> int -> int -> unit = "caml_extunix_setresgid"
  external tcgetpgrp : Unix.file_descr -> int = "caml_extunix_tcgetpgrp"
  external tcsetpgrp : Unix.file_descr -> int -> unit
    = "caml_extunix_tcsetpgrp"
  external sys_exit : int -> 'a = "caml_sys_exit"
  external getifaddrs : unit -> (string * string) list
    = "caml_extunix_getifaddrs"
  type socket_int_option =
    ExtUnixAll.socket_int_option =
      TCP_KEEPCNT
    | TCP_KEEPIDLE
    | TCP_KEEPINTVL
  external setsockopt_int :
    Unix.file_descr -> socket_int_option -> int -> unit
    = "caml_extunix_setsockopt_int"
  external getsockopt_int : Unix.file_descr -> socket_int_option -> int
    = "caml_extunix_getsockopt_int"
  external signalfd :
    ?fd:Unix.file_descr ->
    sigs:int list -> flags:int list -> unit -> Unix.file_descr
    = "caml_extunix_signalfd"
  type ssi = ExtUnixAll.ssi
  external signalfd_read : Unix.file_descr -> ssi
    = "caml_extunix_signalfd_read"
  external ssi_signo_sys : ssi -> int = "caml_extunix_ssi_signo_sys"
  external ssi_signo : ssi -> int32 = "caml_extunix_ssi_signo"
  external ssi_errno : ssi -> int32 = "caml_extunix_ssi_errno"
  external ssi_code : ssi -> int32 = "caml_extunix_ssi_code"
  external ssi_pid : ssi -> int32 = "caml_extunix_ssi_pid"
  external ssi_uid : ssi -> int32 = "caml_extunix_ssi_uid"
  external ssi_fd : ssi -> Unix.file_descr = "caml_extunix_ssi_fd"
  external ssi_tid : ssi -> int32 = "caml_extunix_ssi_tid"
  external ssi_band : ssi -> int32 = "caml_extunix_ssi_band"
  external ssi_overrun : ssi -> int32 = "caml_extunix_ssi_overrun"
  external ssi_trapno : ssi -> int32 = "caml_extunix_ssi_trapno"
  external ssi_status : ssi -> int32 = "caml_extunix_ssi_status"
  external ssi_int : ssi -> int32 = "caml_extunix_ssi_int"
  external ssi_ptr : ssi -> int64 = "caml_extunix_ssi_ptr"
  external ssi_utime : ssi -> int64 = "caml_extunix_ssi_utime"
  external ssi_stime : ssi -> int64 = "caml_extunix_ssi_stime"
  external ssi_addr : ssi -> int64 = "caml_extunix_ssi_addr"
  type which_prio_t =
    ExtUnixAll.which_prio_t =
      PRIO_PROCESS of int
    | PRIO_PGRP of int
    | PRIO_USER of int
  type priority = int
  type resource =
    ExtUnixAll.resource =
      RLIMIT_CORE
    | RLIMIT_CPU
    | RLIMIT_DATA
    | RLIMIT_FSIZE
    | RLIMIT_NOFILE
    | RLIMIT_STACK
    | RLIMIT_AS
  val string_of_resource : resource -> string
  module Rlimit :
    sig
      type t = int64 option
      val string_of_bytes : int64 -> string
      val to_string : ?r:resource -> int64 option -> string
      val compare : Int64.t option -> Int64.t option -> int
      val eq : Int64.t option -> Int64.t option -> bool
      val gt : Int64.t option -> Int64.t option -> bool
      val ge : Int64.t option -> Int64.t option -> bool
      val lt : Int64.t option -> Int64.t option -> bool
      val le : Int64.t option -> Int64.t option -> bool
    end
  external getpriority : which_prio_t -> priority
    = "caml_extunix_getpriority"
  external setpriority : which_prio_t -> priority -> unit
    = "caml_extunix_setpriority"
  external getrlimit : resource -> Rlimit.t * Rlimit.t
    = "caml_extunix_getrlimit"
  external setrlimit : resource -> soft:Rlimit.t -> hard:Rlimit.t -> unit
    = "caml_extunix_setrlimit"
  type mlockall_flag = ExtUnixAll.mlockall_flag = MCL_CURRENT | MCL_FUTURE
  external mlockall : mlockall_flag list -> unit = "caml_extunix_mlockall"
  external munlockall : unit -> unit = "caml_extunix_munlockall"
  external memalign : int -> int -> Bigarray.int8_unsigned_elt carray8
    = "caml_extunix_memalign"
  external strptime : string -> string -> Unix.tm = "caml_extunix_strptime"
  external asctime : Unix.tm -> string = "caml_extunix_asctime"
  external strftime : string -> Unix.tm -> string = "caml_extunix_strftime"
  external tzname : bool -> string = "caml_extunix_tzname"
  external timezone : unit -> int * bool = "caml_extunix_timezone"
  external timegm : Unix.tm -> float = "caml_extunix_timegm"
  external posix_openpt : open_flag list -> Unix.file_descr
    = "caml_extunix_posix_openpt"
  external grantpt : Unix.file_descr -> unit = "caml_extunix_grantpt"
  external unlockpt : Unix.file_descr -> unit = "caml_extunix_unlockpt"
  external ptsname : Unix.file_descr -> string = "caml_extunix_ptsname"
  external backtrace : unit -> string array = "caml_extunix_backtrace"
  external malloc_stats : unit -> unit = "caml_extunix_malloc_stats"
  external malloc_info : unit -> string = "caml_extunix_malloc_info"
  external ptrace_traceme : unit -> unit = "caml_extunix_ptrace_traceme"
  external ptrace_peekdata : int -> nativeint -> nativeint
    = "caml_extunix_ptrace_peekdata"
  external ptrace_peektext : int -> nativeint -> nativeint
    = "caml_extunix_ptrace_peektext"
  type ptrace_request =
    ExtUnixAll.ptrace_request =
      PTRACE_ATTACH
    | PTRACE_DETACH
  external ptrace : int -> ptrace_request -> unit = "caml_extunix_ptrace"
  external setenv : string -> string -> bool -> unit = "caml_extunix_setenv"
  external unsetenv : string -> unit = "caml_extunix_unsetenv"
  external clearenv : unit -> unit = "caml_extunix_clearenv"
  external mkdtemp : string -> string = "caml_extunix_mkdtemp"
  external internal_mkstemps : string -> int -> Unix.file_descr
    = "caml_extunix_internal_mkstemps"
  val mkstemp : ?suffix:string -> string -> Unix.file_descr * string
  external internal_mkostemps :
    string -> int -> open_flag list -> Unix.file_descr
    = "caml_extunix_internal_mkostemps"
  val mkostemp :
    ?suffix:string ->
    ?flags:open_flag list -> string -> Unix.file_descr * string
  module BigEndian :
    sig
      external uint16_from_host : int -> int = "caml_extunix_htobe16"
        "noalloc"
      external int16_from_host : int -> int = "caml_extunix_htobe16_signed"
        "noalloc"
      external uint16_to_host : int -> int = "caml_extunix_be16toh" "noalloc"
      external int16_to_host : int -> int = "caml_extunix_be16toh_signed"
        "noalloc"
      external uint31_from_host : int -> int = "caml_extunix_htobe31"
        "noalloc"
      external int31_from_host : int -> int = "caml_extunix_htobe31_signed"
        "noalloc"
      external uint31_to_host : int -> int = "caml_extunix_be31toh" "noalloc"
      external int31_to_host : int -> int = "caml_extunix_be31toh_signed"
        "noalloc"
      external int32_from_host : int32 -> int32 = "caml_extunix_htobe32"
      external int32_to_host : int32 -> int32 = "caml_extunix_be32toh"
      external int64_from_host : int64 -> int64 = "caml_extunix_htobe64"
      external int64_to_host : int64 -> int64 = "caml_extunix_be64toh"
      external unsafe_get_uint8 : string -> int -> int
        = "caml_extunix_get_u8" "noalloc"
      external unsafe_get_int8 : string -> int -> int = "caml_extunix_get_s8"
        "noalloc"
      external unsafe_get_uint16 : string -> int -> int
        = "caml_extunix_get_bu16" "noalloc"
      external unsafe_get_int16 : string -> int -> int
        = "caml_extunix_get_bs16" "noalloc"
      external unsafe_get_uint31 : string -> int -> int
        = "caml_extunix_get_bu31" "noalloc"
      external unsafe_get_int31 : string -> int -> int
        = "caml_extunix_get_bs31" "noalloc"
      external unsafe_get_int32 : string -> int -> int32
        = "caml_extunix_get_bs32"
      external unsafe_get_uint63 : string -> int -> int
        = "caml_extunix_get_bu63" "noalloc"
      external unsafe_get_int63 : string -> int -> int
        = "caml_extunix_get_bs63" "noalloc"
      external unsafe_get_int64 : string -> int -> int64
        = "caml_extunix_get_bs64"
      val get_uint8 : string -> int -> int
      val get_int8 : string -> int -> int
      val get_uint16 : string -> int -> int
      val get_int16 : string -> int -> int
      val get_uint31 : string -> int -> int
      val get_int31 : string -> int -> int
      val get_int32 : string -> int -> int32
      val get_uint63 : string -> int -> int
      val get_int63 : string -> int -> int
      val get_int64 : string -> int -> int64
      external unsafe_set_uint8 : string -> int -> int -> unit
        = "caml_extunix_set_8" "noalloc"
      external unsafe_set_int8 : string -> int -> int -> unit
        = "caml_extunix_set_8" "noalloc"
      external unsafe_set_uint16 : string -> int -> int -> unit
        = "caml_extunix_set_b16" "noalloc"
      external unsafe_set_int16 : string -> int -> int -> unit
        = "caml_extunix_set_b16" "noalloc"
      external unsafe_set_uint31 : string -> int -> int -> unit
        = "caml_extunix_set_b31" "noalloc"
      external unsafe_set_int31 : string -> int -> int -> unit
        = "caml_extunix_set_b31" "noalloc"
      external unsafe_set_int32 : string -> int -> int32 -> unit
        = "caml_extunix_set_b32" "noalloc"
      external unsafe_set_uint63 : string -> int -> int -> unit
        = "caml_extunix_set_b63" "noalloc"
      external unsafe_set_int63 : string -> int -> int -> unit
        = "caml_extunix_set_b63" "noalloc"
      external unsafe_set_int64 : string -> int -> int64 -> unit
        = "caml_extunix_set_b64" "noalloc"
      val set_uint8 : string -> int -> int -> unit
      val set_int8 : string -> int -> int -> unit
      val set_uint16 : string -> int -> int -> unit
      val set_int16 : string -> int -> int -> unit
      val set_uint31 : string -> int -> int -> unit
      val set_int31 : string -> int -> int -> unit
      val set_int32 : string -> int -> int32 -> unit
      val set_uint63 : string -> int -> int -> unit
      val set_int63 : string -> int -> int -> unit
      val set_int64 : string -> int -> int64 -> unit
    end
  module LittleEndian :
    sig
      external uint16_from_host : int -> int = "caml_extunix_htole16"
        "noalloc"
      external int16_from_host : int -> int = "caml_extunix_htole16_signed"
        "noalloc"
      external uint16_to_host : int -> int = "caml_extunix_le16toh" "noalloc"
      external int16_to_host : int -> int = "caml_extunix_le16toh_signed"
        "noalloc"
      external uint31_from_host : int -> int = "caml_extunix_htole31"
        "noalloc"
      external int31_from_host : int -> int = "caml_extunix_htole31_signed"
        "noalloc"
      external uint31_to_host : int -> int = "caml_extunix_le31toh" "noalloc"
      external int31_to_host : int -> int = "caml_extunix_le31toh_signed"
        "noalloc"
      external int32_from_host : int32 -> int32 = "caml_extunix_htole32"
      external int32_to_host : int32 -> int32 = "caml_extunix_le32toh"
      external int64_from_host : int64 -> int64 = "caml_extunix_htole64"
      external int64_to_host : int64 -> int64 = "caml_extunix_le64toh"
      external unsafe_get_uint8 : string -> int -> int
        = "caml_extunix_get_u8" "noalloc"
      external unsafe_get_int8 : string -> int -> int = "caml_extunix_get_s8"
        "noalloc"
      external unsafe_get_uint16 : string -> int -> int
        = "caml_extunix_get_lu16" "noalloc"
      external unsafe_get_int16 : string -> int -> int
        = "caml_extunix_get_ls16" "noalloc"
      external unsafe_get_uint31 : string -> int -> int
        = "caml_extunix_get_lu31" "noalloc"
      external unsafe_get_int31 : string -> int -> int
        = "caml_extunix_get_ls31" "noalloc"
      external unsafe_get_int32 : string -> int -> int32
        = "caml_extunix_get_ls32"
      external unsafe_get_uint63 : string -> int -> int
        = "caml_extunix_get_lu63" "noalloc"
      external unsafe_get_int63 : string -> int -> int
        = "caml_extunix_get_ls63" "noalloc"
      external unsafe_get_int64 : string -> int -> int64
        = "caml_extunix_get_ls64"
      val get_uint8 : string -> int -> int
      val get_int8 : string -> int -> int
      val get_uint16 : string -> int -> int
      val get_int16 : string -> int -> int
      val get_uint31 : string -> int -> int
      val get_int31 : string -> int -> int
      val get_int32 : string -> int -> int32
      val get_uint63 : string -> int -> int
      val get_int63 : string -> int -> int
      val get_int64 : string -> int -> int64
      external unsafe_set_uint8 : string -> int -> int -> unit
        = "caml_extunix_set_8" "noalloc"
      external unsafe_set_int8 : string -> int -> int -> unit
        = "caml_extunix_set_8" "noalloc"
      external unsafe_set_uint16 : string -> int -> int -> unit
        = "caml_extunix_set_l16" "noalloc"
      external unsafe_set_int16 : string -> int -> int -> unit
        = "caml_extunix_set_l16" "noalloc"
      external unsafe_set_uint31 : string -> int -> int -> unit
        = "caml_extunix_set_l31" "noalloc"
      external unsafe_set_int31 : string -> int -> int -> unit
        = "caml_extunix_set_l31" "noalloc"
      external unsafe_set_int32 : string -> int -> int32 -> unit
        = "caml_extunix_set_l32" "noalloc"
      external unsafe_set_uint63 : string -> int -> int -> unit
        = "caml_extunix_set_l63" "noalloc"
      external unsafe_set_int63 : string -> int -> int -> unit
        = "caml_extunix_set_l63" "noalloc"
      external unsafe_set_int64 : string -> int -> int64 -> unit
        = "caml_extunix_set_l64" "noalloc"
      val set_uint8 : string -> int -> int -> unit
      val set_int8 : string -> int -> int -> unit
      val set_uint16 : string -> int -> int -> unit
      val set_int16 : string -> int -> int -> unit
      val set_uint31 : string -> int -> int -> unit
      val set_int31 : string -> int -> int -> unit
      val set_int32 : string -> int -> int32 -> unit
      val set_uint63 : string -> int -> int -> unit
      val set_int63 : string -> int -> int -> unit
      val set_int64 : string -> int -> int64 -> unit
    end
  module HostEndian :
    sig
      external unsafe_get_uint8 : string -> int -> int
        = "caml_extunix_get_u8" "noalloc"
      external unsafe_get_int8 : string -> int -> int = "caml_extunix_get_s8"
        "noalloc"
      external unsafe_get_uint16 : string -> int -> int
        = "caml_extunix_get_hu16" "noalloc"
      external unsafe_get_int16 : string -> int -> int
        = "caml_extunix_get_hs16" "noalloc"
      external unsafe_get_uint31 : string -> int -> int
        = "caml_extunix_get_hu31" "noalloc"
      external unsafe_get_int31 : string -> int -> int
        = "caml_extunix_get_hs31" "noalloc"
      external unsafe_get_int32 : string -> int -> int32
        = "caml_extunix_get_hs32"
      external unsafe_get_uint63 : string -> int -> int
        = "caml_extunix_get_hu63" "noalloc"
      external unsafe_get_int63 : string -> int -> int
        = "caml_extunix_get_hs63" "noalloc"
      external unsafe_get_int64 : string -> int -> int64
        = "caml_extunix_get_hs64"
      val get_uint8 : string -> int -> int
      val get_int8 : string -> int -> int
      val get_uint16 : string -> int -> int
      val get_int16 : string -> int -> int
      val get_uint31 : string -> int -> int
      val get_int31 : string -> int -> int
      val get_int32 : string -> int -> int32
      val get_uint63 : string -> int -> int
      val get_int63 : string -> int -> int
      val get_int64 : string -> int -> int64
      external unsafe_set_uint8 : string -> int -> int -> unit
        = "caml_extunix_set_8" "noalloc"
      external unsafe_set_int8 : string -> int -> int -> unit
        = "caml_extunix_set_8" "noalloc"
      external unsafe_set_uint16 : string -> int -> int -> unit
        = "caml_extunix_set_h16" "noalloc"
      external unsafe_set_int16 : string -> int -> int -> unit
        = "caml_extunix_set_h16" "noalloc"
      external unsafe_set_uint31 : string -> int -> int -> unit
        = "caml_extunix_set_h31" "noalloc"
      external unsafe_set_int31 : string -> int -> int -> unit
        = "caml_extunix_set_h31" "noalloc"
      external unsafe_set_int32 : string -> int -> int32 -> unit
        = "caml_extunix_set_h32" "noalloc"
      external unsafe_set_uint63 : string -> int -> int -> unit
        = "caml_extunix_set_h63" "noalloc"
      external unsafe_set_int63 : string -> int -> int -> unit
        = "caml_extunix_set_h63" "noalloc"
      external unsafe_set_int64 : string -> int -> int64 -> unit
        = "caml_extunix_set_h64" "noalloc"
      val set_uint8 : string -> int -> int -> unit
      val set_int8 : string -> int -> int -> unit
      val set_uint16 : string -> int -> int -> unit
      val set_int16 : string -> int -> int -> unit
      val set_uint31 : string -> int -> int -> unit
      val set_int31 : string -> int -> int -> unit
      val set_int32 : string -> int -> int32 -> unit
      val set_uint63 : string -> int -> int -> unit
      val set_int63 : string -> int -> int -> unit
      val set_int64 : string -> int -> int64 -> unit
    end
  external read_credentials : Unix.file_descr -> int * int * int
    = "caml_extunix_read_credentials"
  external fexecve : Unix.file_descr -> string array -> string array -> 'a
    = "caml_extunix_fexecve"
  external sendmsg :
    Unix.file_descr -> ?sendfd:Unix.file_descr -> string -> unit
    = "caml_extunix_sendmsg"
  external recvmsg_fd : Unix.file_descr -> Unix.file_descr option * string
    = "caml_extunix_recvmsg"
  val sendfd : Unix.file_descr -> Unix.file_descr -> unit
  val recvfd : Unix.file_descr -> Unix.file_descr
  exception Recvfd of Unix.file_descr * string
  val recvmsg : Unix.file_descr -> string
  val recvmsg_nofd : Unix.file_descr -> string
  type sysconf_name =
    ExtUnixAll.sysconf_name =
      ARG_MAX
    | CHILD_MAX
    | HOST_NAME_MAX
    | LOGIN_NAME_MAX
    | CLK_TCK
    | OPEN_MAX
    | PAGESIZE
    | RE_DUP_MAX
    | STREAM_MAX
    | SYMLOOP_MAX
    | TTY_NAME_MAX
    | TZNAME_MAX
    | POSIX_VERSION
    | LINE_MAX
    | POSIX2_VERSION
    | PHYS_PAGES
    | AVPHYS_PAGES
    | NPROCESSORS_CONF
    | NPROCESSORS_ONLN
  external sysconf : sysconf_name -> int64 = "caml_extunix_sysconf"
  type splice_flag =
    ExtUnixAll.splice_flag =
      SPLICE_F_MOVE
    | SPLICE_F_NONBLOCK
    | SPLICE_F_MORE
    | SPLICE_F_GIFT
  external splice :
    Unix.file_descr ->
    int option ->
    Unix.file_descr -> int option -> int -> splice_flag list -> int
    = "caml_extunix_splice_bytecode" "caml_extunix_splice"
  external tee :
    Unix.file_descr -> Unix.file_descr -> int -> splice_flag list -> int
    = "caml_extunix_tee"
  module BA :
    sig
      external unsafe_all_pread :
        Unix.file_descr -> int -> ('a, 'b) carray -> int
        = "caml_extunixba_all_pread"
      val all_pread : Unix.file_descr -> int -> ('a, 'b) carray -> int
      external unsafe_single_pread :
        Unix.file_descr -> int -> ('a, 'b) carray -> int
        = "caml_extunixba_single_pread"
      val single_pread : Unix.file_descr -> int -> ('a, 'b) carray -> int
      external unsafe_pread :
        Unix.file_descr -> int -> ('a, 'b) carray -> int
        = "caml_extunixba_pread"
      val pread : Unix.file_descr -> int -> ('a, 'b) carray -> int
      external unsafe_intr_pread :
        Unix.file_descr -> int -> ('a, 'b) carray -> int
        = "caml_extunixba_intr_pread"
      val intr_pread : Unix.file_descr -> int -> ('a, 'b) carray -> int
      external unsafe_all_pwrite :
        Unix.file_descr -> int -> ('a, 'b) carray -> int
        = "caml_extunixba_all_pwrite"
      val all_pwrite : Unix.file_descr -> int -> ('a, 'b) carray -> int
      external unsafe_single_pwrite :
        Unix.file_descr -> int -> ('a, 'b) carray -> int
        = "caml_extunixba_single_pwrite"
      val single_pwrite : Unix.file_descr -> int -> ('a, 'b) carray -> int
      external unsafe_pwrite :
        Unix.file_descr -> int -> ('a, 'b) carray -> int
        = "caml_extunixba_pwrite"
      val pwrite : Unix.file_descr -> int -> ('a, 'b) carray -> int
      external unsafe_intr_pwrite :
        Unix.file_descr -> int -> ('a, 'b) carray -> int
        = "caml_extunixba_intr_pwrite"
      val intr_pwrite : Unix.file_descr -> int -> ('a, 'b) carray -> int
      external all_read : Unix.file_descr -> ('a, 'b) carray -> int
        = "caml_extunixba_all_read"
      external single_read : Unix.file_descr -> ('a, 'b) carray -> int
        = "caml_extunixba_single_read"
      external read : Unix.file_descr -> ('a, 'b) carray -> int
        = "caml_extunixba_read"
      external intr_read : Unix.file_descr -> ('a, 'b) carray -> int
        = "caml_extunixba_intr_read"
      external all_write : Unix.file_descr -> ('a, 'b) carray -> int
        = "caml_extunixba_all_write"
      external single_write : Unix.file_descr -> ('a, 'b) carray -> int
        = "caml_extunixba_single_write"
      external write : Unix.file_descr -> ('a, 'b) carray -> int
        = "caml_extunixba_write"
      external intr_write : Unix.file_descr -> ('a, 'b) carray -> int
        = "caml_extunixba_intr_write"
      module BigEndian :
        sig
          external unsafe_get_uint8 : 'a carray8 -> int -> int
            = "caml_extunixba_get_u8" "noalloc"
          external unsafe_get_int8 : 'a carray8 -> int -> int
            = "caml_extunixba_get_s8" "noalloc"
          external unsafe_get_uint16 : 'a carray8 -> int -> int
            = "caml_extunixba_get_bu16" "noalloc"
          external unsafe_get_int16 : 'a carray8 -> int -> int
            = "caml_extunixba_get_bs16" "noalloc"
          external unsafe_get_uint31 : 'a carray8 -> int -> int
            = "caml_extunixba_get_bu31" "noalloc"
          external unsafe_get_int31 : 'a carray8 -> int -> int
            = "caml_extunixba_get_bs31" "noalloc"
          external unsafe_get_int32 : 'a carray8 -> int -> int32
            = "caml_extunixba_get_bs32"
          external unsafe_get_uint63 : 'a carray8 -> int -> int
            = "caml_extunixba_get_bu63" "noalloc"
          external unsafe_get_int63 : 'a carray8 -> int -> int
            = "caml_extunixba_get_bs63" "noalloc"
          external unsafe_get_int64 : 'a carray8 -> int -> int64
            = "caml_extunixba_get_bs64"
          val get_uint8 : 'a carray8 -> int -> int
          val get_int8 : 'a carray8 -> int -> int
          val get_uint16 : 'a carray8 -> int -> int
          val get_int16 : 'a carray8 -> int -> int
          val get_uint31 : 'a carray8 -> int -> int
          val get_int31 : 'a carray8 -> int -> int
          val get_int32 : 'a carray8 -> int -> int32
          val get_uint63 : 'a carray8 -> int -> int
          val get_int63 : 'a carray8 -> int -> int
          val get_int64 : 'a carray8 -> int -> int64
          external unsafe_set_uint8 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_8" "noalloc"
          external unsafe_set_int8 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_8" "noalloc"
          external unsafe_set_uint16 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_b16" "noalloc"
          external unsafe_set_int16 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_b16" "noalloc"
          external unsafe_set_uint31 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_b31" "noalloc"
          external unsafe_set_int31 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_b31" "noalloc"
          external unsafe_set_int32 : 'a carray8 -> int -> int32 -> unit
            = "caml_extunixba_set_b32" "noalloc"
          external unsafe_set_uint63 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_b63" "noalloc"
          external unsafe_set_int63 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_b63" "noalloc"
          external unsafe_set_int64 : 'a carray8 -> int -> int64 -> unit
            = "caml_extunixba_set_b64" "noalloc"
          val set_uint8 : 'a carray8 -> int -> int -> unit
          val set_int8 : 'a carray8 -> int -> int -> unit
          val set_uint16 : 'a carray8 -> int -> int -> unit
          val set_int16 : 'a carray8 -> int -> int -> unit
          val set_uint31 : 'a carray8 -> int -> int -> unit
          val set_int31 : 'a carray8 -> int -> int -> unit
          val set_int32 : 'a carray8 -> int -> int32 -> unit
          val set_uint63 : 'a carray8 -> int -> int -> unit
          val set_int63 : 'a carray8 -> int -> int -> unit
          val set_int64 : 'a carray8 -> int -> int64 -> unit
        end
      module LittleEndian :
        sig
          external unsafe_get_uint8 : 'a carray8 -> int -> int
            = "caml_extunixba_get_u8" "noalloc"
          external unsafe_get_int8 : 'a carray8 -> int -> int
            = "caml_extunixba_get_s8" "noalloc"
          external unsafe_get_uint16 : 'a carray8 -> int -> int
            = "caml_extunixba_get_lu16" "noalloc"
          external unsafe_get_int16 : 'a carray8 -> int -> int
            = "caml_extunixba_get_ls16" "noalloc"
          external unsafe_get_uint31 : 'a carray8 -> int -> int
            = "caml_extunixba_get_lu31" "noalloc"
          external unsafe_get_int31 : 'a carray8 -> int -> int
            = "caml_extunixba_get_ls31" "noalloc"
          external unsafe_get_int32 : 'a carray8 -> int -> int32
            = "caml_extunixba_get_ls32"
          external unsafe_get_uint63 : 'a carray8 -> int -> int
            = "caml_extunixba_get_lu63" "noalloc"
          external unsafe_get_int63 : 'a carray8 -> int -> int
            = "caml_extunixba_get_ls63" "noalloc"
          external unsafe_get_int64 : 'a carray8 -> int -> int64
            = "caml_extunixba_get_ls64"
          val get_uint8 : 'a carray8 -> int -> int
          val get_int8 : 'a carray8 -> int -> int
          val get_uint16 : 'a carray8 -> int -> int
          val get_int16 : 'a carray8 -> int -> int
          val get_uint31 : 'a carray8 -> int -> int
          val get_int31 : 'a carray8 -> int -> int
          val get_int32 : 'a carray8 -> int -> int32
          val get_uint63 : 'a carray8 -> int -> int
          val get_int63 : 'a carray8 -> int -> int
          val get_int64 : 'a carray8 -> int -> int64
          external unsafe_set_uint8 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_8" "noalloc"
          external unsafe_set_int8 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_8" "noalloc"
          external unsafe_set_uint16 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_l16" "noalloc"
          external unsafe_set_int16 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_l16" "noalloc"
          external unsafe_set_uint31 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_l31" "noalloc"
          external unsafe_set_int31 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_l31" "noalloc"
          external unsafe_set_int32 : 'a carray8 -> int -> int32 -> unit
            = "caml_extunixba_set_l32" "noalloc"
          external unsafe_set_uint63 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_l63" "noalloc"
          external unsafe_set_int63 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_l63" "noalloc"
          external unsafe_set_int64 : 'a carray8 -> int -> int64 -> unit
            = "caml_extunixba_set_l64" "noalloc"
          val set_uint8 : 'a carray8 -> int -> int -> unit
          val set_int8 : 'a carray8 -> int -> int -> unit
          val set_uint16 : 'a carray8 -> int -> int -> unit
          val set_int16 : 'a carray8 -> int -> int -> unit
          val set_uint31 : 'a carray8 -> int -> int -> unit
          val set_int31 : 'a carray8 -> int -> int -> unit
          val set_int32 : 'a carray8 -> int -> int32 -> unit
          val set_uint63 : 'a carray8 -> int -> int -> unit
          val set_int63 : 'a carray8 -> int -> int -> unit
          val set_int64 : 'a carray8 -> int -> int64 -> unit
        end
      module HostEndian :
        sig
          external unsafe_get_uint8 : 'a carray8 -> int -> int
            = "caml_extunixba_get_u8" "noalloc"
          external unsafe_get_int8 : 'a carray8 -> int -> int
            = "caml_extunixba_get_s8" "noalloc"
          external unsafe_get_uint16 : 'a carray8 -> int -> int
            = "caml_extunixba_get_hu16" "noalloc"
          external unsafe_get_int16 : 'a carray8 -> int -> int
            = "caml_extunixba_get_hs16" "noalloc"
          external unsafe_get_uint31 : 'a carray8 -> int -> int
            = "caml_extunixba_get_hu31" "noalloc"
          external unsafe_get_int31 : 'a carray8 -> int -> int
            = "caml_extunixba_get_hs31" "noalloc"
          external unsafe_get_int32 : 'a carray8 -> int -> int32
            = "caml_extunixba_get_hs32"
          external unsafe_get_uint63 : 'a carray8 -> int -> int
            = "caml_extunixba_get_hu63" "noalloc"
          external unsafe_get_int63 : 'a carray8 -> int -> int
            = "caml_extunixba_get_hs63" "noalloc"
          external unsafe_get_int64 : 'a carray8 -> int -> int64
            = "caml_extunixba_get_hs64"
          val get_uint8 : 'a carray8 -> int -> int
          val get_int8 : 'a carray8 -> int -> int
          val get_uint16 : 'a carray8 -> int -> int
          val get_int16 : 'a carray8 -> int -> int
          val get_uint31 : 'a carray8 -> int -> int
          val get_int31 : 'a carray8 -> int -> int
          val get_int32 : 'a carray8 -> int -> int32
          val get_uint63 : 'a carray8 -> int -> int
          val get_int63 : 'a carray8 -> int -> int
          val get_int64 : 'a carray8 -> int -> int64
          external unsafe_set_uint8 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_8" "noalloc"
          external unsafe_set_int8 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_8" "noalloc"
          external unsafe_set_uint16 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_h16" "noalloc"
          external unsafe_set_int16 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_h16" "noalloc"
          external unsafe_set_uint31 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_h31" "noalloc"
          external unsafe_set_int31 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_h31" "noalloc"
          external unsafe_set_int32 : 'a carray8 -> int -> int32 -> unit
            = "caml_extunixba_set_h32" "noalloc"
          external unsafe_set_uint63 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_h63" "noalloc"
          external unsafe_set_int63 : 'a carray8 -> int -> int -> unit
            = "caml_extunixba_set_h63" "noalloc"
          external unsafe_set_int64 : 'a carray8 -> int -> int64 -> unit
            = "caml_extunixba_set_h64" "noalloc"
          val set_uint8 : 'a carray8 -> int -> int -> unit
          val set_int8 : 'a carray8 -> int -> int -> unit
          val set_uint16 : 'a carray8 -> int -> int -> unit
          val set_int16 : 'a carray8 -> int -> int -> unit
          val set_uint31 : 'a carray8 -> int -> int -> unit
          val set_int31 : 'a carray8 -> int -> int -> unit
          val set_int32 : 'a carray8 -> int -> int32 -> unit
          val set_uint63 : 'a carray8 -> int -> int -> unit
          val set_int63 : 'a carray8 -> int -> int -> unit
          val set_int64 : 'a carray8 -> int -> int64 -> unit
        end
      external unsafe_get_substr : 'a carray8 -> int -> int -> string
        = "caml_extunixba_get_substr"
      val get_substr : 'a carray8 -> int -> int -> string
      external unsafe_set_substr : 'a carray8 -> int -> string -> unit
        = "caml_extunixba_set_substr"
      val set_substr : 'a carray8 -> int -> string -> unit
      type 'a iov =
        'ExtUnixAll.BA.iov = {
        iov_buf : 'a carray8;
        iov_off : int;
        iov_len : int;
      }
      external vmsplice :
        Unix.file_descr -> 'a iov array -> splice_flag list -> int
        = "caml_extunixba_vmsplice"
    end
  val have : string -> bool option
end