310 lines
12 KiB
C
310 lines
12 KiB
C
/* Copyright (c) 2016 Phoenix Systems
|
|
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.
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.*/
|
|
|
|
#ifndef _SYS_UNISTD_H
|
|
#define _SYS_UNISTD_H
|
|
|
|
#include <_ansi.h>
|
|
#include <features.h>
|
|
#include <sys/types.h>
|
|
#define __need_size_t
|
|
#define __need_ptrdiff_t
|
|
#include <stddef.h>
|
|
#include <sys/select.h>
|
|
|
|
extern char **environ;
|
|
|
|
void _exit(int status) _ATTRIBUTE ((__noreturn__));
|
|
|
|
int access(const char *pathname, int mode);
|
|
unsigned int alarm(unsigned seconds);
|
|
int chdir(const char *path);
|
|
int chmod(const char *pathname, mode_t mode);
|
|
int chown(const char *pathname, uid_t owner, gid_t group);
|
|
int chroot(const char *path);
|
|
int close(int fd);
|
|
int _close(int fd);
|
|
char *ctermid(char *s);
|
|
char *cuserid(char *string);
|
|
int daemon(int nochdir, int noclose);
|
|
int dup(int oldfd);
|
|
int dup2(int olffd, int newfd);
|
|
int execl(const char *path, const char *arg, ...);
|
|
int execle(const char *path, const char *arg, ...);
|
|
int execlp(const char *file, const char *arg, ...);
|
|
int execv(const char *path, char *const argv[]);
|
|
int execve(const char *filename, char *const argv[], char *const envp[]);
|
|
int _execve(const char *filename, char *const argv[], char *const envp[]);
|
|
int execvp(const char *file, char *const argv[]);
|
|
int execvpe(const char *file, char *const argv[], char *const envp[]);
|
|
int fchdir(int fd);
|
|
int fchmod(int fd, mode_t mode);
|
|
int fchown(int fd, uid_t owner, gid_t group);
|
|
int fdatasync(int fd);
|
|
pid_t fork();
|
|
long fpathconf(int fd, int name);
|
|
int fsync(int fd);
|
|
int ftruncate(int fd, off_t length);
|
|
char *getcwd(char *buf, size_t size);
|
|
int getdomainname(char *name, size_t len);
|
|
int getentropy(void *buf, size_t buflen);
|
|
gid_t getegid();
|
|
uid_t geteuid();
|
|
gid_t getgid();
|
|
int getgroups(int size, gid_t list[]);
|
|
int gethostname(char *name, size_t len);
|
|
char *getlogin();
|
|
#if defined(_POSIX_THREAD_SAFE_FUNCTIONS)
|
|
int getlogin_r(char *buf, size_t bufsize);
|
|
#endif
|
|
char *getpass(const char *prompt);
|
|
int getpagesize();
|
|
pid_t getpgid(pid_t pid);
|
|
pid_t getpgrp();
|
|
pid_t getpid();
|
|
pid_t getppid();
|
|
uid_t getuid();
|
|
char *getusershell();
|
|
char *getwd(char *buf);
|
|
int isatty(int fd);
|
|
int _isatty(int fd);
|
|
int issetugid();
|
|
int fchown(int fd, uid_t owner, gid_t group);
|
|
int lchown(const char *pathname, uid_t owner, gid_t group);
|
|
int link(const char *oldpath, const char *newpath);
|
|
int nice(int inc);
|
|
off_t lseek(int fd, off_t offset, int whence);
|
|
long pathconf(const char *path, int name);
|
|
int pause();
|
|
int pipe(int pipefd[2]);
|
|
ssize_t pread(int fd, void *buf, size_t count, off_t offset);
|
|
ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
|
|
ssize_t read(int fd, void *buf, size_t count);
|
|
ssize_t readlink(const char *pathname, char *buf, size_t bufsiz);
|
|
int rmdir(const char *pathname);
|
|
void *sbrk(intptr_t increment);
|
|
int setegid(gid_t egid);
|
|
int seteuid(uid_t euid);
|
|
int setgid(gid_t gid);
|
|
int sethostname(const char *name, size_t len);
|
|
int setpgid(pid_t pid, pid_t pgid);
|
|
int setpgrp(void);
|
|
pid_t setsid(void);
|
|
int setuid(uid_t uid);
|
|
unsigned int sleep(unsigned int seconds);
|
|
void swab(const void *from, void *to, ssize_t n);
|
|
int symlink(const char *target, const char *linkpath);
|
|
long sysconf(int name);
|
|
pid_t tcgetpgrp(int fd);
|
|
int tcsetpgrp(int fd, pid_t pgrp);
|
|
int truncate(const char *path, off_t );
|
|
char *ttyname(int fd);
|
|
int ttyname_r(int fd, char *buf, size_t buflen);
|
|
int unlink(const char *pathname);
|
|
int usleep(useconds_t usec);
|
|
int vhangup();
|
|
ssize_t write(int fd, const void *buf, size_t count);
|
|
|
|
extern char *optarg; /* getopt(3) external variables */
|
|
extern int optind, opterr, optopt;
|
|
int getopt(int argc, char * const argv[], const char *optstring);
|
|
extern int optreset; /* getopt(3) external variable */
|
|
|
|
pid_t vfork();
|
|
|
|
extern char *suboptarg; /* getsubopt(3) external variable */
|
|
int getsubopt(char **optionp, char * const *tokens, char **valuep);
|
|
|
|
#define F_OK 0
|
|
#define R_OK 4
|
|
#define W_OK 2
|
|
#define X_OK 1
|
|
|
|
#define SEEK_SET 0
|
|
#define SEEK_CUR 1
|
|
#define SEEK_END 2
|
|
|
|
#include <sys/features.h>
|
|
|
|
#define STDIN_FILENO 0 /* Standard input file descriptor */
|
|
#define STDOUT_FILENO 1 /* Standard output file descriptor */
|
|
#define STDERR_FILENO 2 /* Standard error file descriptor */
|
|
|
|
/* sysconf values per IEEE Std 1003.1, 2008 Edition */
|
|
#define _SC_ARG_MAX 0
|
|
#define _SC_CHILD_MAX 1
|
|
#define _SC_CLK_TCK 2
|
|
#define _SC_NGROUPS_MAX 3
|
|
#define _SC_OPEN_MAX 4
|
|
#define _SC_JOB_CONTROL 5
|
|
#define _SC_SAVED_IDS 6
|
|
#define _SC_VERSION 7
|
|
#define _SC_PAGESIZE 8
|
|
#define _SC_PAGE_SIZE _SC_PAGESIZE
|
|
/* These are non-POSIX values we accidentally introduced in 2000 without
|
|
guarding them. Keeping them unguarded for backward compatibility. */
|
|
#define _SC_NPROCESSORS_CONF 9
|
|
#define _SC_NPROCESSORS_ONLN 10
|
|
#define _SC_PHYS_PAGES 11
|
|
#define _SC_AVPHYS_PAGES 12
|
|
/* End of non-POSIX values. */
|
|
#define _SC_MQ_OPEN_MAX 13
|
|
#define _SC_MQ_PRIO_MAX 14
|
|
#define _SC_RTSIG_MAX 15
|
|
#define _SC_SEM_NSEMS_MAX 16
|
|
#define _SC_SEM_VALUE_MAX 17
|
|
#define _SC_SIGQUEUE_MAX 18
|
|
#define _SC_TIMER_MAX 19
|
|
#define _SC_TZNAME_MAX 20
|
|
#define _SC_ASYNCHRONOUS_IO 21
|
|
#define _SC_FSYNC 22
|
|
#define _SC_MAPPED_FILES 23
|
|
#define _SC_MEMLOCK 24
|
|
#define _SC_MEMLOCK_RANGE 25
|
|
#define _SC_MEMORY_PROTECTION 26
|
|
#define _SC_MESSAGE_PASSING 27
|
|
#define _SC_PRIORITIZED_IO 28
|
|
#define _SC_REALTIME_SIGNALS 29
|
|
#define _SC_SEMAPHORES 30
|
|
#define _SC_SHARED_MEMORY_OBJECTS 31
|
|
#define _SC_SYNCHRONIZED_IO 32
|
|
#define _SC_TIMERS 33
|
|
#define _SC_AIO_LISTIO_MAX 34
|
|
#define _SC_AIO_MAX 35
|
|
#define _SC_AIO_PRIO_DELTA_MAX 36
|
|
#define _SC_DELAYTIMER_MAX 37
|
|
#define _SC_THREAD_KEYS_MAX 38
|
|
#define _SC_THREAD_STACK_MIN 39
|
|
#define _SC_THREAD_THREADS_MAX 40
|
|
#define _SC_TTY_NAME_MAX 41
|
|
#define _SC_THREADS 42
|
|
#define _SC_THREAD_ATTR_STACKADDR 43
|
|
#define _SC_THREAD_ATTR_STACKSIZE 44
|
|
#define _SC_THREAD_PRIORITY_SCHEDULING 45
|
|
#define _SC_THREAD_PRIO_INHERIT 46
|
|
#define _SC_THREAD_PRIO_PROTECT 47
|
|
#define _SC_THREAD_PRIO_CEILING _SC_THREAD_PRIO_PROTECT
|
|
#define _SC_THREAD_PROCESS_SHARED 48
|
|
#define _SC_THREAD_SAFE_FUNCTIONS 49
|
|
#define _SC_GETGR_R_SIZE_MAX 50
|
|
#define _SC_GETPW_R_SIZE_MAX 51
|
|
#define _SC_LOGIN_NAME_MAX 52
|
|
#define _SC_THREAD_DESTRUCTOR_ITERATIONS 53
|
|
#define _SC_ADVISORY_INFO 54
|
|
#define _SC_ATEXIT_MAX 55
|
|
#define _SC_BARRIERS 56
|
|
#define _SC_BC_BASE_MAX 57
|
|
#define _SC_BC_DIM_MAX 58
|
|
#define _SC_BC_SCALE_MAX 59
|
|
#define _SC_BC_STRING_MAX 60
|
|
#define _SC_CLOCK_SELECTION 61
|
|
#define _SC_COLL_WEIGHTS_MAX 62
|
|
#define _SC_CPUTIME 63
|
|
#define _SC_EXPR_NEST_MAX 64
|
|
#define _SC_HOST_NAME_MAX 65
|
|
#define _SC_IOV_MAX 66
|
|
#define _SC_IPV6 67
|
|
#define _SC_LINE_MAX 68
|
|
#define _SC_MONOTONIC_CLOCK 69
|
|
#define _SC_RAW_SOCKETS 70
|
|
#define _SC_READER_WRITER_LOCKS 71
|
|
#define _SC_REGEXP 72
|
|
#define _SC_RE_DUP_MAX 73
|
|
#define _SC_SHELL 74
|
|
#define _SC_SPAWN 75
|
|
#define _SC_SPIN_LOCKS 76
|
|
#define _SC_SPORADIC_SERVER 77
|
|
#define _SC_SS_REPL_MAX 78
|
|
#define _SC_SYMLOOP_MAX 79
|
|
#define _SC_THREAD_CPUTIME 80
|
|
#define _SC_THREAD_SPORADIC_SERVER 81
|
|
#define _SC_TIMEOUTS 82
|
|
#define _SC_TRACE 83
|
|
#define _SC_TRACE_EVENT_FILTER 84
|
|
#define _SC_TRACE_EVENT_NAME_MAX 85
|
|
#define _SC_TRACE_INHERIT 86
|
|
#define _SC_TRACE_LOG 87
|
|
#define _SC_TRACE_NAME_MAX 88
|
|
#define _SC_TRACE_SYS_MAX 89
|
|
#define _SC_TRACE_USER_EVENT_MAX 90
|
|
#define _SC_TYPED_MEMORY_OBJECTS 91
|
|
#define _SC_V7_ILP32_OFF32 92
|
|
#define _SC_V6_ILP32_OFF32 _SC_V7_ILP32_OFF32
|
|
#define _SC_XBS5_ILP32_OFF32 _SC_V7_ILP32_OFF32
|
|
#define _SC_V7_ILP32_OFFBIG 93
|
|
#define _SC_V6_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG
|
|
#define _SC_XBS5_ILP32_OFFBIG _SC_V7_ILP32_OFFBIG
|
|
#define _SC_V7_LP64_OFF64 94
|
|
#define _SC_V6_LP64_OFF64 _SC_V7_LP64_OFF64
|
|
#define _SC_XBS5_LP64_OFF64 _SC_V7_LP64_OFF64
|
|
#define _SC_V7_LPBIG_OFFBIG 95
|
|
#define _SC_V6_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG
|
|
#define _SC_XBS5_LPBIG_OFFBIG _SC_V7_LPBIG_OFFBIG
|
|
#define _SC_XOPEN_CRYPT 96
|
|
#define _SC_XOPEN_ENH_I18N 97
|
|
#define _SC_XOPEN_LEGACY 98
|
|
#define _SC_XOPEN_REALTIME 99
|
|
#define _SC_STREAM_MAX 100
|
|
#define _SC_PRIORITY_SCHEDULING 101
|
|
#define _SC_XOPEN_REALTIME_THREADS 102
|
|
#define _SC_XOPEN_SHM 103
|
|
#define _SC_XOPEN_STREAMS 104
|
|
#define _SC_XOPEN_UNIX 105
|
|
#define _SC_XOPEN_VERSION 106
|
|
#define _SC_2_CHAR_TERM 107
|
|
#define _SC_2_C_BIND 108
|
|
#define _SC_2_C_DEV 109
|
|
#define _SC_2_FORT_DEV 110
|
|
#define _SC_2_FORT_RUN 111
|
|
#define _SC_2_LOCALEDEF 112
|
|
#define _SC_2_PBS 113
|
|
#define _SC_2_PBS_ACCOUNTING 114
|
|
#define _SC_2_PBS_CHECKPOINT 115
|
|
#define _SC_2_PBS_LOCATE 116
|
|
#define _SC_2_PBS_MESSAGE 117
|
|
#define _SC_2_PBS_TRACK 118
|
|
#define _SC_2_SW_DEV 119
|
|
#define _SC_2_UPE 120
|
|
#define _SC_2_VERSION 121
|
|
#define _SC_THREAD_ROBUST_PRIO_INHERIT 122
|
|
#define _SC_THREAD_ROBUST_PRIO_PROTECT 123
|
|
#define _SC_XOPEN_UUCP 124
|
|
#define _SC_LEVEL1_ICACHE_SIZE 125
|
|
#define _SC_LEVEL1_ICACHE_ASSOC 126
|
|
#define _SC_LEVEL1_ICACHE_LINESIZE 127
|
|
#define _SC_LEVEL1_DCACHE_SIZE 128
|
|
#define _SC_LEVEL1_DCACHE_ASSOC 129
|
|
#define _SC_LEVEL1_DCACHE_LINESIZE 130
|
|
#define _SC_LEVEL2_CACHE_SIZE 131
|
|
#define _SC_LEVEL2_CACHE_ASSOC 132
|
|
#define _SC_LEVEL2_CACHE_LINESIZE 133
|
|
#define _SC_LEVEL3_CACHE_SIZE 134
|
|
#define _SC_LEVEL3_CACHE_ASSOC 135
|
|
#define _SC_LEVEL3_CACHE_LINESIZE 136
|
|
#define _SC_LEVEL4_CACHE_SIZE 137
|
|
#define _SC_LEVEL4_CACHE_ASSOC 138
|
|
#define _SC_LEVEL4_CACHE_LINESIZE 139
|
|
|
|
#endif
|