epoc32/include/stdapis/unistd.h
author William Roberts <williamr@symbian.org>
Wed, 31 Mar 2010 12:27:01 +0100
branchSymbian2
changeset 3 e1b950c65cb4
parent 0 061f57f2323e
child 4 837f303aceeb
permissions -rw-r--r--
Attempt to represent the S^2->S^3 header reorganisation as a series of "hg rename" operations
williamr@2
     1
/*-
williamr@2
     2
 * © Portions copyright (c) 2006 Nokia Corporation.  All rights reserved.
williamr@2
     3
 * © Portions copyright (c) 2006 Symbian Software Ltd. All rights reserved.
williamr@2
     4
 * Copyright (c) 1991, 1993, 1994
williamr@2
     5
 *	The Regents of the University of California.  All rights reserved.
williamr@2
     6
 *
williamr@2
     7
 * Redistribution and use in source and binary forms, with or without
williamr@2
     8
 * modification, are permitted provided that the following conditions
williamr@2
     9
 * are met:
williamr@2
    10
 * 1. Redistributions of source code must retain the above copyright
williamr@2
    11
 *    notice, this list of conditions and the following disclaimer.
williamr@2
    12
 * 2. Redistributions in binary form must reproduce the above copyright
williamr@2
    13
 *    notice, this list of conditions and the following disclaimer in the
williamr@2
    14
 *    documentation and/or other materials provided with the distribution.
williamr@2
    15
 * 4. Neither the name of the University nor the names of its contributors
williamr@2
    16
 *    may be used to endorse or promote products derived from this software
williamr@2
    17
 *    without specific prior written permission.
williamr@2
    18
 *
williamr@2
    19
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
williamr@2
    20
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
williamr@2
    21
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
williamr@2
    22
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
williamr@2
    23
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
williamr@2
    24
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
williamr@2
    25
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
williamr@2
    26
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
williamr@2
    27
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
williamr@2
    28
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
williamr@2
    29
 * SUCH DAMAGE.
williamr@2
    30
 * © Portions copyright (c) 2007 Symbian Software Ltd. All rights reserved.
williamr@2
    31
 *	@(#)unistd.h	8.12 (Berkeley) 4/27/95
williamr@2
    32
 * $FreeBSD: src/include/unistd.h,v 1.78 2005/05/13 16:27:30 delphij Exp $
williamr@2
    33
 */
williamr@2
    34
williamr@2
    35
#ifndef _UNISTD_H_
williamr@2
    36
#define	_UNISTD_H_
williamr@2
    37
williamr@2
    38
//---
williamr@2
    39
#ifdef __cplusplus
williamr@2
    40
#include <e32def.h>
williamr@2
    41
williamr@2
    42
