module Linux_ext: Linux_extmodule Sysinfo:sig..end
val sendfile : (?pos:int ->
?len:int -> fd:Unix.File_descr.t -> Unix.File_descr.t -> int)
Or_error.tsendfile ?pos ?len ~fd sock sends mmap-able data from file
descriptor fd to socket sock using offset pos and length len.Unix_error on Unix-errors.
NOTE: if the returned value is unequal to what was requested (=
the initial size of the data by default), the system call may have
been interrupted by a signal, the source file may have been truncated
during operation, or a timeout occurred on the socket during sending.
It is currently impossible to find out which of the events above
happened. Calling Linux_ext.sendfile several times on the same descriptor
that only partially accepted data due to a timeout will eventually
lead to the unix error EAGAIN.
type tcp_bool_option =
| |
TCP_CORK |
val gettcpopt_bool : (Unix.File_descr.t -> tcp_bool_option -> bool) Or_error.tgettcpopt_bool sock optopt for socket sock.val settcpopt_bool : (Unix.File_descr.t -> tcp_bool_option -> bool -> unit)
Or_error.tsettcpopt_bool sock opt v sets the current value of the boolean
TCP socket option opt for socket sock to value v.val send_nonblocking_no_sigpipe : (Unix.File_descr.t -> ?pos:int -> ?len:int -> string -> int option)
Or_error.tsend_nonblocking_no_sigpipe sock ?pos ?len buf tries to do a
nonblocking send on socket sock given buffer buf, offset pos
and length len. Prevents SIGPIPE, i.e. raise a Unix-error
in that case immediately.Invalid_argument if the designated buffer range is invalid.Unix_error on Unix-errors.Some bytes_written or None
if the operation would have blocked.val send_no_sigpipe : (Unix.File_descr.t -> ?pos:int -> ?len:int -> string -> int) Or_error.tsend_no_sigpipe sock ?pos ?len buf tries to do a
blocking send on socket sock given buffer buf, offset pos
and length len. Prevents SIGPIPE, i.e. raise a Unix-error in
that case immediately.Invalid_argument if the designated buffer range is invalid.Unix_error on Unix-errors.val sendmsg_nonblocking_no_sigpipe : (Unix.File_descr.t ->
?count:int -> string Unix.IOVec.t array -> int option)
Or_error.tsendmsg_nonblocking_no_sigpipe sock ?count iovecs tries to do
a nonblocking send on socket sock using count I/O-vectors
iovecs. Prevents SIGPIPE, i.e. raises a Unix-error in that
case immediately.Invalid_argument if the designated ranges are invalid.Unix_error on Unix-errors.Some bytes_written or None if the
operation would have blocked.module Clock:sig..end
module Timerfd:sig..end
val pr_set_pdeathsig : (Signal.t -> unit) Or_error.tpr_set_pdeathsig s sets the signal s to be sent to the executing
process when its parent dies. NOTE: the parent may have died
before or while executing this system call. To make sure that you
do not miss this event, you should call getppid to get
the parent process id after this system call. If the parent has
died, the returned parent PID will be 1, i.e. the init process will
have adopted the child. You should then either send the signal to
yourself using Unix.kill, or execute an appropriate handler.val pr_get_pdeathsig : (unit -> Signal.t) Or_error.tpr_get_pdeathsig () get the signal that will be sent to the
currently executing process when its parent dies.val pr_set_name_first16 : (string -> unit) Or_error.tpr_set_name_first16 name sets the name of the executing thread to name. Only
the first 16 bytes in name will be used, the rest is ignored.val pr_get_name : (unit -> string) Or_error.tpr_get_name () gets the name of the executing thread. The name is
at most 16 bytes long.val file_descr_realpath : (Unix.File_descr.t -> string) Or_error.tfile_descr_realpath fdUnix_error on errors.fd.val out_channel_realpath : (Pervasives.out_channel -> string) Or_error.tout_channel_realpath ocUnix_error on errors.oc.val in_channel_realpath : (Pervasives.in_channel -> string) Or_error.tin_channel_realpath icUnix_error on errors.ic.val sched_setaffinity : (?pid:Pid.t -> cpuset:int list -> unit -> unit) Or_error.tval sched_setaffinity_this_thread : (cpuset:int list -> unit) Or_error.tval cores : (unit -> int) Or_error.tcores ()val get_terminal_size : (unit -> int * int) Or_error.tget_terminal_size ()(rows, cols), the number of rows and
columns of the terminal.val gettid : (unit -> int) Or_error.tmodule Priority:sig..end
val setpriority : (Priority.t -> unit) Or_error.tval getpriority : (unit -> Priority.t) Or_error.tval get_ipv4_address_for_interface : (string -> string) Or_error.tval bind_to_interface : (Unix.File_descr.t -> [ `Any | `Interface_name of string ] -> unit)
Or_error.tmodule Epoll:sig..end
val bin_tcp_bool_option : tcp_bool_option Bin_prot.Type_class.tval bin_read_tcp_bool_option : tcp_bool_option Bin_prot.Read_ml.readerval bin_read_tcp_bool_option_ : tcp_bool_option Bin_prot.Unsafe_read_c.readerval bin_read_tcp_bool_option__ : (int -> tcp_bool_option) Bin_prot.Unsafe_read_c.readerval bin_reader_tcp_bool_option : tcp_bool_option Bin_prot.Type_class.readerval bin_size_tcp_bool_option : tcp_bool_option Bin_prot.Size.sizerval bin_write_tcp_bool_option : tcp_bool_option Bin_prot.Write_ml.writerval bin_write_tcp_bool_option_ : tcp_bool_option Bin_prot.Unsafe_write_c.writerval bin_writer_tcp_bool_option : tcp_bool_option Bin_prot.Type_class.writerval tcp_bool_option_of_sexp : Sexplib.Sexp.t -> tcp_bool_optionval sexp_of_tcp_bool_option : tcp_bool_option -> Sexplib.Sexp.tgettcpopt_bool sock optsettcpopt_bool sock opt v sets the current value of the boolean
TCP socket option opt for socket sock to value v.send_nonblocking_no_sigpipe sock ?pos ?len buf tries to do a
nonblocking send on socket sock given buffer buf, offset pos
and length len. Prevents SIGPIPE, i.e. raise a Unix-error
in that case immediately.send_no_sigpipe sock ?pos ?len buf tries to do a
blocking send on socket sock given buffer buf, offset pos
and length len. Prevents SIGPIPE, i.e. raise a Unix-error in
that case immediately.sendmsg_nonblocking_no_sigpipe sock ?count iovecs tries to do
a nonblocking send on socket sock using count I/O-vectors
iovecs. Prevents SIGPIPE, i.e. raises a Unix-error in that
case immediately.get_process_clock the clock measuring the CPU-time of a process.get_thread_clock the clock measuring the CPU-time of the current thread.TFD_NONBLOCKTFD_CLOEXECcreate ?flags clock creates a new timer file descriptor. With Linux 2.6.26 or
earlier flags must be empty.set t when sets t to fire once, at the time specified by when.set_repeating ?initial t interval sets t to fire every interval starting at
when.`After intervalclear t causes t to not fire any more.get t returns the current state of the timer t.pr_set_pdeathsig s sets the signal s to be sent to the executing
process when its parent dies. NOTE: the parent may have died
before or while executing this system call. To make sure that you
do not miss this event, you should call getppid to get
the parent process id after this system call. If the parent has
died, the returned parent PID will be 1, i.e. the init process will
have adopted the child. You should then either send the signal to
yourself using Unix.kill, or execute an appropriate handler.pr_get_pdeathsig () get the signal that will be sent to the
currently executing process when its parent dies.pr_set_name_first16 name sets the name of the executing thread to name. Only
the first 16 bytes in name will be used, the rest is ignored.pr_get_name () gets the name of the executing thread. The name is
at most 16 bytes long.file_descr_realpath fdout_channel_realpath ocin_channel_realpath iccores ()get_terminal_size ()
See the man pages for a full description of the epoll facility.
An Epoll.Flags.t is an immutable set of flags for which one can register
interest for a file descriptor. It is implemented as a bitmask, and so all
operations (+, -, etc.) are constant time with no allocation.
sexp_of_t produces a human-readable list of bits, e.g. "(in out)".
An Epoll.t maintains a map from File_descr.t to Flags.t, where the domain is
the set of file descriptors that one is interested in, and the flags associated with
each file descriptor specify the types of events one is interested in being notified
about for that file descriptor. Our implementation maintains a user-level table
equivalent to the kernel epoll set, so that sexp_of_t produces useful
human-readable information, and so that we can present our standard table
interface.
An Epoll.t also has a buffer that is used to store the set of ready fds returned
by calling wait.
create ~num_file_descrs creates a new epoll set able to watch file descriptors in
[0, num_file_descrs). Additionally, the set allocates space for reading the ready
events when wait returns, allowing for up to max_ready_events to be returned in
a single call to wait.
map operations
wait t ~timeout blocks until at least one file descriptor in t is ready for one
of the events it is being watched for, or timeout passes. wait side effects t
by storing the ready set in it. One can subsequently access the ready set by
calling iter_ready or fold_ready.
The timeout has a granularity of one millisecond. wait rounds up the timeout
to the next millisecond. E.g. a timeout of one microsecond will be rounded up
to one millisecond.
Note that this method should not be considered thread safe. There is mutable state
in t that will be changed by invocations to wait that cannot be prevented by mutexes
around wait.
iter_ready and fold_ready iterate over the ready set computed by the last
call to wait.