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() |
|
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() |
|
pthread_cleanup_push() |
|
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() |
|
pthread_setspecific() |
yes |
pthread_sigmask() |
|
pthread_testcancel() |
XSI_THREAD_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_getguardsize() |
|
pthread_attr_getstack() |
yes |
pthread_attr_setguardsize() |
|
pthread_attr_setstack() |
yes |
pthread_getconcurrency() |
|
pthread_setconcurrency() |
POSIX_C_LANG_SUPPORT
The POSIX_C_LANG_SUPPORT option group contains the general ISO C Library.
API |
Supported |
---|---|
abs() |
yes |
asctime() |
|
asctime_r() |
|
atof() |
|
atoi() |
yes |
atol() |
|
atoll() |
|
bsearch() |
yes |
calloc() |
yes |
ctime() |
|
ctime_r() |
|
difftime() |
|
div() |
|
feclearexcept() |
|
fegetenv() |
|
fegetexceptflag() |
|
fegetround() |
|
feholdexcept() |
|
feraiseexcept() |
|
fesetenv() |
|
fesetexceptflag() |
|
fesetround() |
|
fetestexcept() |
|
feupdateenv() |
|
free() |
yes |
gmtime() |
yes |
gmtime_r() |
yes |
imaxabs() |
|
imaxdiv() |
|
isalnum() |
yes |
isalpha() |
yes |
isblank() |
|
iscntrl() |
yes |
isdigit() |
yes |
isgraph() |
yes |
islower() |
|
isprint() |
yes |
ispunct() |
|
isspace() |
yes |
isupper() |
yes |
isxdigit() |
yes |
labs() |
yes |
ldiv() |
|
llabs() |
yes |
lldiv() |
|
localeconv() |
|
localtime() |
yes |
localtime_r() |
|
malloc() |
yes |
memchr() |
yes |
memcmp() |
yes |
memcpy() |
yes |
memmove() |
yes |
memset() |
yes |
mktime() |
yes |
qsort() |
yes |
rand() |
yes |
rand_r() |
yes |
realloc() |
yes |
setlocale() |
|
snprintf() |
yes |
sprintf() |
yes |
srand() |
yes |
sscanf() |
|
strcat() |
yes |
strchr() |
yes |
strcmp() |
yes |
strcoll() |
|
strcpy() |
yes |
strcspn() |
yes |
strerror() |
yes |
strerror_r() |
yes |
strftime() |
|
strlen() |
yes |
strncat() |
yes |
strncmp() |
yes |
strncpy() |
yes |
strpbrk() |
|
strrchr() |
yes |
strspn() |
yes |
strstr() |
yes |
strtod() |
|
strtof() |
|
strtoimax() |
|
strtok() |
yes |
strtok_r() |
yes |
strtol() |
yes |
strtold() |
|
strtoll() |
yes |
strtoul() |
yes |
strtoull() |
yes |
strtoumax() |
|
strxfrm() |
|
time() |
yes |
tolower() |
yes |
toupper() |
yes |
tzname() |
|
tzset() |
|
va_arg() |
yes |
va_copy() |
yes |
va_end() |
yes |
va_start() |
yes |
vsnprintf() |
yes |
vsprintf() |
yes |
vsscanf() |
POSIX_SINGLE_PROCESS
The POSIX_SINGLE_PROCESS option group contains services for single process applications.
API |
Supported |
---|---|
confstr() |
|
environ |
|
errno |
yes |
getenv() |
|
setenv() |
|
sysconf() |
|
uname() |
yes |
unsetenv() |
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() |
|
igsuspend() |
|
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_SEMAPHORES
API |
Supported |
---|---|
sem_close() |
|
sem_destroy() |
yes |
sem_getvalue() |
yes |
sem_init() |
yes |
sem_open() |
|
sem_post() |
yes |
sem_trywait() |
yes |
sem_unlink() |
|
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() |
|
clock_gettime() |
yes |
clock_settime() |
yes |
nanosleep() |
yes |
timer_create() |
yes |
timer_delete() |
yes |
timer_gettime() |
yes |
timer_getoverrun() |
yes |
timer_settime() |
yes |
Additional POSIX Options
_POSIX_MESSAGE_PASSING
API |
Supported |
---|---|
mq_close() |
yes |
mq_getattr() |
yes |
mq_notify() |
|
mq_open() |
yes |
mq_receive() |
yes |
mq_send() |
yes |
mq_setattr() |
yes |
mq_unlink() |
yes |
_POSIX_PRIORITY_SCHEDULING
API |
Supported |
---|---|
sched_get_priority_max() |
yes |
sched_get_priority_min() |
yes |
sched_getparam() |
|
sched_getscheduler() |
|
sched_rr_get_interval() |
|
sched_setparam() |
|
sched_setscheduler() |
|
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() |
|
pthread_rwlockattr_init() |
yes |
pthread_rwlockattr_setpshared() |
_POSIX_THREAD_ATTR_STACKADDR
API |
Supported |
---|---|
pthread_attr_getstackaddr() |
yes |
pthread_attr_setstackaddr() |
yes |
_POSIX_THREAD_ATTR_STACKSIZE
API |
Supported |
---|---|
pthread_attr_getstacksize() |
yes |
pthread_attr_setstacksize() |
yes |
_POSIX_THREAD_PRIORITY_SCHEDULING
API |
Supported |
---|---|
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_TIMEOUTS
API |
Supported |
---|---|
mq_timedreceive() |
|
mq_timedsend() |
|
pthread_mutex_timedlock() |
yes |
pthread_rwlock_timedrdlock() |
yes |
pthread_rwlock_timedwrlock() |
yes |
sem_timedwait() |
yes |
posix_trace_timedgetnext_event() |
_XOPEN_STREAMS
API |
Supported |
---|---|
fattach() |
|
fdetach() |
|
getmsg() |
|
getpmsg() |
|
ioctl() |
yes |
isastream() |
|
putmsg() |
|
putpmsg() |