blob: 55b11d3da20e73f6377d46a81d6347dec8032547 [file] [log] [blame]
.. _posix_option_groups:
Subprofiling Option Groups
##########################
.. _posix_option_group_threads_base:
POSIX_THREADS_BASE
==================
The basic assumption in this profile is that the system
consists of a single (implicit) process with multiple threads. Therefore, the
standard requires all basic thread services, except those related to
multiple processes.
.. csv-table:: POSIX_THREADS_BASE
:header: API, Supported
:widths: 50,10
pthread_atfork(),yes
pthread_attr_destroy(),yes
pthread_attr_getdetachstate(),yes
pthread_attr_getschedparam(),yes
pthread_attr_init(),yes
pthread_attr_setdetachstate(),yes
pthread_attr_setschedparam(),yes
pthread_barrier_destroy(),yes
pthread_barrier_init(),yes
pthread_barrier_wait(),yes
pthread_barrierattr_destroy(),yes
pthread_barrierattr_getpshared(),yes
pthread_barrierattr_init(),yes
pthread_barrierattr_setpshared(),yes
pthread_cancel(),yes
pthread_cleanup_pop(),yes
pthread_cleanup_push(),yes
pthread_cond_broadcast(),yes
pthread_cond_destroy(),yes
pthread_cond_init(),yes
pthread_cond_signal(),yes
pthread_cond_timedwait(),yes
pthread_cond_wait(),yes
pthread_condattr_destroy(),yes
pthread_condattr_init(),yes
pthread_create(),yes
pthread_detach(),yes
pthread_equal(),yes
pthread_exit(),yes
pthread_getspecific(),yes
pthread_join(),yes
pthread_key_create(),yes
pthread_key_delete(),yes
pthread_kill(),
pthread_mutex_destroy(),yes
pthread_mutex_init(),yes
pthread_mutex_lock(),yes
pthread_mutex_trylock(),yes
pthread_mutex_unlock(),yes
pthread_mutexattr_destroy(),yes
pthread_mutexattr_init(),yes
pthread_once(),yes
pthread_self(),yes
pthread_setcancelstate(),yes
pthread_setcanceltype(),yes
pthread_setspecific(),yes
pthread_sigmask(),yes
pthread_testcancel(),yes
.. _posix_option_group_posix_threads_ext:
POSIX_THREADS_EXT
=================
This table lists service support status in Zephyr:
.. csv-table:: POSIX_THREADS_EXT
:header: API, Supported
:widths: 50,10
pthread_attr_getguardsize(),yes
pthread_attr_setguardsize(),yes
pthread_mutexattr_gettype(),yes
pthread_mutexattr_settype(),yes
.. _posix_option_group_xsi_threads_ext:
XSI_THREADS_EXT
===============
The XSI_THREADS_EXT option group is required because it provides
functions to control a thread's stack. This is considered useful for any
real-time application.
This table lists service support status in Zephyr:
.. csv-table:: XSI_THREADS_EXT
:header: API, Supported
:widths: 50,10
pthread_attr_getstack(),yes
pthread_attr_setstack(),yes
pthread_getconcurrency(),yes
pthread_setconcurrency(),yes
.. _posix_option_group_c_lang_jump:
POSIX_C_LANG_JUMP
=================
The ``POSIX_C_LANG_JUMP`` Option Group is included in the ISO C standard.
.. note::
When using Newlib, Picolibc, or other C libraries conforming to the ISO C Standard, the
``POSIX_C_LANG_JUMP`` Option Group is considered supported.
.. csv-table:: POSIX_C_LANG_JUMP
:header: API, Supported
:widths: 50,10
setjmp(), yes
longjmp(), yes
.. _posix_option_group_c_lang_math:
POSIX_C_LANG_MATH
=================
The ``POSIX_C_LANG_MATH`` Option Group is included in the ISO C standard.
.. note::
When using Newlib, Picolibc, or other C libraries conforming to the ISO C Standard, the
``POSIX_C_LANG_MATH`` Option Group is considered supported.
Please refer to `Subprofiling Considerations`_ for details on the ``POSIX_C_LANG_MATH`` Option
Group.
.. _posix_option_group_c_lang_support:
POSIX_C_LANG_SUPPORT
====================
The POSIX_C_LANG_SUPPORT option group contains the general ISO C Library.
.. note::
When using Newlib, Picolibc, or other C libraries conforming to the ISO C Standard, the entire
``POSIX_C_LANG_SUPPORT`` Option Group is considered supported.
Please refer to `Subprofiling Considerations`_ for details on the ``POSIX_C_LANG_SUPPORT`` Option
Group.
For more information on developing Zephyr applications in the C programming language, please refer
to :ref:`details<language_support>`.
.. _posix_option_group_single_process:
POSIX_SINGLE_PROCESS
====================
The POSIX_SINGLE_PROCESS option group contains services for single
process applications.
.. csv-table:: POSIX_SINGLE_PROCESS
:header: API, Supported
:widths: 50,10
confstr(),
environ,
errno,yes
getenv(),
setenv(),
sysconf(),yes
uname(),yes
unsetenv()
.. _posix_option_group_signals:
POSIX_SIGNALS
=============
Signal services are a basic mechanism within POSIX-based systems and are
required for error and event handling.
.. csv-table:: POSIX_SIGNALS
:header: API, Supported
:widths: 50,10
abort(),yes
alarm(),
kill(),
pause(),
raise(),
sigaction(),
sigaddset(),yes
sigdelset(),yes
sigemptyset(),yes
sigfillset(),yes
sigismember(),yes
signal(),
sigpending(),
sigprocmask(),yes
sigsuspend(),
sigwait(),
strsignal(),yes
.. _posix_option_group_device_io:
POSIX_DEVICE_IO
===============
.. csv-table:: POSIX_DEVICE_IO
:header: API, Supported
:widths: 50,10
FD_CLR(),yes
FD_ISSET(),yes
FD_SET(),yes
FD_ZERO(),yes
clearerr(),yes
close(),yes
fclose(),
fdopen(),
feof(),
ferror(),
fflush(),
fgetc(),
fgets(),
fileno(),
fopen(),
fprintf(),yes
fputc(),yes
fputs(),yes
fread(),
freopen(),
fscanf(),
fwrite(),yes
getc(),
getchar(),
gets(),
open(),yes
perror(),yes
poll(),yes
printf(),yes
pread(),
pselect(),
putc(),yes
putchar(),yes
puts(),yes
pwrite(),
read(),yes
scanf(),
select(),yes
setbuf(),
setvbuf(),
stderr,
stdin,
stdout,
ungetc(),
vfprintf(),yes
vfscanf(),
vprintf(),yes
vscanf(),
write(),yes
.. _posix_option_group_barriers:
POSIX_BARRIERS
==============
.. csv-table:: POSIX_BARRIERS
:header: API, Supported
:widths: 50,10
pthread_barrier_destroy(),yes
pthread_barrier_init(),yes
pthread_barrier_wait(),yes
pthread_barrierattr_destroy(),yes
pthread_barrierattr_init(),yes
.. _posix_option_group_clock_selection:
POSIX_CLOCK_SELECTION
=====================
.. csv-table:: POSIX_CLOCK_SELECTION
:header: API, Supported
:widths: 50,10
pthread_condattr_getclock(),yes
pthread_condattr_setclock(),yes
clock_nanosleep(),yes
.. _posix_option_group_semaphores:
POSIX_SEMAPHORES
================
.. csv-table:: POSIX_SEMAPHORES
:header: API, Supported
:widths: 50,10
sem_close(),yes
sem_destroy(),yes
sem_getvalue(),yes
sem_init(),yes
sem_open(),yes
sem_post(),yes
sem_trywait(),yes
sem_unlink(),yes
sem_wait(),yes
.. _posix_option_group_spin_locks:
POSIX_SPIN_LOCKS
================
.. csv-table:: POSIX_SPIN_LOCKS
:header: API, Supported
:widths: 50,10
pthread_spin_destroy(),yes
pthread_spin_init(),yes
pthread_spin_lock(),yes
pthread_spin_trylock(),yes
pthread_spin_unlock(),yes
.. _posix_option_group_timers:
POSIX_TIMERS
============
.. csv-table:: POSIX_TIMERS
:header: API, Supported
:widths: 50,10
clock_getres(),
clock_gettime(),yes
clock_settime(),yes
nanosleep(),yes
timer_create(),yes
timer_delete(),yes
timer_gettime(),yes
timer_getoverrun(),yes
timer_settime(),yes
.. _posix_options:
Additional POSIX Options
========================
.. _posix_option_message_passing:
_POSIX_MESSAGE_PASSING
++++++++++++++++++++++
.. csv-table:: _POSIX_MESSAGE_PASSING
:header: API, Supported
:widths: 50,10
mq_close(),yes
mq_getattr(),yes
mq_notify(),yes
mq_open(),yes
mq_receive(),yes
mq_send(),yes
mq_setattr(),yes
mq_unlink(),yes
_POSIX_PRIORITY_SCHEDULING
++++++++++++++++++++++++++
.. _posix_option_priority_scheduling:
.. csv-table:: _POSIX_PRIORITY_SCHEDULING
:header: API, Supported
:widths: 50,10
sched_get_priority_max(),yes
sched_get_priority_min(),yes
sched_getparam(),yes
sched_getscheduler(),yes
sched_rr_get_interval(),yes
sched_setparam(),yes
sched_setscheduler(),yes
sched_yield(),yes
.. _posix_option_reader_writer_locks:
_POSIX_READER_WRITER_LOCKS
++++++++++++++++++++++++++
.. csv-table:: _POSIX_READER_WRITER_LOCKS
:header: API, Supported
:widths: 50,10
pthread_rwlock_destroy(),yes
pthread_rwlock_init(),yes
pthread_rwlock_rdlock(),yes
pthread_rwlock_tryrdlock(),yes
pthread_rwlock_trywrlock(),yes
pthread_rwlock_unlock(),yes
pthread_rwlock_wrlock(),yes
pthread_rwlockattr_destroy(),yes
pthread_rwlockattr_getpshared(),
pthread_rwlockattr_init(),yes
pthread_rwlockattr_setpshared(),
.. _posix_option_thread_attr_stackaddr:
_POSIX_THREAD_ATTR_STACKADDR
++++++++++++++++++++++++++++
.. csv-table:: _POSIX_THREAD_ATTR_STACKADDR
:header: API, Supported
:widths: 50,10
pthread_attr_getstackaddr(),yes
pthread_attr_setstackaddr(),yes
.. _posix_option_thread_attr_stacksize:
_POSIX_THREAD_ATTR_STACKSIZE
++++++++++++++++++++++++++++
.. csv-table:: _POSIX_THREAD_ATTR_STACKSIZE
:header: API, Supported
:widths: 50,10
pthread_attr_getstacksize(),yes
pthread_attr_setstacksize(),yes
.. _posix_option_thread_priority_scheduling:
_POSIX_THREAD_PRIORITY_SCHEDULING
+++++++++++++++++++++++++++++++++
.. csv-table:: _POSIX_THREAD_PRIORITY_SCHEDULING
:header: API, Supported
:widths: 50,10
pthread_attr_getinheritsched(),
pthread_attr_getschedpolicy(),yes
pthread_attr_getscope(),
pthread_attr_setinheritsched(),
pthread_attr_setschedpolicy(),yes
pthread_attr_setscope(),
pthread_getschedparam(),yes
pthread_setschedparam(),yes
pthread_setschedprio(),yes
.. _posix_thread_safe_functions:
_POSIX_THREAD_SAFE_FUNCTIONS
++++++++++++++++++++++++++++
.. csv-table:: _POSIX_THREAD_SAFE_FUNCTIONS
:header: API, Supported
:widths: 50,10
asctime_r(),
ctime_r(),
flockfile(),
ftrylockfile(),
funlockfile(),
getc_unlocked(), yes
getchar_unlocked(), yes
getgrgid_r(),
getgrnam_r(),
getpwnam_r(),
getpwuid_r(),
gmtime_r(), yes
localtime_r(),
putc_unlocked(), yes
putchar_unlocked(), yes
rand_r(), yes
readdir_r(),
strerror_r(), yes
strtok_r(), yes
.. _posix_option_timeouts:
_POSIX_TIMEOUTS
+++++++++++++++
.. csv-table:: _POSIX_TIMEOUTS
:header: API, Supported
:widths: 50,10
mq_timedreceive(),yes
mq_timedsend(),yes
pthread_mutex_timedlock(),yes
pthread_rwlock_timedrdlock(),yes
pthread_rwlock_timedwrlock(),yes
sem_timedwait(),yes
posix_trace_timedgetnext_event(),
.. _posix_option_xopen_streams:
_XOPEN_STREAMS
++++++++++++++
.. csv-table:: _XOPEN_STREAMS
:header: API, Supported
:widths: 50,10
fattach(),
fdetach(),
getmsg(),
getpmsg(),
ioctl(),yes
isastream(),
putmsg(),
putpmsg(),
.. _Subprofiling Considerations:
https://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_subprofiles.html