Skip to content

Latest commit

 

History

History
581 lines (467 loc) · 12.8 KB

File metadata and controls

581 lines (467 loc) · 12.8 KB

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.

POSIX_THREADS_BASE
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:

POSIX_THREADS_EXT
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:

XSI_THREADS_EXT
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.

POSIX_C_LANG_JUMP
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 :ref:`details<language_support>`.

POSIX_SINGLE_PROCESS

The POSIX_SINGLE_PROCESS option group contains services for single process applications.

POSIX_SINGLE_PROCESS
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.

POSIX_SIGNALS
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

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

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

POSIX_CLOCK_SELECTION
API Supported
pthread_condattr_getclock() yes
pthread_condattr_setclock() yes
clock_nanosleep() yes

POSIX_NETWORKING

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 ENOSYS:ref:`†<posix_undefined_behaviour>`)
socketpair() yes

POSIX_SEMAPHORES

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

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

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

Additional POSIX Options

_POSIX_MESSAGE_PASSING

_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_PRIORITY_SCHEDULING

_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 ENOSYS:ref:`†<posix_undefined_behaviour>`)
sched_setparam() yes (will fail with ENOSYS:ref:`†<posix_undefined_behaviour>`)
sched_setscheduler() yes (will fail with ENOSYS:ref:`†<posix_undefined_behaviour>`)
sched_yield() yes

_POSIX_READER_WRITER_LOCKS

_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_THREAD_ATTR_STACKADDR

_POSIX_THREAD_ATTR_STACKADDR
API Supported
pthread_attr_getstackaddr() yes
pthread_attr_setstackaddr() yes

_POSIX_THREAD_ATTR_STACKSIZE

_POSIX_THREAD_ATTR_STACKSIZE
API Supported
pthread_attr_getstacksize() yes
pthread_attr_setstacksize() yes

_POSIX_THREAD_PRIORITY_SCHEDULING

_POSIX_THREAD_PRIORITY_SCHEDULING
API Supported
pthread_attr_getinheritsched()  
pthread_attr_getschedpolicy() yes
pthread_attr_getscope() yes
pthread_attr_setinheritsched()  
pthread_attr_setschedpolicy() yes
pthread_attr_setscope() yes
pthread_getschedparam() yes
pthread_setschedparam() yes
pthread_setschedprio() yes

_POSIX_THREAD_SAFE_FUNCTIONS

_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

_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

_XOPEN_STREAMS
API Supported
fattach() yes (will fail with ENOSYS:ref:`†<posix_undefined_behaviour>`)
fdetach() yes (will fail with ENOSYS:ref:`†<posix_undefined_behaviour>`)
getmsg() yes (will fail with ENOSYS:ref:`†<posix_undefined_behaviour>`)
getpmsg() yes (will fail with ENOSYS:ref:`†<posix_undefined_behaviour>`)
ioctl() yes
isastream()  
putmsg() yes (will fail with ENOSYS:ref:`†<posix_undefined_behaviour>`)
putpmsg()