Module libc_internals

Source
Available on doc only.
Expand description

Functions which need access to libc internals are out of scope for rustix.

Most Rust programs have a libc present, and when a libc is present, it expects to be the only thing in the process that can do certain operations. For example, there can be only one atexit list in a process, only one pthread_atfork list in a process, only one implementation of pthreads in a process, and so on, and libc expects to own the one of each of those things. And libc implementations may expect to be involved in signal handling. So, these functions are believed to be out of scope for rustix. This module contains an incomplete list of such functions.

It would be possible to make a rust library which provides safe or ergonomic wrappers around these libc functions, however that is out of scope for rustix itself.

If you would like to write a Rust program which does not use a libc, and which does provide APIs for some of these functions, Eyra and origin are two libraries which may be useful, and which provide public interfaces for some of this functionality.

If you are otherwise writing Rust code which you know will not share a process with a libc, perhaps because you are writing a libc or similar yourself, rustix’s codebase does include experimental implementations of the primitives needed to implement most of these functions.

Functions§

brk
See the module comment.
clone
See the module comment.
clone3
See the module comment.
exit
See the module comment.
fork
See the module comment.
pthread_atfork
See the module comment.
pthread_attr_destroy
See the module comment.
pthread_attr_getaffinity_np
See the module comment.
pthread_attr_getdetachstate
See the module comment.
pthread_attr_getguardsize
See the module comment.
pthread_attr_getinheritsched
See the module comment.
pthread_attr_getschedparam
See the module comment.
pthread_attr_getschedpolicy
See the module comment.
pthread_attr_getscope
See the module comment.
pthread_attr_getsigmask_np
See the module comment.
pthread_attr_getstack
See the module comment.
pthread_attr_getstackaddr
See the module comment.
pthread_attr_getstacksize
See the module comment.
pthread_attr_init
See the module comment.
pthread_attr_setaffinity_np
See the module comment.
pthread_attr_setdetachstate
See the module comment.
pthread_attr_setguardsize
See the module comment.
pthread_attr_setinheritsched
See the module comment.
pthread_attr_setschedparam
See the module comment.
pthread_attr_setschedpolicy
See the module comment.
pthread_attr_setscope
See the module comment.
pthread_attr_setsigmask_np
See the module comment.
pthread_attr_setstack
See the module comment.
pthread_attr_setstackaddr
See the module comment.
pthread_attr_setstacksize
See the module comment.
pthread_barrier_destroy
See the module comment.
pthread_barrier_wait
See the module comment.
pthread_barrierattr_destroy
See the module comment.
pthread_barrierattr_getpshared
See the module comment.
pthread_barrierattr_init
See the module comment.
pthread_barrierattr_setpshared
See the module comment.
pthread_cancel
See the module comment.
pthread_cleanup_pop
See the module comment.
pthread_cleanup_pop_restore_np
See the module comment.
pthread_cleanup_push
See the module comment.
pthread_cleanup_push_defer_np
See the module comment.
pthread_cond_broadcast
See the module comment.
pthread_cond_destroy
See the module comment.
pthread_cond_signal
See the module comment.
pthread_cond_timedwait
See the module comment.
pthread_condattr_destroy
See the module comment.
pthread_condattr_getclock
See the module comment.
pthread_condattr_getpshared
See the module comment.
pthread_condattr_init
See the module comment.
pthread_condattr_setclock
See the module comment.
pthread_condattr_setpshared
See the module comment.
pthread_create
See the module comment.
pthread_detach
See the module comment.
pthread_equal
See the module comment.
pthread_exit
See the module comment.
pthread_getaffinity_np
See the module comment.
pthread_getattr_default_np
See the module comment.
pthread_getattr_np
See the module comment.
pthread_getconcurrency
See the module comment.
pthread_getcpuclockid
See the module comment.
pthread_getname_np
See the module comment.
pthread_getschedparam
See the module comment.
pthread_getspecific
See the module comment.
pthread_join
See the module comment.
pthread_key_create
See the module comment.
pthread_key_delete
See the module comment.
pthread_kill
See the module comment.
pthread_kill_other_threads_np
See the module comment.
pthread_mutex_consistent
See the module comment.
pthread_mutex_consistent_np
See the module comment.
pthread_mutex_destroy
See the module comment.
pthread_mutex_getprioceiling
See the module comment.
pthread_mutex_init
See the module comment.
pthread_mutex_lock
See the module comment.
pthread_mutex_setprioceiling
See the module comment.
pthread_mutex_timedlock
See the module comment.
pthread_mutex_trylock
See the module comment.
pthread_mutexattr_destroy
See the module comment.
pthread_mutexattr_getprioceiling
See the module comment.
pthread_mutexattr_getprotocol
See the module comment.
pthread_mutexattr_getpshared
See the module comment.
pthread_mutexattr_getrobust
See the module comment.
pthread_mutexattr_getrobust_np
See the module comment.
pthread_mutexattr_gettype
See the module comment.
pthread_mutexattr_init
See the module comment.
pthread_mutexattr_setprioceiling
See the module comment.
pthread_mutexattr_setprotocol
See the module comment.
pthread_mutexattr_setpshared
See the module comment.
pthread_mutexattr_setrobust
See the module comment.
pthread_mutexattr_setrobust_np
See the module comment.
pthread_mutexattr_settype
See the module comment.
pthread_once
See the module comment.
pthread_rwlock_destroy
See the module comment.
pthread_rwlock_rdlock
See the module comment.
pthread_rwlock_timedrdlock
See the module comment.
pthread_rwlock_timedwrlock
See the module comment.
pthread_rwlock_tryrdlock
See the module comment.
pthread_rwlock_trywrlock
See the module comment.
pthread_rwlock_unlock
See the module comment.
pthread_rwlock_wrlock
See the module comment.
pthread_rwlockattr_destroy
See the module comment.
pthread_rwlockattr_getkind_np
See the module comment.
pthread_rwlockattr_getpshared
See the module comment.
pthread_rwlockattr_init
See the module comment.
pthread_rwlockattr_setkind_np
See the module comment.
pthread_rwlockattr_setpshared
See the module comment.
pthread_self
See the module comment.
pthread_setaffinity_np
See the module comment.
pthread_setattr_default_np
See the module comment.
pthread_setcancelstate
See the module comment.
pthread_setcanceltype
See the module comment.
pthread_setconcurrency
See the module comment.
pthread_setname_np
See the module comment.
pthread_setschedparam
See the module comment.
pthread_setschedprio
See the module comment.
pthread_setspecific
See the module comment.
pthread_sigmask
See the module comment.
pthread_sigqueue
See the module comment.
pthread_spin_destroy
See the module comment.
pthread_spin_init
See the module comment.
pthread_spin_lock
See the module comment.
pthread_spin_trylock
See the module comment.
pthread_spin_unlock
See the module comment.
pthread_testcancel
See the module comment.
pthread_timedjoin_np
See the module comment.
pthread_tryjoin_np
See the module comment.
pthread_yield
See the module comment.
rseq
See the module comment.
sched_setscheduler
See the module comment.
set_thread_area
See the module comment.
set_tid_address
See the module comment.
setegid
See the module comment.
seteuid
See the module comment.
setgid
See the module comment.
setgroups
See the module comment.
setregid
See the module comment.
setresgid
See the module comment.
setresuid
See the module comment.
setreuid
See the module comment.
setuid
See the module comment.
sigaction
See the module comment.
sigaltstack
See the module comment.
sigprocmask
See the module comment.
sigtimedwait
See the module comment.
sigwait
See the module comment.
sigwaitinfo
See the module comment.
tkill
See the module comment.