(root)/
glibc-2.38/
sysdeps/
mach/
hurd/
bits/
posix_opt.h
       1  /* Define POSIX options for GNU/Hurd.
       2     Copyright (C) 1998-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
       7     License as published by the Free Software Foundation; either
       8     version 2.1 of the 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; if not, see
      17     <https://www.gnu.org/licenses/>.  */
      18  
      19  #ifndef _UNISTD_H
      20  #error "Never include this file directly; use <unistd.h> instead."
      21  #endif
      22  
      23  #ifndef	_BITS_POSIX_OPT_H
      24  #define	_BITS_POSIX_OPT_H	1
      25  
      26  
      27  /* Job control is supported.  */
      28  #define	_POSIX_JOB_CONTROL	1
      29  
      30  /* Processes have a saved set-user-ID and a saved set-group-ID.  */
      31  #define	_POSIX_SAVED_IDS	1
      32  
      33  /* Priority scheduling is not supported.  */
      34  #undef	_POSIX_PRIORITY_SCHEDULING
      35  
      36  /* Synchronizing file data is supported, but msync is missing.  */
      37  #undef _POSIX_SYNCHRONIZED_IO
      38  
      39  /* The fsync function is present.  */
      40  #define	_POSIX_FSYNC	200809L
      41  
      42  /* Mapping of files to memory is supported.  */
      43  #define	_POSIX_MAPPED_FILES	200809L
      44  
      45  /* Locking of all memory is supported.  */
      46  #define	_POSIX_MEMLOCK	200809L
      47  
      48  /* Locking of ranges of memory is supported.  */
      49  #define	_POSIX_MEMLOCK_RANGE	200809L
      50  
      51  /* Setting of memory protections is supported.  */
      52  #define	_POSIX_MEMORY_PROTECTION	200809L
      53  
      54  /* Elements of the `c_cc' member of `struct termios' structure
      55     can be disabled by using the value _POSIX_VDISABLE.  */
      56  #define _POSIX_VDISABLE			'\0'
      57  
      58  
      59  /* Different Hurd filesystems might do these differently.
      60     You must query the particular file with `pathconf' or `fpathconf'.  */
      61  #define _POSIX_CHOWN_RESTRICTED	0	/* Only root can change owner of file?  */
      62  #define _POSIX_NO_TRUNC		0	/* Overlong file names get error?  */
      63  #undef _POSIX_SYNC_IO		/* File supports O_SYNC et al?  */
      64  
      65  /* X/Open realtime support is not supported.  */
      66  #undef _XOPEN_REALTIME
      67  
      68  /* X/Open thread realtime support is not supported.  */
      69  #undef _XOPEN_REALTIME_THREADS
      70  
      71  /* XPG4.2 shared memory is not supported.  */
      72  #undef	_XOPEN_SHM
      73  
      74  /* Tell we have POSIX threads.  */
      75  #define _POSIX_THREADS	200809L
      76  
      77  /* We have the reentrant functions described in POSIX.  */
      78  #define _POSIX_REENTRANT_FUNCTIONS      1
      79  #define _POSIX_THREAD_SAFE_FUNCTIONS	200809L
      80  
      81  /* We do not provide priority scheduling for threads.  */
      82  #define _POSIX_THREAD_PRIORITY_SCHEDULING	-1
      83  
      84  /* We support user-defined stack sizes.  */
      85  #define _POSIX_THREAD_ATTR_STACKSIZE	200809L
      86  
      87  /* We support user-defined stacks.  */
      88  #define _POSIX_THREAD_ATTR_STACKADDR	200809L
      89  
      90  /* We do not support priority inheritance.  */
      91  #define _POSIX_THREAD_PRIO_INHERIT		-1
      92  
      93  /* We do not support priority protection.  */
      94  #define _POSIX_THREAD_PRIO_PROTECT		-1
      95  
      96  #ifdef __USE_XOPEN2K8
      97  /* We do not support priority inheritance for robust mutexes.  */
      98  # define _POSIX_THREAD_ROBUST_PRIO_INHERIT	-1
      99  
     100  /* We do not support priority protection for robust mutexes.  */
     101  # define _POSIX_THREAD_ROBUST_PRIO_PROTECT	-1
     102  #endif
     103  
     104  /* We support POSIX.1b semaphores.  */
     105  #define _POSIX_SEMAPHORES			200809L
     106  
     107  /* Real-time signals are not yet supported.  */
     108  #define _POSIX_REALTIME_SIGNALS	-1
     109  
     110  /* Asynchronous I/O might supported with the existing ABI.  */
     111  #define _POSIX_ASYNCHRONOUS_IO	0
     112  #undef _POSIX_ASYNC_IO
     113  /* Alternative name for Unix98.  */
     114  #define _LFS_ASYNCHRONOUS_IO	_POSIX_ASYNCHRONOUS_IO
     115  /* Support for prioritization is not available.  */
     116  #undef _POSIX_PRIORITIZED_IO
     117  
     118  /* The LFS support in asynchronous I/O is also available.  */
     119  #define _LFS64_ASYNCHRONOUS_IO	_POSIX_ASYNCHRONOUS_IO
     120  
     121  /* The rest of the LFS is also available.  */
     122  #define _LFS_LARGEFILE		1
     123  #define _LFS64_LARGEFILE	1
     124  #define _LFS64_STDIO		1
     125  
     126  /* POSIX.4 shared memory objects are supported (using regular files).  */
     127  #define _POSIX_SHARED_MEMORY_OBJECTS	_POSIX_MAPPED_FILES
     128  
     129  /* CPU-time clocks support needs to be checked at runtime.  */
     130  #define _POSIX_CPUTIME	0
     131  
     132  /* Clock support in threads must be also checked at runtime.  */
     133  #define _POSIX_THREAD_CPUTIME	0
     134  
     135  /* GNU libc provides regular expression handling.  */
     136  #define _POSIX_REGEXP	1
     137  
     138  /* Reader/Writer locks are available.  */
     139  #define _POSIX_READER_WRITER_LOCKS	200809L
     140  
     141  /* We have a POSIX shell.  */
     142  #define _POSIX_SHELL	1
     143  
     144  /* We support the Timeouts option.  */
     145  #define _POSIX_TIMEOUTS	200809L
     146  
     147  /* We support spinlocks.  */
     148  #define _POSIX_SPIN_LOCKS	200809L
     149  
     150  /* The `spawn' function family is supported.  */
     151  #define _POSIX_SPAWN	200809L
     152  
     153  /* We do not have POSIX timers, but could in future without ABI change.  */
     154  #define _POSIX_TIMERS	0
     155  
     156  /* The barrier functions are available.  */
     157  #define _POSIX_BARRIERS	200809L
     158  
     159  /* POSIX message queues could be available in future.  */
     160  #define	_POSIX_MESSAGE_PASSING	0
     161  
     162  /* Thread process-shared synchronization is not supported.  */
     163  #define _POSIX_THREAD_PROCESS_SHARED	-1
     164  
     165  /* The monotonic clock might be available.  */
     166  #define _POSIX_MONOTONIC_CLOCK	0
     167  
     168  /* The clock selection interfaces are available.  */
     169  #define _POSIX_CLOCK_SELECTION	200809L
     170  
     171  /* Advisory information interfaces could be available in future.  */
     172  #define _POSIX_ADVISORY_INFO	0
     173  
     174  /* IPv6 support is available.  */
     175  #define _POSIX_IPV6	200809L
     176  
     177  /* Raw socket support is available.  */
     178  #define _POSIX_RAW_SOCKETS	200809L
     179  
     180  /* We have at least one terminal.  */
     181  #define _POSIX2_CHAR_TERM	200809L
     182  
     183  /* Neither process nor thread sporadic server interfaces is available.  */
     184  #define _POSIX_SPORADIC_SERVER	-1
     185  #define _POSIX_THREAD_SPORADIC_SERVER	-1
     186  
     187  /* trace.h is not available.  */
     188  #define _POSIX_TRACE	-1
     189  #define _POSIX_TRACE_EVENT_FILTER	-1
     190  #define _POSIX_TRACE_INHERIT	-1
     191  #define _POSIX_TRACE_LOG	-1
     192  
     193  /* Typed memory objects are not available.  */
     194  #define _POSIX_TYPED_MEMORY_OBJECTS	-1
     195  
     196  #endif /* bits/posix_opt.h */