minix/include/sys/unistd.h
Ben Gras 2fe8fb192f Full switch to clang/ELF. Drop ack. Simplify.
There is important information about booting non-ack images in
docs/UPDATING. ack/aout-format images can't be built any more, and
booting clang/ELF-format ones is a little different. Updating to the
new boot monitor is recommended.

Changes in this commit:

	. drop boot monitor -> allowing dropping ack support
	. facility to copy ELF boot files to /boot so that old boot monitor
	  can still boot fairly easily, see UPDATING
	. no more ack-format libraries -> single-case libraries
	. some cleanup of OBJECT_FMT, COMPILER_TYPE, etc cases
	. drop several ack toolchain commands, but not all support
	  commands (e.g. aal is gone but acksize is not yet).
	. a few libc files moved to netbsd libc dir
	. new /bin/date as minix date used code in libc/
	. test compile fix
	. harmonize includes
	. /usr/lib is no longer special: without ack, /usr/lib plays no
	  kind of special bootstrapping role any more and bootstrapping
	  is done exclusively through packages, so releases depend even
	  less on the state of the machine making them now.
	. rename nbsd_lib* to lib*
	. reduce mtree
2012-02-14 14:52:02 +01:00

209 lines
7.5 KiB
C

/* $NetBSD: unistd.h,v 1.52 2009/08/30 16:38:48 christos Exp $ */
/*
* Copyright (c) 1989, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)unistd.h 8.2 (Berkeley) 1/7/94
*/
#ifndef _SYS_UNISTD_H_
#define _SYS_UNISTD_H_
#include <sys/featuretest.h>
/* compile-time symbolic constants */
#define _POSIX_JOB_CONTROL 1
/* implementation supports job control */
/*
* According to POSIX 1003.1:
* "The saved set-user-ID capability allows a program to regain the
* effective user ID established at the last exec call."
* However, the setuid/setgid function as specified by POSIX 1003.1 does
* not allow changing the effective ID from the super-user without also
* changed the saved ID, so it is impossible to get super-user privileges
* back later. Instead we provide this feature independent of the current
* effective ID through the seteuid/setegid function. In addition, we do
* not use the saved ID as specified by POSIX 1003.1 in setuid/setgid,
* because this would make it impossible for a set-user-ID executable
* owned by a user other than the super-user to permanently revoke its
* extra privileges.
*/
#ifdef _NOT_AVAILABLE
#define _POSIX_SAVED_IDS 1
/* saved set-user-ID and set-group-ID */
#endif
#define _POSIX_VERSION 200112L
#define _POSIX2_VERSION 200112L
/* execution-time symbolic constants */
/*
* POSIX options and option groups we unconditionally do or don't
* implement. Those options which are implemented (or not) entirely
* in user mode are defined in <unistd.h>. Please keep this list in
* alphabetical order.
*
* Anything which is defined as zero below **must** have an
* implementation for the corresponding sysconf() which is able to
* determine conclusively whether or not the feature is supported.
* Anything which is defined as other than -1 below **must** have
* complete headers, types, and function declarations as specified by
* the POSIX standard; however, if the relevant sysconf() function
* returns -1, the functions may be stubbed out.
*/
/* Advisory information */
#undef _POSIX_ADVISORY_INFO
/* asynchronous I/O is available */
#define _POSIX_ASYNCHRONOUS_IO 200112L
/* barriers */
#define _POSIX_BARRIERS 200112L
/* chown requires correct privileges */
#define _POSIX_CHOWN_RESTRICTED 1
/* clock selection */
#define _POSIX_CLOCK_SELECTION -1
/* CPU type */
#undef _POSIX_CPUTYPE
/* file synchronization is available */
#define _POSIX_FSYNC 1
/* support IPv6 */
#define _POSIX_IPV6 0
/* job control is available */
#define _POSIX_JOB_CONTROL 1
/* memory mapped files */
#define _POSIX_MAPPED_FILES 1
/* memory locking whole address space */
#define _POSIX_MEMLOCK 1
/* memory locking address ranges */
#define _POSIX_MEMLOCK_RANGE 1
/* memory access protections */
#define _POSIX_MEMORY_PROTECTION 1
/* message passing is available */
#define _POSIX_MESSAGE_PASSING 200112L
/* monotonic clock */
#define _POSIX_MONOTONIC_CLOCK 200112L
/* too-long path comp generate errors */
#define _POSIX_NO_TRUNC 1
/* prioritized I/O */
#define _POSIX_PRIORITIZED_IO -1
/* priority scheduling */
#define _POSIX_PRIORITY_SCHEDULING 200112L
/* raw sockets */
#define _POSIX_RAW_SOCKETS 200112L
/* read/write locks */
#define _POSIX_READER_WRITER_LOCKS 200112L
/* realtime signals */
#undef _POSIX_REALTIME_SIGNALS
/* regular expressions */
#define _POSIX_REGEXP 1
/* semaphores */
#define _POSIX_SEMAPHORES 0
/* shared memory */
#undef _POSIX_SHARED_MEMORY_OBJECTS
/* shell */
#define _POSIX_SHELL 1
/* spin locks */
#define _POSIX_SPIN_LOCKS 200112L
/* sporadic server */
#undef _POSIX_SPORADIC_SERVER
/* synchronized I/O is available */
#define _POSIX_SYNCHRONIZED_IO 1
/* threads */
#define _POSIX_THREADS 200112L
/* pthread_attr for stack size */
#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
/* pthread_attr for stack address */
#define _POSIX_THREAD_ATTR_STACKADDR 200112L
/* _r functions */
#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
/* timeouts */
#undef _POSIX_TIMEOUTS
/* timers */
#undef _POSIX_TIMERS
/* typed memory objects */
#undef _POSIX_TYPED_MEMORY_OBJECTS
/* may disable terminal spec chars */
#define _POSIX_VDISABLE __CAST(unsigned char, '\377')
/* C binding */
#define _POSIX2_C_BIND 200112L
/* XPG4.2 shared memory */
#define _XOPEN_SHM 0
/* access function */
#define F_OK 0 /* test for existence of file */
#define X_OK 0x01 /* test for execute or search permission */
#define W_OK 0x02 /* test for write permission */
#define R_OK 0x04 /* test for read permission */
/* whence values for lseek(2) */
#define SEEK_SET 0 /* set file offset to offset */
#define SEEK_CUR 1 /* set file offset to current plus offset */
#define SEEK_END 2 /* set file offset to EOF plus offset */
#if defined(_NETBSD_SOURCE)
/* whence values for lseek(2); renamed by POSIX 1003.1 */
#define L_SET SEEK_SET
#define L_INCR SEEK_CUR
#define L_XTND SEEK_END
#endif
/* configurable pathname variables; use as argument to pathconf(3) */
#define _PC_LINK_MAX 1 /* link count */
#define _PC_MAX_CANON 2 /* size of the canonical input queue */
#define _PC_MAX_INPUT 3 /* type-ahead buffer size */
#define _PC_NAME_MAX 4 /* file name size */
#define _PC_PATH_MAX 5 /* pathname size */
#define _PC_PIPE_BUF 6 /* pipe size */
#define _PC_NO_TRUNC 7 /* treatment of long name components */
#define _PC_VDISABLE 8 /* tty disable */
#define _PC_CHOWN_RESTRICTED 9 /* chown restricted or not */
/* configurable system variables; use as argument to sysconf(3) */
/*
* XXX The value of _SC_CLK_TCK is embedded in <time.h>.
* XXX The value of _SC_PAGESIZE is embedded in <sys/shm.h>.
*/
#define _SC_ARG_MAX 1
#define _SC_CHILD_MAX 2
#define _SC_CLOCKS_PER_SEC 3
#define _SC_CLK_TCK 3
#define _SC_NGROUPS_MAX 4
#define _SC_OPEN_MAX 5
#define _SC_JOB_CONTROL 6
#define _SC_SAVED_IDS 7
#define _SC_VERSION 8
#define _SC_STREAM_MAX 9
#define _SC_TZNAME_MAX 10
#define _SC_PAGESIZE 11
#define _SC_PAGE_SIZE _SC_PAGESIZE
#endif /* !_SYS_UNISTD_H_ */