LCOV - code coverage report
Current view: top level - zephyr/posix - posix_features.h Hit Total Coverage
Test: new.info Lines: 0 36 0.0 %
Date: 2024-12-22 00:14:23

          Line data    Source code
       1           0 : /*
       2             :  * Copyright (c) 2024 BayLibre SAS
       3             :  * Copyright (c) 2024 Tenstorrent AI ULC
       4             :  *
       5             :  * SPDX-License-Identifier: Apache-2.0
       6             :  */
       7             : 
       8             : #ifndef INCLUDE_ZEPHYR_POSIX_POSIX_FEATURES_H_
       9             : #define INCLUDE_ZEPHYR_POSIX_POSIX_FEATURES_H_
      10             : 
      11             : #include <zephyr/autoconf.h>       /* CONFIG_* */
      12             : #include <zephyr/sys/util_macro.h> /* COND_CODE_1() */
      13             : 
      14             : /*
      15             :  * POSIX Application Environment Profiles (AEP - IEEE Std 1003.13-2003)
      16             :  */
      17             : 
      18             : #ifdef CONFIG_POSIX_AEP_REALTIME_MINIMAL
      19             : #define _POSIX_AEP_REALTIME_MINIMAL 200312L
      20             : #endif
      21             : 
      22             : #ifdef CONFIG_POSIX_AEP_REALTIME_CONTROLLER
      23             : #define _POSIX_AEP_REALTIME_CONTROLLER 200312L
      24             : #endif
      25             : 
      26             : #ifdef CONFIG_POSIX_AEP_REALTIME_DEDICATED
      27             : #define _POSIX_AEP_REALTIME_DEDICATED 200312L
      28             : #endif
      29             : 
      30             : /*
      31             :  * POSIX System Interfaces
      32             :  */
      33             : 
      34             : #define _POSIX_VERSION 200809L
      35             : 
      36             : #define _POSIX_CHOWN_RESTRICTED (0)
      37             : #define _POSIX_NO_TRUNC         (0)
      38             : #define _POSIX_VDISABLE         ('\0')
      39             : 
      40             : /* #define _POSIX_ADVISORY_INFO (-1L) */
      41             : 
      42             : #ifdef CONFIG_POSIX_ASYNCHRONOUS_IO
      43             : #define _POSIX_ASYNCHRONOUS_IO _POSIX_VERSION
      44             : #endif
      45             : 
      46             : #ifdef CONFIG_POSIX_BARRIERS
      47             : #define _POSIX_BARRIERS _POSIX_VERSION
      48             : #endif
      49             : 
      50             : #ifdef CONFIG_POSIX_CLOCK_SELECTION
      51             : #define _POSIX_CLOCK_SELECTION _POSIX_VERSION
      52             : #endif
      53             : 
      54             : #ifdef CONFIG_POSIX_CPUTIME
      55             : #define _POSIX_CPUTIME _POSIX_VERSION
      56             : #endif
      57             : 
      58             : #ifdef CONFIG_POSIX_FSYNC
      59             : #define _POSIX_FSYNC _POSIX_VERSION
      60             : #endif
      61             : 
      62             : #ifdef CONFIG_NET_IPV6
      63             : #define _POSIX_IPV6 _POSIX_VERSION
      64             : #endif
      65             : 
      66             : /* #define _POSIX_JOB_CONTROL (-1L) */
      67             : 
      68             : #ifdef CONFIG_POSIX_MAPPED_FILES
      69             : #define _POSIX_MAPPED_FILES _POSIX_VERSION
      70             : #endif
      71             : 
      72             : #ifdef CONFIG_POSIX_MEMLOCK
      73             : #define _POSIX_MEMLOCK _POSIX_VERSION
      74             : #endif
      75             : 
      76             : #ifdef CONFIG_POSIX_MEMLOCK_RANGE
      77             : #define _POSIX_MEMLOCK_RANGE _POSIX_VERSION
      78             : #endif
      79             : 
      80             : #ifdef CONFIG_POSIX_MEMORY_PROTECTION
      81             : #define _POSIX_MEMORY_PROTECTION _POSIX_VERSION
      82             : #endif
      83             : 
      84             : #ifdef CONFIG_POSIX_MESSAGE_PASSING
      85             : #define _POSIX_MESSAGE_PASSING _POSIX_VERSION
      86             : #endif
      87             : 
      88             : #ifdef CONFIG_POSIX_MONOTONIC_CLOCK
      89             : #define _POSIX_MONOTONIC_CLOCK _POSIX_VERSION
      90             : #endif
      91             : 
      92             : /* #define _POSIX_PRIORITIZED_IO (-1L) */
      93             : 
      94             : #ifdef CONFIG_POSIX_PRIORITY_SCHEDULING
      95             : #define _POSIX_PRIORITY_SCHEDULING _POSIX_VERSION
      96             : #endif
      97             : 
      98             : #ifdef CONFIG_NET_SOCKETS_PACKET
      99             : #define _POSIX_RAW_SOCKETS _POSIX_VERSION
     100             : #endif
     101             : 
     102             : #ifdef CONFIG_POSIX_READER_WRITER_LOCKS
     103             : #define _POSIX_READER_WRITER_LOCKS _POSIX_VERSION
     104             : #endif
     105             : 
     106             : /* #define _POSIX_REALTIME_SIGNALS (-1L) */
     107             : /* #define _POSIX_REGEXP (-1L) */
     108             : /* #define _POSIX_SAVED_IDS (-1L) */
     109             : 
     110             : #ifdef CONFIG_POSIX_SEMAPHORES
     111             : #define _POSIX_SEMAPHORES _POSIX_VERSION
     112             : #endif
     113             : 
     114             : #ifdef CONFIG_POSIX_SHARED_MEMORY_OBJECTS
     115             : #define _POSIX_SHARED_MEMORY_OBJECTS _POSIX_VERSION
     116             : #endif
     117             : 
     118             : /* #define _POSIX_SHELL (-1L) */
     119             : /* #define _POSIX_SPAWN (-1L) */
     120             : 
     121             : #ifdef CONFIG_POSIX_SPIN_LOCKS
     122             : #define _POSIX_SPIN_LOCKS _POSIX_VERSION
     123             : #endif
     124             : 
     125             : /* #define _POSIX_SPORADIC_SERVER (-1L) */
     126             : 
     127             : #ifdef CONFIG_POSIX_SYNCHRONIZED_IO
     128             : #define _POSIX_SYNCHRONIZED_IO _POSIX_VERSION
     129             : #endif
     130             : 
     131             : #ifdef CONFIG_POSIX_THREAD_ATTR_STACKADDR
     132             : #define _POSIX_THREAD_ATTR_STACKADDR _POSIX_VERSION
     133             : #endif
     134             : 
     135             : #ifdef CONFIG_POSIX_THREAD_ATTR_STACKSIZE
     136             : #define _POSIX_THREAD_ATTR_STACKSIZE _POSIX_VERSION
     137             : #endif
     138             : 
     139             : #ifdef CONFIG_POSIX_THREAD_CPUTIME
     140             : #define _POSIX_THREAD_CPUTIME _POSIX_VERSION
     141             : #endif
     142             : 
     143             : #ifdef CONFIG_POSIX_THREAD_PRIO_INHERIT
     144             : #define _POSIX_THREAD_PRIO_INHERIT _POSIX_VERSION
     145             : #endif
     146             : 
     147             : #ifdef CONFIG_POSIX_THREAD_PRIO_PROTECT
     148             : #define _POSIX_THREAD_PRIO_PROTECT _POSIX_VERSION
     149             : #endif
     150             : 
     151             : #ifdef CONFIG_POSIX_THREAD_PRIORITY_SCHEDULING
     152             : #define _POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_VERSION
     153             : #endif
     154             : 
     155             : /* #define _POSIX_THREAD_PROCESS_SHARED (-1L) */
     156             : /* #define _POSIX_THREAD_ROBUST_PRIO_INHERIT (-1L) */
     157             : /* #define _POSIX_THREAD_ROBUST_PRIO_PROTECT (-1L) */
     158             : 
     159             : #ifdef CONFIG_POSIX_THREAD_SAFE_FUNCTIONS
     160             : #define _POSIX_THREAD_SAFE_FUNCTIONS _POSIX_VERSION
     161             : #endif
     162             : 
     163             : /* #define _POSIX_THREAD_SPORADIC_SERVER (-1L) */
     164             : 
     165             : #ifdef CONFIG_POSIX_THREADS
     166             : #ifndef _POSIX_THREADS
     167             : #define _POSIX_THREADS _POSIX_VERSION
     168             : #endif
     169             : #endif
     170             : 
     171             : #ifdef CONFIG_POSIX_TIMEOUTS
     172             : #define _POSIX_TIMEOUTS _POSIX_VERSION
     173             : #endif
     174             : 
     175             : #ifdef CONFIG_POSIX_TIMERS
     176             : #define _POSIX_TIMERS _POSIX_VERSION
     177             : #endif
     178             : 
     179             : /* #define _POSIX_TRACE (-1L) */
     180             : /* #define _POSIX_TRACE_EVENT_FILTER (-1L) */
     181             : /* #define _POSIX_TRACE_INHERIT (-1L) */
     182             : /* #define _POSIX_TRACE_LOG (-1L) */
     183             : /* #define _POSIX_TYPED_MEMORY_OBJECTS (-1L) */
     184             : 
     185             : /*
     186             :  * POSIX v6 Options
     187             :  */
     188             : /* #define _POSIX_V6_ILP32_OFF32 (-1L) */
     189             : /* #define _POSIX_V6_ILP32_OFFBIG (-1L) */
     190             : /* #define _POSIX_V6_LP64_OFF64 (-1L) */
     191             : /* #define _POSIX_V6_LPBIG_OFFBIG (-1L) */
     192             : 
     193             : /*
     194             :  * POSIX v7 Options
     195             :  */
     196             : /* #define _POSIX_V7_ILP32_OFF32 (-1L) */
     197             : /* #define _POSIX_V7_ILP32_OFFBIG (-1L) */
     198             : /* #define _POSIX_V7_LP64_OFF64 (-1L) */
     199             : /* #define _POSIX_V7_LPBIG_OFFBIG (-1L) */
     200             : 
     201             : /*
     202             :  * POSIX2 Options
     203             :  */
     204             : #define _POSIX2_VERSION _POSIX_VERSION
     205             : #define _POSIX2_C_BIND  _POSIX2_VERSION
     206             : #define _POSIX2_C_DEV   _POSIX2_VERSION
     207             : /* #define _POSIX2_CHAR_TERM (-1L) */
     208             : /* #define _POSIX2_FORT_DEV (-1L) */
     209             : /* #define _POSIX2_FORT_RUN (-1L) */
     210             : /* #define _POSIX2_LOCALEDEF (-1L) */
     211             : /* #define _POSIX2_PBS (-1L) */
     212             : /* #define _POSIX2_PBS_ACCOUNTING (-1L) */
     213             : /* #define _POSIX2_PBS_CHECKPOINT (-1L) */
     214             : /* #define _POSIX2_PBS_LOCATE (-1L) */
     215             : /* #define _POSIX2_PBS_MESSAGE (-1L) */
     216             : /* #define _POSIX2_PBS_TRACK (-1L) */
     217             : /* #define _POSIX2_SW_DEV (-1L) */
     218             : /* #define _POSIX2_UPE (-1L) */
     219             : 
     220             : /*
     221             :  * X/Open System Interfaces
     222             :  */
     223             : #define _XOPEN_VERSION 700
     224             : /* #define _XOPEN_CRYPT (-1L) */
     225             : /* #define _XOPEN_ENH_I18N (-1L) */
     226             : /* #define _XOPEN_REALTIME (-1L) */
     227             : /* #define _XOPEN_REALTIME_THREADS (-1L) */
     228             : /* #define _XOPEN_SHM (-1L) */
     229             : 
     230             : #ifdef CONFIG_XOPEN_STREAMS
     231             : #define _XOPEN_STREAMS _XOPEN_VERSION
     232             : #endif
     233             : 
     234             : /* #define _XOPEN_UNIX (-1L) */
     235             : /* #define _XOPEN_UUCP (-1L) */
     236             : 
     237             : /* Maximum values */
     238             : #define _POSIX_CLOCKRES_MIN (20000000L)
     239             : 
     240             : /* Minimum values */
     241             : #define _POSIX_AIO_LISTIO_MAX               (2)
     242             : #define _POSIX_AIO_MAX                      (1)
     243             : #define _POSIX_ARG_MAX                      (4096)
     244             : #define _POSIX_CHILD_MAX                    (25)
     245             : #define _POSIX_DELAYTIMER_MAX \
     246             :         COND_CODE_1(CONFIG_POSIX_TIMERS, (CONFIG_POSIX_DELAYTIMER_MAX), (0))
     247             : #define _POSIX_HOST_NAME_MAX \
     248             :         COND_CODE_1(CONFIG_POSIX_NETWORKING, (CONFIG_POSIX_HOST_NAME_MAX), (0))
     249             : #define _POSIX_LINK_MAX                     (8)
     250             : #define _POSIX_LOGIN_NAME_MAX               (9)
     251             : #define _POSIX_MAX_CANON                    (255)
     252             : #define _POSIX_MAX_INPUT                    (255)
     253             : #define _POSIX_MQ_OPEN_MAX \
     254             :         COND_CODE_1(CONFIG_POSIX_MESSAGE_PASSING, (CONFIG_POSIX_MQ_OPEN_MAX), (0))
     255             : #define _POSIX_MQ_PRIO_MAX                  (32)
     256             : #define _POSIX_NAME_MAX                     (14)
     257             : #define _POSIX_NGROUPS_MAX                  (8)
     258             : #define _POSIX_OPEN_MAX                     CONFIG_POSIX_OPEN_MAX
     259             : #define _POSIX_PATH_MAX                     (256)
     260             : #define _POSIX_PIPE_BUF                     (512)
     261             : #define _POSIX_RE_DUP_MAX                   (255)
     262             : #define _POSIX_RTSIG_MAX \
     263             :         COND_CODE_1(CONFIG_POSIX_REALTIME_SIGNALS, (CONFIG_POSIX_RTSIG_MAX), (0))
     264             : #define _POSIX_SEM_NSEMS_MAX \
     265             :         COND_CODE_1(CONFIG_POSIX_SEMAPHORES, (CONFIG_POSIX_SEM_NSEMS_MAX), (0))
     266             : #define _POSIX_SEM_VALUE_MAX \
     267             :         COND_CODE_1(CONFIG_POSIX_SEMAPHORES, (CONFIG_POSIX_SEM_VALUE_MAX), (0))
     268             : #define _POSIX_SIGQUEUE_MAX                 (32)
     269             : #define _POSIX_SSIZE_MAX                    (32767)
     270             : #define _POSIX_SS_REPL_MAX                  (4)
     271             : #define _POSIX_STREAM_MAX                   (8)
     272             : #define _POSIX_SYMLINK_MAX                  (255)
     273             : #define _POSIX_SYMLOOP_MAX                  (8)
     274             : #define _POSIX_THREAD_DESTRUCTOR_ITERATIONS (4)
     275             : #define _POSIX_THREAD_KEYS_MAX \
     276             :         COND_CODE_1(CONFIG_POSIX_THREADS, (CONFIG_POSIX_THREAD_KEYS_MAX), (0))
     277             : #define _POSIX_THREAD_THREADS_MAX \
     278             :         COND_CODE_1(CONFIG_POSIX_THREADS, (CONFIG_POSIX_THREAD_THREADS_MAX), (0))
     279             : #define _POSIX_TIMER_MAX \
     280             :         COND_CODE_1(CONFIG_POSIX_TIMERS, (CONFIG_POSIX_TIMER_MAX), (0))
     281             : #define _POSIX_TRACE_EVENT_NAME_MAX         (30)
     282             : #define _POSIX_TRACE_NAME_MAX               (8)
     283             : #define _POSIX_TRACE_SYS_MAX                (8)
     284             : #define _POSIX_TRACE_USER_EVENT_MAX         (32)
     285             : #define _POSIX_TTY_NAME_MAX                 (9)
     286             : #define _POSIX_TZNAME_MAX                   (6)
     287             : #define _POSIX2_BC_BASE_MAX                 (99)
     288             : #define _POSIX2_BC_DIM_MAX                  (2048)
     289             : #define _POSIX2_BC_SCALE_MAX                (99)
     290             : #define _POSIX2_BC_STRING_MAX               (1000)
     291             : #define _POSIX2_CHARCLASS_NAME_MAX          (14)
     292             : #define _POSIX2_COLL_WEIGHTS_MAX            (2)
     293             : #define _POSIX2_EXPR_NEST_MAX               (32)
     294             : #define _POSIX2_LINE_MAX                    (2048)
     295             : #define _XOPEN_IOV_MAX                      (16)
     296             : #define _XOPEN_NAME_MAX                     (255)
     297             : #define _XOPEN_PATH_MAX                     (1024)
     298             : 
     299             : /* Other invariant values */
     300           0 : #define NL_LANGMAX (14)
     301           0 : #define NL_MSGMAX  (32767)
     302           0 : #define NL_SETMAX  (255)
     303           0 : #define NL_TEXTMAX (_POSIX2_LINE_MAX)
     304           0 : #define NZERO      (20)
     305             : 
     306             : /* Runtime invariant values */
     307           0 : #define AIO_LISTIO_MAX     _POSIX_AIO_LISTIO_MAX
     308           0 : #define AIO_MAX            _POSIX_AIO_MAX
     309           0 : #define AIO_PRIO_DELTA_MAX (0)
     310           0 : #define DELAYTIMER_MAX     _POSIX_DELAYTIMER_MAX
     311           0 : #define HOST_NAME_MAX      _POSIX_HOST_NAME_MAX
     312           0 : #define LOGIN_NAME_MAX     _POSIX_LOGIN_NAME_MAX
     313           0 : #define MQ_OPEN_MAX        _POSIX_MQ_OPEN_MAX
     314           0 : #define MQ_PRIO_MAX        _POSIX_MQ_PRIO_MAX
     315             : 
     316             : #ifndef ATEXIT_MAX
     317           0 : #define ATEXIT_MAX 8
     318             : #endif
     319             : 
     320           0 : #define PAGE_SIZE CONFIG_POSIX_PAGE_SIZE
     321           0 : #define PAGESIZE PAGE_SIZE
     322             : 
     323           0 : #define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
     324           0 : #define PTHREAD_KEYS_MAX              _POSIX_THREAD_KEYS_MAX
     325           0 : #define PTHREAD_THREADS_MAX           _POSIX_THREAD_THREADS_MAX
     326           0 : #define RTSIG_MAX                     _POSIX_RTSIG_MAX
     327           0 : #define SEM_NSEMS_MAX       _POSIX_SEM_NSEMS_MAX
     328           0 : #define SEM_VALUE_MAX       _POSIX_SEM_VALUE_MAX
     329           0 : #define SIGQUEUE_MAX        _POSIX_SIGQUEUE_MAX
     330           0 : #define STREAM_MAX          _POSIX_STREAM_MAX
     331           0 : #define SYMLOOP_MAX         _POSIX_SYMLOOP_MAX
     332           0 : #define TIMER_MAX           _POSIX_TIMER_MAX
     333           0 : #define TTY_NAME_MAX        _POSIX_TTY_NAME_MAX
     334             : #ifndef TZNAME_MAX
     335           0 : #define TZNAME_MAX          _POSIX_TZNAME_MAX
     336             : #endif
     337             : 
     338             : /* Pathname variable values */
     339           0 : #define FILESIZEBITS             (32)
     340           0 : #define POSIX_ALLOC_SIZE_MIN     (256)
     341           0 : #define POSIX_REC_INCR_XFER_SIZE (1024)
     342           0 : #define POSIX_REC_MAX_XFER_SIZE  (32767)
     343           0 : #define POSIX_REC_MIN_XFER_SIZE  (1)
     344           0 : #define POSIX_REC_XFER_ALIGN     (4)
     345           0 : #define SYMLINK_MAX              _POSIX_SYMLINK_MAX
     346             : 
     347             : #endif /* INCLUDE_ZEPHYR_POSIX_POSIX_FEATURES_H_ */

Generated by: LCOV version 1.14