extern "C" {
williamr@2
    43
#endif
williamr@2
    44
williamr@2
    45
//---
williamr@2
    46
williamr@2
    47
#include <sys/cdefs.h>
williamr@2
    48
#include <sys/types.h>			/* XXX adds too much pollution. */
williamr@2
    49
#include <sys/unistd.h>
williamr@2
    50
#include <sys/_null.h>
williamr@2
    51
#include <sys/_types.h>
williamr@2
    52
williamr@2
    53
#ifdef __SYMBIAN32__
williamr@2
    54
#include <_ansi.h>
williamr@2
    55
#endif //__SYMBIAN32__
williamr@2
    56
williamr@2
    57
#ifdef __SYMBIAN32__
williamr@2
    58
__BEGIN_DECLS
williamr@2
    59
IMPORT_C char ***__environ(void);
williamr@2
    60
__END_DECLS
williamr@2
    61
#define environ	  (*__environ())
williamr@2
    62
#endif //__SYMBIAN32__
williamr@2
    63
williamr@2
    64
#ifndef _GID_T_DECLARED
williamr@2
    65
typedef	__gid_t		gid_t;
williamr@2
    66
#define	_GID_T_DECLARED
williamr@2
    67
#endif
williamr@2
    68
williamr@2
    69
#ifndef _OFF_T_DECLARED
williamr@2
    70
typedef	__off_t		off_t;
williamr@2
    71
#define	_OFF_T_DECLARED
williamr@2
    72
#endif
williamr@2
    73
williamr@2
    74
#ifndef _PID_T_DECLARED
williamr@2
    75
typedef	__pid_t		pid_t;
williamr@2
    76
#define	_PID_T_DECLARED
williamr@2
    77
#endif
williamr@2
    78
williamr@2
    79
#ifndef _SIZE_T_DECLARED
williamr@2
    80
typedef	__size_t	size_t;
williamr@2
    81
#define	_SIZE_T_DECLARED
williamr@2
    82
#endif
williamr@2
    83
williamr@2
    84
#ifndef _SSIZE_T_DECLARED
williamr@2
    85
typedef	__ssize_t	ssize_t;
williamr@2
    86
#define	_SSIZE_T_DECLARED
williamr@2
    87
#endif
williamr@2
    88
williamr@2
    89
#ifndef _UID_T_DECLARED
williamr@2
    90
typedef	__uid_t		uid_t;
williamr@2
    91
#define	_UID_T_DECLARED
williamr@2
    92
#endif
williamr@2
    93
williamr@2
    94
#ifndef _USECONDS_T_DECLARED
williamr@2
    95
typedef	__useconds_t	useconds_t;
williamr@2
    96
#define	_USECONDS_T_DECLARED
williamr@2
    97
#endif
williamr@2
    98
williamr@2
    99
#define	 STDIN_FILENO	0	/* standard input file descriptor */
williamr@2
   100
#define	STDOUT_FILENO	1	/* standard output file descriptor */
williamr@2
   101
#define	STDERR_FILENO	2	/* standard error file descriptor */
williamr@2
   102
williamr@2
   103
#if __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
williamr@2
   104
#define	F_ULOCK		0	/* unlock locked section */
williamr@2
   105
#define	F_LOCK		1	/* lock a section for exclusive use */
williamr@2
   106
#define	F_TLOCK		2	/* test and lock a section for exclusive use */
williamr@2
   107
#define	F_TEST		3	/* test a section for locks by other procs */
williamr@2
   108
#endif
williamr@2
   109
williamr@2
   110
/*
williamr@2
   111
 * POSIX options and option groups we unconditionally do or don't
williamr@2
   112
 * implement.  This list includes those options which are exclusively
williamr@2
   113
 * implemented (or not) in user mode.  Please keep this list in
williamr@2
   114
 * alphabetical order.
williamr@2
   115
 *
williamr@2
   116
 * Anything which is defined as zero below **must** have an
williamr@2
   117
 * implementation for the corresponding sysconf() which is able to
williamr@2
   118
 * determine conclusively whether or not the feature is supported.
williamr@2
   119
 * Anything which is defined as other than -1 below **must** have
williamr@2
   120
 * complete headers, types, and function declarations as specified by
williamr@2
   121
 * the POSIX standard; however, if the relevant sysconf() function
williamr@2
   122
 * returns -1, the functions may be stubbed out.
williamr@2
   123
 */
williamr@2
   124
#define	_POSIX_BARRIERS			-1
williamr@2
   125
#define	_POSIX_READER_WRITER_LOCKS -1	
williamr@2
   126
#define	_POSIX_REGEXP			1
williamr@2
   127
#define	_POSIX_SHELL			1
williamr@2
   128
#define	_POSIX_SPAWN			-1
williamr@2
   129
#define	_POSIX_SPIN_LOCKS		-1
williamr@2
   130
#define	_POSIX_THREAD_ATTR_STACKADDR -1	
williamr@2
   131
#define	_POSIX_THREAD_ATTR_STACKSIZE	200112L
williamr@2
   132
#define	_POSIX_THREAD_CPUTIME		-1
williamr@2
   133
#define	_POSIX_THREAD_PRIO_INHERIT -1	
williamr@2
   134
#define	_POSIX_THREAD_PRIO_PROTECT -1	
williamr@2
   135
#define	_POSIX_THREAD_PRIORITY_SCHEDULING 200112L
williamr@2
   136
#define	_POSIX_THREAD_PROCESS_SHARED	-1
williamr@2
   137
#define	_POSIX_THREAD_SAFE_FUNCTIONS	200112L
williamr@2
   138
#define	_POSIX_THREAD_SPORADIC_SERVER	-1
williamr@2
   139
#define	_POSIX_THREADS			200112L
williamr@2
   140
#define	_POSIX_TRACE			-1
williamr@2
   141
#define	_POSIX_TRACE_EVENT_FILTER	-1
williamr@2
   142
#define	_POSIX_TRACE_INHERIT		-1
williamr@2
   143
#define	_POSIX_TRACE_LOG		-1
williamr@2
   144
#define	_POSIX2_C_BIND			200112L	/* mandatory */
williamr@2
   145
#define	_POSIX2_C_DEV			-1 /* need c99 utility */
williamr@2
   146
#define	_POSIX2_CHAR_TERM		1
williamr@2
   147
#define	_POSIX2_FORT_DEV		-1 /* need fort77 utility */
williamr@2
   148
#define	_POSIX2_FORT_RUN		200112L
williamr@2
   149
#define	_POSIX2_LOCALEDEF		-1
williamr@2
   150
#define	_POSIX2_PBS			-1
williamr@2
   151
#define	_POSIX2_PBS_ACCOUNTING		-1
williamr@2
   152
#define	_POSIX2_PBS_CHECKPOINT		-1
williamr@2
   153
#define	_POSIX2_PBS_LOCATE		-1
williamr@2
   154
#define	_POSIX2_PBS_MESSAGE		-1
williamr@2
   155
#define	_POSIX2_PBS_TRACK		-1
williamr@2
   156
#define	_POSIX2_SW_DEV			-1 /* XXX ??? */
williamr@2
   157
#define	_POSIX2_UPE			200112L
williamr@2
   158
#define	_V6_ILP32_OFF32			-1
williamr@2
   159
#define	_V6_ILP32_OFFBIG		0
williamr@2
   160
#define	_V6_LP64_OFF64			0
williamr@2
   161
#define	_V6_LPBIG_OFFBIG		-1
williamr@2
   162
williamr@2
   163
#if __XSI_VISIBLE
williamr@2
   164
#define	_XOPEN_CRYPT			-1 /* XXX ??? */
williamr@2
   165
#define	_XOPEN_ENH_I18N			-1 /* mandatory in XSI */
williamr@2
   166
#define	_XOPEN_LEGACY			-1
williamr@2
   167
#define	_XOPEN_REALTIME			-1
williamr@2
   168
#define	_XOPEN_REALTIME_THREADS		-1
williamr@2
   169
#define	_XOPEN_UNIX			-1
williamr@2
   170
#endif
williamr@2
   171
williamr@2
   172
/* Define the POSIX.2 version we target for compliance. */
williamr@2
   173
#define	_POSIX2_VERSION		199212L
williamr@2
   174
williamr@2
   175
/*
williamr@2
   176
 * POSIX-style system configuration variable accessors (for the
williamr@2
   177
 * sysconf function).  The kernel does not directly implement the
williamr@2
   178
 * sysconf() interface; rather, a C library stub translates references
williamr@2
   179
 * to sysconf() into calls to sysctl() using a giant switch statement.
williamr@2
   180
 * Those that are marked `user' are implemented entirely in the C
williamr@2
   181
 * library and never query the kernel.  pathconf() is implemented
williamr@2
   182
 * directly by the kernel so those are not defined here.
williamr@2
   183
 */
williamr@2
   184
#define	_SC_ARG_MAX		 1
williamr@2
   185
#define	_SC_CHILD_MAX		 2
williamr@2
   186
#define	_SC_CLK_TCK		 3
williamr@2
   187
#define	_SC_NGROUPS_MAX		 4
williamr@2
   188
#define	_SC_OPEN_MAX		 5
williamr@2
   189
#define	_SC_JOB_CONTROL		 6
williamr@2
   190
#define	_SC_SAVED_IDS		 7
williamr@2
   191
#define	_SC_VERSION		 8
williamr@2
   192
#define	_SC_BC_BASE_MAX		 9 /* user */
williamr@2
   193
#define	_SC_BC_DIM_MAX		10 /* user */
williamr@2
   194
#define	_SC_BC_SCALE_MAX	11 /* user */
williamr@2
   195
#define	_SC_BC_STRING_MAX	12 /* user */
williamr@2
   196
#define	_SC_COLL_WEIGHTS_MAX	13 /* user */
williamr@2
   197
#define	_SC_EXPR_NEST_MAX	14 /* user */
williamr@2
   198
#define	_SC_LINE_MAX		15 /* user */
williamr@2
   199
#define	_SC_RE_DUP_MAX		16 /* user */
williamr@2
   200
#define	_SC_2_VERSION		17 /* user */
williamr@2
   201
#define	_SC_2_C_BIND		18 /* user */
williamr@2
   202
#define	_SC_2_C_DEV		19 /* user */
williamr@2
   203
#define	_SC_2_CHAR_TERM		20 /* user */
williamr@2
   204
#define	_SC_2_FORT_DEV		21 /* user */
williamr@2
   205
#define	_SC_2_FORT_RUN		22 /* user */
williamr@2
   206
#define	_SC_2_LOCALEDEF		23 /* user */
williamr@2
   207
#define	_SC_2_SW_DEV		24 /* user */
williamr@2
   208
#define	_SC_2_UPE		25 /* user */
williamr@2
   209
#define	_SC_STREAM_MAX		26 /* user */
williamr@2
   210
#define	_SC_TZNAME_MAX		27 /* user */
williamr@2
   211
williamr@2
   212
#if __POSIX_VISIBLE >= 199309
williamr@2
   213
#define	_SC_ASYNCHRONOUS_IO	28
williamr@2
   214
#define	_SC_MAPPED_FILES	29
williamr@2
   215
#define	_SC_MEMLOCK		30
williamr@2
   216
#define	_SC_MEMLOCK_RANGE	31
williamr@2
   217
#define	_SC_MEMORY_PROTECTION	32
williamr@2
   218
#define	_SC_MESSAGE_PASSING	33
williamr@2
   219
#define	_SC_PRIORITIZED_IO	34
williamr@2
   220
#define	_SC_PRIORITY_SCHEDULING	35
williamr@2
   221
#define	_SC_REALTIME_SIGNALS	36
williamr@2
   222
#define	_SC_SEMAPHORES		37
williamr@2
   223
#define	_SC_FSYNC		38
williamr@2
   224
#define	_SC_SHARED_MEMORY_OBJECTS 39
williamr@2
   225
#define	_SC_SYNCHRONIZED_IO	40
williamr@2
   226
#define	_SC_TIMERS		41
williamr@2
   227
#define	_SC_AIO_LISTIO_MAX	42
williamr@2
   228
#define	_SC_AIO_MAX		43
williamr@2
   229
#define	_SC_AIO_PRIO_DELTA_MAX	44
williamr@2
   230
#define	_SC_DELAYTIMER_MAX	45
williamr@2
   231
#define	_SC_MQ_OPEN_MAX		46
williamr@2
   232
#define	_SC_PAGESIZE		47
williamr@2
   233
#define	_SC_RTSIG_MAX		48
williamr@2
   234
#define	_SC_SEM_NSEMS_MAX	49
williamr@2
   235
#define	_SC_SEM_VALUE_MAX	50
williamr@2
   236
#define	_SC_SIGQUEUE_MAX	51
williamr@2
   237
#define	_SC_TIMER_MAX		52
williamr@2
   238
#endif
williamr@2
   239
williamr@2
   240
#if __POSIX_VISIBLE >= 200112
williamr@2
   241
#define	_SC_2_PBS		59 /* user */
williamr@2
   242
#define	_SC_2_PBS_ACCOUNTING	60 /* user */
williamr@2
   243
#define	_SC_2_PBS_CHECKPOINT	61 /* user */
williamr@2
   244
#define	_SC_2_PBS_LOCATE	62 /* user */
williamr@2
   245
#define	_SC_2_PBS_MESSAGE	63 /* user */
williamr@2
   246
#define	_SC_2_PBS_TRACK		64 /* user */
williamr@2
   247
#define	_SC_ADVISORY_INFO	65
williamr@2
   248
#define	_SC_BARRIERS		66 /* user */
williamr@2
   249
#define	_SC_CLOCK_SELECTION	67
williamr@2
   250
#define	_SC_CPUTIME		68
williamr@2
   251
#define	_SC_FILE_LOCKING	69
williamr@2
   252
#define	_SC_GETGR_R_SIZE_MAX	70 /* user */
williamr@2
   253
#define	_SC_GETPW_R_SIZE_MAX	71 /* user */
williamr@2
   254
#define	_SC_HOST_NAME_MAX	72
williamr@2
   255
#define	_SC_LOGIN_NAME_MAX	73
williamr@2
   256
#define	_SC_MONOTONIC_CLOCK	74
williamr@2
   257
#define	_SC_MQ_PRIO_MAX		75
williamr@2
   258
#define	_SC_READER_WRITER_LOCKS	76 /* user */
williamr@2
   259
#define	_SC_REGEXP		77 /* user */
williamr@2
   260
#define	_SC_SHELL		78 /* user */
williamr@2
   261
#define	_SC_SPAWN		79 /* user */
williamr@2
   262
#define	_SC_SPIN_LOCKS		80 /* user */
williamr@2
   263
#define	_SC_SPORADIC_SERVER	81
williamr@2
   264
#define	_SC_THREAD_ATTR_STACKADDR 82 /* user */
williamr@2
   265
#define	_SC_THREAD_ATTR_STACKSIZE 83 /* user */
williamr@2
   266
#define	_SC_THREAD_CPUTIME	84 /* user */
williamr@2
   267
#define	_SC_THREAD_DESTRUCTOR_ITERATIONS 85 /* user */
williamr@2
   268
#define	_SC_THREAD_KEYS_MAX	86 /* user */
williamr@2
   269
#define	_SC_THREAD_PRIO_INHERIT	87 /* user */
williamr@2
   270
#define	_SC_THREAD_PRIO_PROTECT	88 /* user */
williamr@2
   271
#define	_SC_THREAD_PRIORITY_SCHEDULING 89 /* user */
williamr@2
   272
#define	_SC_THREAD_PROCESS_SHARED 90 /* user */
williamr@2
   273
#define	_SC_THREAD_SAFE_FUNCTIONS 91 /* user */
williamr@2
   274
#define	_SC_THREAD_SPORADIC_SERVER 92 /* user */
williamr@2
   275
#define	_SC_THREAD_STACK_MIN	93 /* user */
williamr@2
   276
#define	_SC_THREAD_THREADS_MAX	94 /* user */
williamr@2
   277
#define	_SC_TIMEOUTS		95 /* user */
williamr@2
   278
#define	_SC_THREADS		96 /* user */
williamr@2
   279
#define	_SC_TRACE		97 /* user */
williamr@2
   280
#define	_SC_TRACE_EVENT_FILTER	98 /* user */
williamr@2
   281
#define	_SC_TRACE_INHERIT	99 /* user */
williamr@2
   282
#define	_SC_TRACE_LOG		100 /* user */
williamr@2
   283
#define	_SC_TTY_NAME_MAX	101 /* user */
williamr@2
   284
#define	_SC_TYPED_MEMORY_OBJECTS 102
williamr@2
   285
#define	_SC_V6_ILP32_OFF32	103 /* user */
williamr@2
   286
#define	_SC_V6_ILP32_OFFBIG	104 /* user */
williamr@2
   287
#define	_SC_V6_LP64_OFF64	105 /* user */
williamr@2
   288
#define	_SC_V6_LPBIG_OFFBIG	106 /* user */
williamr@2
   289
#define	_SC_IPV6		118
williamr@2
   290
#define	_SC_RAW_SOCKETS		119
williamr@2
   291
#define	_SC_SYMLOOP_MAX		120
williamr@2
   292
#endif
williamr@2
   293
williamr@2
   294
#if __XSI_VISIBLE
williamr@2
   295
#define	_SC_ATEXIT_MAX		107 /* user */
williamr@2
   296
#define	_SC_IOV_MAX		56
williamr@2
   297
#define	_SC_PAGE_SIZE		_SC_PAGESIZE
williamr@2
   298
#define	_SC_XOPEN_CRYPT		108 /* user */
williamr@2
   299
#define	_SC_XOPEN_ENH_I18N	109 /* user */
williamr@2
   300
#define	_SC_XOPEN_LEGACY	110 /* user */
williamr@2
   301
#define	_SC_XOPEN_REALTIME	111
williamr@2
   302
#define	_SC_XOPEN_REALTIME_THREADS 112
williamr@2
   303
#define	_SC_XOPEN_SHM		113
williamr@2
   304
#define	_SC_XOPEN_STREAMS	114
williamr@2
   305
#define	_SC_XOPEN_UNIX		115
williamr@2
   306
#define	_SC_XOPEN_VERSION	116
williamr@2
   307
#define	_SC_XOPEN_XCU_VERSION	117 /* user */
williamr@2
   308
#endif
williamr@2
   309
williamr@2
   310
#if __BSD_VISIBLE
williamr@2
   311
#define	_SC_NPROCESSORS_CONF	57
williamr@2
   312
#define	_SC_NPROCESSORS_ONLN	58
williamr@2
   313
#endif
williamr@2
   314
williamr@2
   315
/* Keys for the confstr(3) function. */
williamr@2
   316
#if __POSIX_VISIBLE >= 199209
williamr@2
   317
#define	_CS_PATH		1	/* default value of PATH */
williamr@2
   318
#endif
williamr@2
   319
williamr@2
   320
#if __POSIX_VISIBLE >= 200112
williamr@2
   321
#define	_CS_POSIX_V6_ILP32_OFF32_CFLAGS		2
williamr@2
   322
#define	_CS_POSIX_V6_ILP32_OFF32_LDFLAGS	3
williamr@2
   323
#define	_CS_POSIX_V6_ILP32_OFF32_LIBS		4
williamr@2
   324
#define	_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS	5
williamr@2
   325
#define	_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS	6
williamr@2
   326
#define	_CS_POSIX_V6_ILP32_OFFBIG_LIBS		7
williamr@2
   327
#define	_CS_POSIX_V6_LP64_OFF64_CFLAGS		8
williamr@2
   328
#define	_CS_POSIX_V6_LP64_OFF64_LDFLAGS		9
williamr@2
   329
#define	_CS_POSIX_V6_LP64_OFF64_LIBS		10
williamr@2
   330
#define	_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS	11
williamr@2
   331
#define	_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS	12
williamr@2
   332
#define	_CS_POSIX_V6_LPBIG_OFFBIG_LIBS		13
williamr@2
   333
#define	_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS	14
williamr@2
   334
#endif
williamr@2
   335
williamr@2
   336
__BEGIN_DECLS
williamr@2
   337
/* 1003.1-1990 */
williamr@2
   338
IMPORT_C void	 _exit(int) __dead2;
williamr@2
   339
IMPORT_C int	 access(const char *, int);
williamr@2
   340
IMPORT_C int	 chdir(const char *);
williamr@2
   341
IMPORT_C int	 chown(const char *, uid_t, gid_t);
williamr@2
   342
IMPORT_C int	 close(int);
williamr@2
   343
IMPORT_C int	 dup(int);
williamr@2
   344
IMPORT_C int	 dup2(int, int);
williamr@2
   345
int	 eaccess(const char *, int);
williamr@2
   346
IMPORT_C long	 fpathconf(int, int);
williamr@2
   347
IMPORT_C char	*getcwd(char *, size_t);
williamr@2
   348
IMPORT_C gid_t	 getegid(void);
williamr@2
   349
IMPORT_C uid_t	 geteuid(void);
williamr@2
   350
IMPORT_C gid_t	 getgid(void);
williamr@2
   351
IMPORT_C int	 getgroups(int, gid_t []);
williamr@2
   352
char	*getlogin(void);
williamr@2
   353
IMPORT_C pid_t	 getpgrp(void);
williamr@2
   354
IMPORT_C pid_t	 getpid(void);
williamr@2
   355
IMPORT_C pid_t	 getppid(void);
williamr@2
   356
IMPORT_C uid_t	 getuid(void);
williamr@2
   357
IMPORT_C int	 isatty(int);
williamr@2
   358
IMPORT_C int	 link(const char *, const char *);
williamr@2
   359
#ifndef _LSEEK_DECLARED
williamr@2
   360
#define	_LSEEK_DECLARED
williamr@2
   361
IMPORT_C off_t	 lseek(int, off_t, int);
williamr@2
   362
#endif
williamr@2
   363
IMPORT_C long	 pathconf(const char *, int);
williamr@2
   364
IMPORT_C int pipe(int *);
williamr@2
   365
IMPORT_C ssize_t	 read(int, void *, size_t);
williamr@2
   366
IMPORT_C int	 rmdir(const char *);
williamr@2
   367
IMPORT_C int	 setgid(gid_t);
williamr@2
   368
IMPORT_C int	 setpgid(pid_t, pid_t);
williamr@2
   369
void	 setproctitle(const char *_fmt, ...) __printf0like(1, 2);
williamr@2
   370
IMPORT_C pid_t	 setsid(void);
williamr@2
   371
IMPORT_C int	 setuid(uid_t);
williamr@2
   372
IMPORT_C unsigned int	 sleep(unsigned int);
williamr@2
   373
IMPORT_C 
williamr@2
   374
long	 sysconf(int);
williamr@2
   375
IMPORT_C int	 unlink(const char *);
williamr@2
   376
IMPORT_C ssize_t	 write(int, const void *, size_t);
williamr@2
   377
/* 1003.2-1992 */
williamr@2
   378
#if __POSIX_VISIBLE >= 199209 || __XSI_VISIBLE
williamr@2
   379
IMPORT_C size_t	 confstr(int, char *, size_t);
williamr@2
   380
#ifndef _GETOPT_DECLARED
williamr@2
   381
#define	_GETOPT_DECLARED
williamr@2
   382
IMPORT_C int	 getopt(int, char * const [], const char *);
williamr@2
   383
williamr@2
   384
#ifndef __SYMBIAN32__
williamr@2
   385
extern char *optarg;			/* getopt(3) external variables */
williamr@2
   386
extern int optind, opterr, optopt;
williamr@2
   387
#else
williamr@2
   388
IMPORT_C int *__optopt(void);
williamr@2
   389
IMPORT_C int *__opterr(void);
williamr@2
   390
IMPORT_C int *__optind(void);
williamr@2
   391
IMPORT_C char **__optarg(void);
williamr@2
   392
#define optopt	  (*__optopt())
williamr@2
   393
#define opterr	  (*__opterr())
williamr@2
   394
#define optind	  (*__optind())
williamr@2
   395
#define optarg	  (*__optarg())
williamr@2
   396
#endif /* __SYMBIAN32__ */
williamr@2
   397
williamr@2
   398
#endif /* _GETOPT_DECLARED */
williamr@2
   399
#endif
williamr@2
   400
williamr@2
   401
/* ISO/IEC 9945-1: 1996 */
williamr@2
   402
#if __POSIX_VISIBLE >= 199506 || __XSI_VISIBLE
williamr@2
   403
IMPORT_C int	 fsync(int);
williamr@2
   404
IMPORT_C int fdatasync(int);
williamr@2
   405
/*
williamr@2
   406
 * ftruncate() was in the POSIX Realtime Extension (it's used for shared
williamr@2
   407
 * memory), but truncate() was not.
williamr@2
   408
 */
williamr@2
   409
#ifndef _FTRUNCATE_DECLARED
williamr@2
   410
#define	_FTRUNCATE_DECLARED
williamr@2
   411
IMPORT_C int	 ftruncate(int, off_t);
williamr@2
   412
#endif
williamr@2
   413
#endif
williamr@2
   414
williamr@2
   415
#if __POSIX_VISIBLE >= 199506
williamr@2
   416
williamr@2
   417
#ifndef __SYMBIAN32__
williamr@2
   418
int	 getlogin_r(char *, int);
williamr@2
   419
#endif //__SYMBIAN32__
williamr@2
   420
williamr@2
   421
#endif
williamr@2
   422
williamr@2
   423
/* 1003.1-2001 */
williamr@2
   424
#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
williamr@2
   425
IMPORT_C int	 readlink(const char *, char *, int);
williamr@2
   426
#endif
williamr@2
   427
#if __POSIX_VISIBLE >= 200112
williamr@2
   428
IMPORT_C int	 gethostname(char *, size_t);
williamr@2
   429
IMPORT_C int	 setegid(gid_t);
williamr@2
   430
IMPORT_C int	 seteuid(uid_t);
williamr@2
   431
#endif
williamr@2
   432
williamr@2
   433
/*
williamr@2
   434
 * symlink() was originally in POSIX.1a, which was withdrawn after
williamr@2
   435
 * being overtaken by events (1003.1-2001).  It was in XPG4.2, and of
williamr@2
   436
 * course has been in BSD since 4.2.
williamr@2
   437
 */
williamr@2
   438
#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 402 || __BSD_VISIBLE
williamr@2
   439
IMPORT_C int	 symlink(const char * __restrict, const char * __restrict);
williamr@2
   440
#endif
williamr@2
   441
williamr@2
   442
/* X/Open System Interfaces */
williamr@2
   443
#if __XSI_VISIBLE
williamr@2
   444
char	*crypt(const char *, const char *);
williamr@2
   445
/* char	*ctermid(char *); */		/* XXX ??? */
williamr@2
   446
int	 encrypt(char *, int);
williamr@2
   447
IMPORT_C int	 fchdir(int);
williamr@2
   448
IMPORT_C int	 getpgid(pid_t _pid);
williamr@2
   449
IMPORT_C int	 lchown(const char *, uid_t, gid_t);
williamr@2
   450
IMPORT_C int	 nice(int);
williamr@2
   451
IMPORT_C int	 setpgrp(pid_t _pid, pid_t _pgrp); /* obsoleted by setpgid() */
williamr@2
   452
IMPORT_C int	 setregid(gid_t, gid_t);
williamr@2
   453
IMPORT_C int	 setreuid(uid_t, uid_t);
williamr@2
   454
williamr@2
   455
#ifndef _SWAB_DECLARED
williamr@2
   456
#define _SWAB_DECLARED
williamr@2
   457
IMPORT_C 
williamr@2
   458
void	 swab(const void * __restrict, void * __restrict, ssize_t);
williamr@2
   459
#endif /* _SWAB_DECLARED */
williamr@2
   460
williamr@2
   461
void	 sync(void);
williamr@2
   462
IMPORT_C int	 usleep(useconds_t);
williamr@2
   463
williamr@2
   464
/* See comment at ftruncate() above. */
williamr@2
   465
#ifndef _TRUNCATE_DECLARED
williamr@2
   466
#define	_TRUNCATE_DECLARED
williamr@2
   467
IMPORT_C int	 truncate(const char *, off_t);
williamr@2
   468
#endif
williamr@2
   469
#endif /* __XSI_VISIBLE */
williamr@2
   470
williamr@2
   471
#if __XSI_VISIBLE <= 500 || __BSD_VISIBLE
williamr@2
   472
IMPORT_C int	 brk(const void *);
williamr@2
   473
IMPORT_C int	 getdtablesize(void);
williamr@2
   474
IMPORT_C int	 getpagesize(void) __pure2;
williamr@2
   475
#endif
williamr@2
   476
williamr@2
   477
#if __BSD_VISIBLE
williamr@2
   478
struct timeval;				/* select(2) */
williamr@2
   479
IMPORT_C int	 initgroups(const char *, gid_t);
williamr@2
   480
IMPORT_C int	 issetugid(void);
williamr@2
   481
williamr@2
   482
#ifdef __SYMBIAN_COMPILE_UNUSED__
williamr@2
   483
char	*mkdtemp(char *);
williamr@2
   484
#endif
williamr@2
   485
williamr@2
   486
#ifndef	_MKNOD_DECLARED
williamr@2
   487
int	 mknod(const char *, mode_t, dev_t);
williamr@2
   488
#define	_MKNOD_DECLARED
williamr@2
   489
#endif
williamr@2
   490
#ifndef _MKSTEMP_DECLARED
williamr@2
   491
IMPORT_C int	 mkstemp(char *);
williamr@2
   492
#define	_MKSTEMP_DECLARED
williamr@2
   493
#endif
williamr@2
   494
williamr@2
   495
#ifdef __SYMBIAN_COMPILE_UNUSED__
williamr@2
   496
int	 mkstemps(char *, int);
williamr@2
   497
#endif
williamr@2
   498
williamr@2
   499
#ifndef _MKTEMP_DECLARED
williamr@2
   500
williamr@2
   501
#ifdef __SYMBIAN_COMPILE_UNUSED__
williamr@2
   502
char	*mktemp(char *);
williamr@2
   503
#endif
williamr@2
   504
williamr@2
   505
#define	_MKTEMP_DECLARED
williamr@2
   506
#endif
williamr@2
   507
int	 nfssvc(int, void *);
williamr@2
   508
williamr@2
   509
#if __BSD_VISIBLE
williamr@2
   510
#ifndef __SYMBIAN32__
williamr@2
   511
#ifndef _SELECT_DECLARED
williamr@2
   512
#define	_SELECT_DECLARED
williamr@2
   513
IMPORT_C int	 select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
williamr@2
   514
#endif // _SELECT_DECLARED
williamr@2
   515
#endif // __SYMBIAN32__
williamr@2
   516
#endif // __BSD_VISIBLE
williamr@2
   517
williamr@2
   518
IMPORT_C int	 setgroups(int, const gid_t *);
williamr@2
   519
#ifndef _SETKEY_DECLARED
williamr@2
   520
int	 setkey(const char *);
williamr@2
   521
#define	_SETKEY_DECLARED
williamr@2
   522
#endif
williamr@2
   523
williamr@2
   524
#ifndef _OPTRESET_DECLARED
williamr@2
   525
#define	_OPTRESET_DECLARED
williamr@2
   526
#ifndef __SYMBIAN32__
williamr@2
   527
extern int optreset;			/* getopt(3) external variable */
williamr@2
   528
#else
williamr@2
   529
IMPORT_C int *__optreset(void);
williamr@2
   530
#define optreset  (*__optreset())
williamr@2
   531
#endif /* __SYMBIAN32__ */
williamr@2
   532
williamr@2
   533
#ifdef __SYMBIAN32__
williamr@2
   534
#ifndef __XSI_VISIBLE
williamr@2
   535
void encrypt(char block[], int edflag);
williamr@2
   536
char *crypt(const char *key, const char *salt);
williamr@2
   537
#endif /* ifdef __SYMBIAN32__ */
williamr@2
   538
#endif /* ifndef __XSI_VISIBLE */
williamr@2
   539
williamr@2
   540
#endif /* _OPTRESET_DECLARED */
williamr@2
   541
#endif /* __BSD_VISIBLE */
williamr@2
   542
__END_DECLS
williamr@2
   543
williamr@2
   544
//---
williamr@2
   545
#ifdef __cplusplus
williamr@2
   546
}
williamr@2
   547
#endif
williamr@2
   548
//---
williamr@2
   549
williamr@2
   550
#endif /* !_UNISTD_H_ */