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

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)

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)

sched_setparam()

yes (will fail with ENOSYS)

sched_setscheduler()

yes (will fail with ENOSYS)

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()

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

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

fdetach()

yes (will fail with ENOSYS)

getmsg()

yes (will fail with ENOSYS)

getpmsg()

yes (will fail with ENOSYS)

ioctl()

yes

isastream()

putmsg()

yes (will fail with ENOSYS)

putpmsg()