Subprofiling Option Groups
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.
API |
Supported |
---|---|
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_THREADS_EXT
This table lists service support status in Zephyr:
API |
Supported |
---|---|
pthread_attr_getguardsize() |
yes |
pthread_attr_setguardsize() |
yes |
pthread_mutexattr_gettype() |
yes |
pthread_mutexattr_settype() |
yes |
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:
API |
Supported |
---|---|
pthread_attr_getstack() |
yes |
pthread_attr_setstack() |
yes |
pthread_getconcurrency() |
yes |
pthread_setconcurrency() |
yes |
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.
API |
Supported |
---|---|
setjmp() |
yes |
longjmp() |
yes |
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_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 details.
POSIX_REALTIME_SIGNALS
API |
Supported |
---|---|
sigqueue() |
|
sigtimedwait() |
|
sigwaitinfo() |
POSIX_SIGNAL_JUMP
API |
Supported |
---|---|
siglongjmp() |
|
sigsetjmp() |
POSIX_SINGLE_PROCESS
The POSIX_SINGLE_PROCESS option group contains services for single process applications.
API |
Supported |
---|---|
confstr() |
yes |
environ |
yes |
errno |
yes |
getenv() |
yes |
setenv() |
yes |
sysconf() |
yes |
uname() |
yes |
unsetenv() |
yes |
POSIX_SIGNALS
Signal services are a basic mechanism within POSIX-based systems and are required for error and event handling.
API |
Supported |
---|---|
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_DEVICE_IO
API |
Supported |
---|---|
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_BARRIERS
API |
Supported |
---|---|
pthread_barrier_destroy() |
yes |
pthread_barrier_init() |
yes |
pthread_barrier_wait() |
yes |
pthread_barrierattr_destroy() |
yes |
pthread_barrierattr_init() |
yes |
POSIX_CLOCK_SELECTION
API |
Supported |
---|---|
pthread_condattr_getclock() |
yes |
pthread_condattr_setclock() |
yes |
clock_nanosleep() |
yes |
POSIX_FILE_SYSTEM
API |
Supported |
---|---|
access() |
|
chdir() |
|
closedir() |
yes |
creat() |
|
fchdir() |
|
fpathconf() |
|
fstat() |
|
fstatvfs() |
|
getcwd() |
|
link() |
|
mkdir() |
yes |
mkstemp() |
|
opendir() |
yes |
pathconf() |
|
readdir() |
yes |
remove() |
|
rename() |
yes |
rewinddir() |
|
rmdir() |
|
stat() |
yes |
statvfs() |
|
tmpfile() |
|
tmpnam() |
|
truncate() |
|
unlink() |
yes |
utime() |
POSIX_NETWORKING
API |
Supported |
---|---|
accept() |
yes |
bind() |
yes |
connect() |
yes |
endhostent() |
yes |
endnetent() |
yes |
endprotoent() |
yes |
endservent() |
yes |
freeaddrinfo() |
yes |
gai_strerror() |
yes |
getaddrinfo() |
yes |
gethostent() |
yes |
gethostname() |
yes |
getnameinfo() |
yes |
getnetbyaddr() |
yes |
getnetbyname() |
yes |
getnetent() |
yes |
getpeername() |
yes |
getprotobyname() |
yes |
getprotobynumber() |
yes |
getprotoent() |
yes |
getservbyname() |
yes |
getservbyport() |
yes |
getservent() |
yes |
getsockname() |
yes |
getsockopt() |
yes |
htonl() |
yes |
htons() |
yes |
if_freenameindex() |
yes |
if_indextoname() |
yes |
if_nameindex() |
yes |
if_nametoindex() |
yes |
inet_addr() |
yes |
inet_ntoa() |
yes |
inet_ntop() |
yes |
inet_pton() |
yes |
listen() |
yes |
ntohl() |
yes |
ntohs() |
yes |
recv() |
yes |
recvfrom() |
yes |
recvmsg() |
yes |
send() |
yes |
sendmsg() |
yes |
sendto() |
yes |
sethostent() |
yes |
setnetent() |
yes |
setprotoent() |
yes |
setservent() |
yes |
setsockopt() |
yes |
shutdown() |
yes |
socket() |
yes |
sockatmark() |
yes (will fail with |
socketpair() |
yes |
POSIX_PIPE
API |
Supported |
---|---|
pipe() |
POSIX_SEMAPHORES
API |
Supported |
---|---|
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_SPIN_LOCKS
API |
Supported |
---|---|
pthread_spin_destroy() |
yes |
pthread_spin_init() |
yes |
pthread_spin_lock() |
yes |
pthread_spin_trylock() |
yes |
pthread_spin_unlock() |
yes |
POSIX_TIMERS
API |
Supported |
---|---|
clock_getres() |
yes |
clock_gettime() |
yes |
clock_settime() |
yes |
nanosleep() |
yes |
timer_create() |
yes |
timer_delete() |
yes |
timer_gettime() |
yes |
timer_getoverrun() |
yes |
timer_settime() |
yes |
POSIX_FD_MGMT
This table lists service support status in Zephyr for POSIX_FD_MGMT:
API |
Supported |
---|---|
dup() |
|
dup2() |
|
fcntl() |
|
fgetpos() |
|
fseek() |
|
fseeko() |
|
fsetpos() |
|
ftell() |
|
ftello() |
|
ftruncate() |
yes |
lseek() |
|
rewind() |
POSIX_FILE_LOCKING
This table lists service support status in Zephyr for POSIX_FD_MGMT:
API |
Supported |
---|---|
flockfile() |
|
ftrylockfile() |
|
funlockfile() |
|
getc_unlocked() |
|
getchar_unlocked() |
|
putc_unlocked() |
|
putchar_unlocked() |
Additional POSIX Options
_POSIX_ASYNCHRONOUS_IO
API |
Supported |
---|---|
aio_cancel() |
yes (will fail with |
aio_error() |
yes (will fail with |
aio_fsync() |
yes (will fail with |
aio_read() |
yes (will fail with |
aio_return() |
yes (will fail with |
aio_suspend() |
yes (will fail with |
aio_write() |
yes (will fail with |
lio_listio() |
yes (will fail with |
_POSIX_FSYNC
API |
Supported |
---|---|
fsync() |
yes |
_POSIX_MEMLOCK
API |
Supported |
---|---|
mlockall() |
|
munlockall() |
_POSIX_MEMLOCK_RANGE
API |
Supported |
---|---|
mlock() |
|
munlock() |
_POSIX_MESSAGE_PASSING
API |
Supported |
---|---|
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_MONOTONIC_CLOCK
API |
Supported |
---|---|
CLOCK_MONOTONIC |
yes |
_POSIX_PRIORITY_SCHEDULING
API |
Supported |
---|---|
sched_get_priority_max() |
yes |
sched_get_priority_min() |
yes |
sched_getparam() |
yes |
sched_getscheduler() |
yes |
sched_rr_get_interval() |
yes (will fail with |
sched_setparam() |
yes (will fail with |
sched_setscheduler() |
yes (will fail with |
sched_yield() |
yes |
_POSIX_READER_WRITER_LOCKS
API |
Supported |
---|---|
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() |
yes |
pthread_rwlockattr_init() |
yes |
pthread_rwlockattr_setpshared() |
yes |
_POSIX_SYNCHRONIZED_IO
API |
Supported |
---|---|
fdatasync() |
|
fsync() |
yes |
msync() |
_POSIX_THREAD_ATTR_STACKADDR
API |
Supported |
---|---|
pthread_attr_getstackaddr() |
yes |
pthread_attr_setstackaddr() |
yes |
_POSIX_THREAD_CPUTIME
API |
Supported |
---|---|
CLOCK_THREAD_CPUTIME_ID |
yes |
pthread_getcpuclockid() |
yes |
_POSIX_THREAD_ATTR_STACKSIZE
API |
Supported |
---|---|
pthread_attr_getstacksize() |
yes |
pthread_attr_setstacksize() |
yes |
_POSIX_THREAD_PRIORITY_SCHEDULING
API |
Supported |
---|---|
pthread_attr_getinheritsched() |
yes |
pthread_attr_getschedpolicy() |
yes |
pthread_attr_getscope() |
yes |
pthread_attr_setinheritsched() |
yes |
pthread_attr_setschedpolicy() |
yes |
pthread_attr_setscope() |
yes |
pthread_getschedparam() |
yes |
pthread_setschedparam() |
yes |
pthread_setschedprio() |
yes |
_POSIX_THREAD_SAFE_FUNCTIONS
API |
Supported |
---|---|
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_TIMEOUTS
API |
Supported |
---|---|
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() |
_XOPEN_STREAMS
API |
Supported |
---|---|
fattach() |
yes (will fail with |
fdetach() |
yes (will fail with |
getmsg() |
yes (will fail with |
getpmsg() |
yes (will fail with |
ioctl() |
yes |
isastream() |
yes (will fail with |
putmsg() |
yes (will fail with |
putpmsg() |