glibc (2.38)

(root)/
include/
bits/
posix_opt.h
       1  /* Define POSIX options for Linux.
       2     Copyright (C) 1996-2023 Free Software Foundation, Inc.
       3     This file is part of the GNU C Library.
       4  
       5     The GNU C Library is free software; you can redistribute it and/or
       6     modify it under the terms of the GNU Lesser General Public License as
       7     published by the Free Software Foundation; either version 2.1 of the
       8     License, or (at your option) any later version.
       9  
      10     The GNU C Library is distributed in the hope that it will be useful,
      11     but WITHOUT ANY WARRANTY; without even the implied warranty of
      12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      13     Lesser General Public License for more details.
      14  
      15     You should have received a copy of the GNU Lesser General Public
      16     License along with the GNU C Library; see the file COPYING.LIB.  If
      17     not, see <https://www.gnu.org/licenses/>.  */
      18  
      19  #ifndef	_BITS_POSIX_OPT_H
      20  #define	_BITS_POSIX_OPT_H	1
      21  
      22  /* Job control is supported.  */
      23  #define	_POSIX_JOB_CONTROL	1
      24  
      25  /* Processes have a saved set-user-ID and a saved set-group-ID.  */
      26  #define	_POSIX_SAVED_IDS	1
      27  
      28  /* Priority scheduling is not supported with the correct semantics,
      29     but GNU/Linux applications expect that the corresponding interfaces
      30     are available, even though the semantics do not meet the POSIX
      31     requirements.  See glibc bug 14829.  */
      32  #define	_POSIX_PRIORITY_SCHEDULING	200809L
      33  
      34  /* Synchronizing file data is supported.  */
      35  #define	_POSIX_SYNCHRONIZED_IO	200809L
      36  
      37  /* The fsync function is present.  */
      38  #define	_POSIX_FSYNC	200809L
      39  
      40  /* Mapping of files to memory is supported.  */
      41  #define	_POSIX_MAPPED_FILES	200809L
      42  
      43  /* Locking of all memory is supported.  */
      44  #define	_POSIX_MEMLOCK	200809L
      45  
      46  /* Locking of ranges of memory is supported.  */
      47  #define	_POSIX_MEMLOCK_RANGE	200809L
      48  
      49  /* Setting of memory protections is supported.  */
      50  #define	_POSIX_MEMORY_PROTECTION	200809L
      51  
      52  /* Some filesystems allow all users to change file ownership.  */
      53  #define	_POSIX_CHOWN_RESTRICTED	0
      54  
      55  /* `c_cc' member of 'struct termios' structure can be disabled by
      56     using the value _POSIX_VDISABLE.  */
      57  #define	_POSIX_VDISABLE	'\0'
      58  
      59  /* Filenames are not silently truncated.  */
      60  #define	_POSIX_NO_TRUNC	1
      61  
      62  /* X/Open realtime support is available.  */
      63  #define _XOPEN_REALTIME	1
      64  
      65  /* X/Open thread realtime support is available.  */
      66  #define _XOPEN_REALTIME_THREADS	1
      67  
      68  /* XPG4.2 shared memory is supported.  */
      69  #define	_XOPEN_SHM	1
      70  
      71  /* Tell we have POSIX threads.  */
      72  #define _POSIX_THREADS	200809L
      73  
      74  /* We have the reentrant functions described in POSIX.  */
      75  #define _POSIX_REENTRANT_FUNCTIONS      1
      76  #define _POSIX_THREAD_SAFE_FUNCTIONS	200809L
      77  
      78  /* We provide priority scheduling for threads.  */
      79  #define _POSIX_THREAD_PRIORITY_SCHEDULING	200809L
      80  
      81  /* We support user-defined stack sizes.  */
      82  #define _POSIX_THREAD_ATTR_STACKSIZE	200809L
      83  
      84  /* We support user-defined stacks.  */
      85  #define _POSIX_THREAD_ATTR_STACKADDR	200809L
      86  
      87  /* We support priority inheritance.  */
      88  #define _POSIX_THREAD_PRIO_INHERIT	200809L
      89  
      90  /* We support priority protection, though only for non-robust
      91     mutexes.  */
      92  #define _POSIX_THREAD_PRIO_PROTECT	200809L
      93  
      94  #ifdef __USE_XOPEN2K8
      95  /* We support priority inheritance for robust mutexes.  */
      96  # define _POSIX_THREAD_ROBUST_PRIO_INHERIT	200809L
      97  
      98  /* We do not support priority protection for robust mutexes.  */
      99  # define _POSIX_THREAD_ROBUST_PRIO_PROTECT	-1
     100  #endif
     101  
     102  /* We support POSIX.1b semaphores.  */
     103  #define _POSIX_SEMAPHORES	200809L
     104  
     105  /* Real-time signals are supported.  */
     106  #define _POSIX_REALTIME_SIGNALS	200809L
     107  
     108  /* We support asynchronous I/O.  */
     109  #define _POSIX_ASYNCHRONOUS_IO	200809L
     110  #define _POSIX_ASYNC_IO		1
     111  /* Alternative name for Unix98.  */
     112  #define _LFS_ASYNCHRONOUS_IO	1
     113  /* Support for prioritization is also available.  */
     114  #define _POSIX_PRIORITIZED_IO	200809L
     115  
     116  /* The LFS support in asynchronous I/O is also available.  */
     117  #define _LFS64_ASYNCHRONOUS_IO	1
     118  
     119  /* The rest of the LFS is also available.  */
     120  #define _LFS_LARGEFILE		1
     121  #define _LFS64_LARGEFILE	1
     122  #define _LFS64_STDIO		1
     123  
     124  /* POSIX shared memory objects are implemented.  */
     125  #define _POSIX_SHARED_MEMORY_OBJECTS	200809L
     126  
     127  /* CPU-time clocks support needs to be checked at runtime.  */
     128  #define _POSIX_CPUTIME	0
     129  
     130  /* Clock support in threads must be also checked at runtime.  */
     131  #define _POSIX_THREAD_CPUTIME	0
     132  
     133  /* GNU libc provides regular expression handling.  */
     134  #define _POSIX_REGEXP	1
     135  
     136  /* Reader/Writer locks are available.  */
     137  #define _POSIX_READER_WRITER_LOCKS	200809L
     138  
     139  /* We have a POSIX shell.  */
     140  #define _POSIX_SHELL	1
     141  
     142  /* We support the Timeouts option.  */
     143  #define _POSIX_TIMEOUTS	200809L
     144  
     145  /* We support spinlocks.  */
     146  #define _POSIX_SPIN_LOCKS	200809L
     147  
     148  /* The `spawn' function family is supported.  */
     149  #define _POSIX_SPAWN	200809L
     150  
     151  /* We have POSIX timers.  */
     152  #define _POSIX_TIMERS	200809L
     153  
     154  /* The barrier functions are available.  */
     155  #define _POSIX_BARRIERS	200809L
     156  
     157  /* POSIX message queues are available.  */
     158  #define	_POSIX_MESSAGE_PASSING	200809L
     159  
     160  /* Thread process-shared synchronization is supported.  */
     161  #define _POSIX_THREAD_PROCESS_SHARED	200809L
     162  
     163  /* The monotonic clock might be available.  */
     164  #define _POSIX_MONOTONIC_CLOCK	0
     165  
     166  /* The clock selection interfaces are available.  */
     167  #define _POSIX_CLOCK_SELECTION	200809L
     168  
     169  /* Advisory information interfaces are available.  */
     170  #define _POSIX_ADVISORY_INFO	200809L
     171  
     172  /* IPv6 support is available.  */
     173  #define _POSIX_IPV6	200809L
     174  
     175  /* Raw socket support is available.  */
     176  #define _POSIX_RAW_SOCKETS	200809L
     177  
     178  /* We have at least one terminal.  */
     179  #define _POSIX2_CHAR_TERM	200809L
     180  
     181  /* Neither process nor thread sporadic server interfaces is available.  */
     182  #define _POSIX_SPORADIC_SERVER	-1
     183  #define _POSIX_THREAD_SPORADIC_SERVER	-1
     184  
     185  /* trace.h is not available.  */
     186  #define _POSIX_TRACE	-1
     187  #define _POSIX_TRACE_EVENT_FILTER	-1
     188  #define _POSIX_TRACE_INHERIT	-1
     189  #define _POSIX_TRACE_LOG	-1
     190  
     191  /* Typed memory objects are not available.  */
     192  #define _POSIX_TYPED_MEMORY_OBJECTS	-1
     193  
     194  #endif /* bits/posix_opt.h */