github.com/afumu/libc@v0.0.6/musl/include/unistd.h (about)

     1  #ifndef	_UNISTD_H
     2  #define	_UNISTD_H
     3  
     4  #ifdef __cplusplus
     5  extern "C" {
     6  #endif
     7  
     8  #include <features.h>
     9  
    10  #define STDIN_FILENO  0
    11  #define STDOUT_FILENO 1
    12  #define STDERR_FILENO 2
    13  
    14  #define SEEK_SET 0
    15  #define SEEK_CUR 1
    16  #define SEEK_END 2
    17  
    18  #ifdef __cplusplus
    19  #define NULL 0L
    20  #else
    21  #define NULL ((void*)0)
    22  #endif
    23  
    24  #define __NEED_size_t
    25  #define __NEED_ssize_t
    26  #define __NEED_uid_t
    27  #define __NEED_gid_t
    28  #define __NEED_off_t
    29  #define __NEED_pid_t
    30  #define __NEED_intptr_t
    31  #define __NEED_useconds_t
    32  
    33  #include <bits/alltypes.h>
    34  
    35  int pipe(int [2]);
    36  int pipe2(int [2], int);
    37  int close(int);
    38  int posix_close(int, int);
    39  int dup(int);
    40  int dup2(int, int);
    41  int dup3(int, int, int);
    42  off_t lseek(int, off_t, int);
    43  int fsync(int);
    44  int fdatasync(int);
    45  
    46  ssize_t read(int, void *, size_t);
    47  ssize_t write(int, const void *, size_t);
    48  ssize_t pread(int, void *, size_t, off_t);
    49  ssize_t pwrite(int, const void *, size_t, off_t);
    50  
    51  int chown(const char *, uid_t, gid_t);
    52  int fchown(int, uid_t, gid_t);
    53  int lchown(const char *, uid_t, gid_t);
    54  int fchownat(int, const char *, uid_t, gid_t, int);
    55  
    56  int link(const char *, const char *);
    57  int linkat(int, const char *, int, const char *, int);
    58  int symlink(const char *, const char *);
    59  int symlinkat(const char *, int, const char *);
    60  ssize_t readlink(const char *__restrict, char *__restrict, size_t);
    61  ssize_t readlinkat(int, const char *__restrict, char *__restrict, size_t);
    62  int unlink(const char *);
    63  int unlinkat(int, const char *, int);
    64  int rmdir(const char *);
    65  int truncate(const char *, off_t);
    66  int ftruncate(int, off_t);
    67  
    68  #define F_OK 0
    69  #define R_OK 4
    70  #define W_OK 2
    71  #define X_OK 1
    72  
    73  int access(const char *, int);
    74  int faccessat(int, const char *, int, int);
    75  
    76  int chdir(const char *);
    77  int fchdir(int);
    78  char *getcwd(char *, size_t);
    79  
    80  unsigned alarm(unsigned);
    81  unsigned sleep(unsigned);
    82  int pause(void);
    83  
    84  pid_t fork(void);
    85  int execve(const char *, char *const [], char *const []);
    86  int execv(const char *, char *const []);
    87  int execle(const char *, const char *, ...);
    88  int execl(const char *, const char *, ...);
    89  int execvp(const char *, char *const []);
    90  int execlp(const char *, const char *, ...);
    91  int fexecve(int, char *const [], char *const []);
    92  _Noreturn void _exit(int);
    93  
    94  pid_t getpid(void);
    95  pid_t getppid(void);
    96  pid_t getpgrp(void);
    97  pid_t getpgid(pid_t);
    98  int setpgid(pid_t, pid_t);
    99  pid_t setsid(void);
   100  pid_t getsid(pid_t);
   101  char *ttyname(int);
   102  int ttyname_r(int, char *, size_t);
   103  int isatty(int);
   104  pid_t tcgetpgrp(int);
   105  int tcsetpgrp(int, pid_t);
   106  
   107  uid_t getuid(void);
   108  uid_t geteuid(void);
   109  gid_t getgid(void);
   110  gid_t getegid(void);
   111  int getgroups(int, gid_t []);
   112  int setuid(uid_t);
   113  int seteuid(uid_t);
   114  int setgid(gid_t);
   115  int setegid(gid_t);
   116  
   117  char *getlogin(void);
   118  int getlogin_r(char *, size_t);
   119  int gethostname(char *, size_t);
   120  char *ctermid(char *);
   121  
   122  int getopt(int, char * const [], const char *);
   123  extern char *optarg;
   124  extern int optind, opterr, optopt;
   125  
   126  long pathconf(const char *, int);
   127  long fpathconf(int, int);
   128  long sysconf(int);
   129  size_t confstr(int, char *, size_t);
   130  
   131  #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
   132  #define F_ULOCK 0
   133  #define F_LOCK  1
   134  #define F_TLOCK 2
   135  #define F_TEST  3
   136  int setreuid(uid_t, uid_t);
   137  int setregid(gid_t, gid_t);
   138  int lockf(int, int, off_t);
   139  long gethostid(void);
   140  int nice(int);
   141  void sync(void);
   142  pid_t setpgrp(void);
   143  char *crypt(const char *, const char *);
   144  void encrypt(char *, int);
   145  void swab(const void *__restrict, void *__restrict, ssize_t);
   146  #endif
   147  
   148  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) \
   149   || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
   150  int usleep(unsigned);
   151  unsigned ualarm(unsigned, unsigned);
   152  #endif
   153  
   154  #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
   155  #define L_SET 0
   156  #define L_INCR 1
   157  #define L_XTND 2
   158  int brk(void *);
   159  void *sbrk(intptr_t);
   160  pid_t vfork(void);
   161  int vhangup(void);
   162  int chroot(const char *);
   163  int getpagesize(void);
   164  int getdtablesize(void);
   165  int sethostname(const char *, size_t);
   166  int getdomainname(char *, size_t);
   167  int setdomainname(const char *, size_t);
   168  int setgroups(size_t, const gid_t *);
   169  char *getpass(const char *);
   170  int daemon(int, int);
   171  void setusershell(void);
   172  void endusershell(void);
   173  char *getusershell(void);
   174  int acct(const char *);
   175  long syscall(long, ...);
   176  int execvpe(const char *, char *const [], char *const []);
   177  int issetugid(void);
   178  int getentropy(void *, size_t);
   179  extern int optreset;
   180  #endif
   181  
   182  #ifdef _GNU_SOURCE
   183  extern char **environ;
   184  int setresuid(uid_t, uid_t, uid_t);
   185  int setresgid(gid_t, gid_t, gid_t);
   186  int getresuid(uid_t *, uid_t *, uid_t *);
   187  int getresgid(gid_t *, gid_t *, gid_t *);
   188  char *get_current_dir_name(void);
   189  int syncfs(int);
   190  int euidaccess(const char *, int);
   191  int eaccess(const char *, int);
   192  ssize_t copy_file_range(int, off_t *, int, off_t *, size_t, unsigned);
   193  #endif
   194  
   195  #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
   196  #define lseek64 lseek
   197  #define pread64 pread
   198  #define pwrite64 pwrite
   199  #define truncate64 truncate
   200  #define ftruncate64 ftruncate
   201  #define lockf64 lockf
   202  #define off64_t off_t
   203  #endif
   204  
   205  #define POSIX_CLOSE_RESTART     0
   206  
   207  #define _XOPEN_VERSION          700
   208  #define _XOPEN_UNIX             1
   209  #define _XOPEN_ENH_I18N         1
   210  
   211  #define _POSIX_VERSION          200809L
   212  #define _POSIX2_VERSION         _POSIX_VERSION
   213  
   214  #define _POSIX_ADVISORY_INFO    _POSIX_VERSION
   215  #define _POSIX_CHOWN_RESTRICTED 1
   216  #define _POSIX_IPV6             _POSIX_VERSION
   217  #define _POSIX_JOB_CONTROL      1
   218  #define _POSIX_MAPPED_FILES     _POSIX_VERSION
   219  #define _POSIX_MEMLOCK          _POSIX_VERSION
   220  #define _POSIX_MEMLOCK_RANGE    _POSIX_VERSION
   221  #define _POSIX_MEMORY_PROTECTION _POSIX_VERSION
   222  #define _POSIX_MESSAGE_PASSING  _POSIX_VERSION
   223  #define _POSIX_FSYNC            _POSIX_VERSION
   224  #define _POSIX_NO_TRUNC         1
   225  #define _POSIX_RAW_SOCKETS      _POSIX_VERSION
   226  #define _POSIX_REALTIME_SIGNALS _POSIX_VERSION
   227  #define _POSIX_REGEXP           1
   228  #define _POSIX_SAVED_IDS        1
   229  #define _POSIX_SHELL            1
   230  #define _POSIX_SPAWN            _POSIX_VERSION
   231  #define _POSIX_VDISABLE         0
   232  
   233  #define _POSIX_THREADS          _POSIX_VERSION
   234  #define _POSIX_THREAD_PROCESS_SHARED _POSIX_VERSION
   235  #define _POSIX_THREAD_SAFE_FUNCTIONS _POSIX_VERSION
   236  #define _POSIX_THREAD_ATTR_STACKADDR _POSIX_VERSION
   237  #define _POSIX_THREAD_ATTR_STACKSIZE _POSIX_VERSION
   238  #define _POSIX_THREAD_PRIORITY_SCHEDULING _POSIX_VERSION
   239  #define _POSIX_THREAD_CPUTIME   _POSIX_VERSION
   240  #define _POSIX_TIMERS           _POSIX_VERSION
   241  #define _POSIX_TIMEOUTS         _POSIX_VERSION
   242  #define _POSIX_MONOTONIC_CLOCK  _POSIX_VERSION
   243  #define _POSIX_CPUTIME          _POSIX_VERSION
   244  #define _POSIX_CLOCK_SELECTION  _POSIX_VERSION
   245  #define _POSIX_BARRIERS         _POSIX_VERSION
   246  #define _POSIX_SPIN_LOCKS       _POSIX_VERSION
   247  #define _POSIX_READER_WRITER_LOCKS _POSIX_VERSION
   248  #define _POSIX_ASYNCHRONOUS_IO  _POSIX_VERSION
   249  #define _POSIX_SEMAPHORES       _POSIX_VERSION
   250  #define _POSIX_SHARED_MEMORY_OBJECTS _POSIX_VERSION
   251  
   252  #define _POSIX2_C_BIND          _POSIX_VERSION
   253  
   254  #include <bits/posix.h>
   255  
   256  
   257  
   258  #define _PC_LINK_MAX	0
   259  #define _PC_MAX_CANON	1
   260  #define _PC_MAX_INPUT	2
   261  #define _PC_NAME_MAX	3
   262  #define _PC_PATH_MAX	4
   263  #define _PC_PIPE_BUF	5
   264  #define _PC_CHOWN_RESTRICTED	6
   265  #define _PC_NO_TRUNC	7
   266  #define _PC_VDISABLE	8
   267  #define _PC_SYNC_IO	9
   268  #define _PC_ASYNC_IO	10
   269  #define _PC_PRIO_IO	11
   270  #define _PC_SOCK_MAXBUF	12
   271  #define _PC_FILESIZEBITS	13
   272  #define _PC_REC_INCR_XFER_SIZE	14
   273  #define _PC_REC_MAX_XFER_SIZE	15
   274  #define _PC_REC_MIN_XFER_SIZE	16
   275  #define _PC_REC_XFER_ALIGN	17
   276  #define _PC_ALLOC_SIZE_MIN	18
   277  #define _PC_SYMLINK_MAX	19
   278  #define _PC_2_SYMLINKS	20
   279  
   280  #define _SC_ARG_MAX	0
   281  #define _SC_CHILD_MAX	1
   282  #define _SC_CLK_TCK	2
   283  #define _SC_NGROUPS_MAX	3
   284  #define _SC_OPEN_MAX	4
   285  #define _SC_STREAM_MAX	5
   286  #define _SC_TZNAME_MAX	6
   287  #define _SC_JOB_CONTROL	7
   288  #define _SC_SAVED_IDS	8
   289  #define _SC_REALTIME_SIGNALS	9
   290  #define _SC_PRIORITY_SCHEDULING	10
   291  #define _SC_TIMERS	11
   292  #define _SC_ASYNCHRONOUS_IO	12
   293  #define _SC_PRIORITIZED_IO	13
   294  #define _SC_SYNCHRONIZED_IO	14
   295  #define _SC_FSYNC	15
   296  #define _SC_MAPPED_FILES	16
   297  #define _SC_MEMLOCK	17
   298  #define _SC_MEMLOCK_RANGE	18
   299  #define _SC_MEMORY_PROTECTION	19
   300  #define _SC_MESSAGE_PASSING	20
   301  #define _SC_SEMAPHORES	21
   302  #define _SC_SHARED_MEMORY_OBJECTS	22
   303  #define _SC_AIO_LISTIO_MAX	23
   304  #define _SC_AIO_MAX	24
   305  #define _SC_AIO_PRIO_DELTA_MAX	25
   306  #define _SC_DELAYTIMER_MAX	26
   307  #define _SC_MQ_OPEN_MAX	27
   308  #define _SC_MQ_PRIO_MAX	28
   309  #define _SC_VERSION	29
   310  #define _SC_PAGE_SIZE	30
   311  #define _SC_PAGESIZE	30 /* !! */
   312  #define _SC_RTSIG_MAX	31
   313  #define _SC_SEM_NSEMS_MAX	32
   314  #define _SC_SEM_VALUE_MAX	33
   315  #define _SC_SIGQUEUE_MAX	34
   316  #define _SC_TIMER_MAX	35
   317  #define _SC_BC_BASE_MAX	36
   318  #define _SC_BC_DIM_MAX	37
   319  #define _SC_BC_SCALE_MAX	38
   320  #define _SC_BC_STRING_MAX	39
   321  #define _SC_COLL_WEIGHTS_MAX	40
   322  #define _SC_EXPR_NEST_MAX	42
   323  #define _SC_LINE_MAX	43
   324  #define _SC_RE_DUP_MAX	44
   325  #define _SC_2_VERSION	46
   326  #define _SC_2_C_BIND	47
   327  #define _SC_2_C_DEV	48
   328  #define _SC_2_FORT_DEV	49
   329  #define _SC_2_FORT_RUN	50
   330  #define _SC_2_SW_DEV	51
   331  #define _SC_2_LOCALEDEF	52
   332  #define _SC_UIO_MAXIOV	60 /* !! */
   333  #define _SC_IOV_MAX	60
   334  #define _SC_THREADS	67
   335  #define _SC_THREAD_SAFE_FUNCTIONS	68
   336  #define _SC_GETGR_R_SIZE_MAX	69
   337  #define _SC_GETPW_R_SIZE_MAX	70
   338  #define _SC_LOGIN_NAME_MAX	71
   339  #define _SC_TTY_NAME_MAX	72
   340  #define _SC_THREAD_DESTRUCTOR_ITERATIONS	73
   341  #define _SC_THREAD_KEYS_MAX	74
   342  #define _SC_THREAD_STACK_MIN	75
   343  #define _SC_THREAD_THREADS_MAX	76
   344  #define _SC_THREAD_ATTR_STACKADDR	77
   345  #define _SC_THREAD_ATTR_STACKSIZE	78
   346  #define _SC_THREAD_PRIORITY_SCHEDULING	79
   347  #define _SC_THREAD_PRIO_INHERIT	80
   348  #define _SC_THREAD_PRIO_PROTECT	81
   349  #define _SC_THREAD_PROCESS_SHARED	82
   350  #define _SC_NPROCESSORS_CONF	83
   351  #define _SC_NPROCESSORS_ONLN	84
   352  #define _SC_PHYS_PAGES	85
   353  #define _SC_AVPHYS_PAGES	86
   354  #define _SC_ATEXIT_MAX	87
   355  #define _SC_PASS_MAX	88
   356  #define _SC_XOPEN_VERSION	89
   357  #define _SC_XOPEN_XCU_VERSION	90
   358  #define _SC_XOPEN_UNIX	91
   359  #define _SC_XOPEN_CRYPT	92
   360  #define _SC_XOPEN_ENH_I18N	93
   361  #define _SC_XOPEN_SHM	94
   362  #define _SC_2_CHAR_TERM	95
   363  #define _SC_2_UPE	97
   364  #define _SC_XOPEN_XPG2	98
   365  #define _SC_XOPEN_XPG3	99
   366  #define _SC_XOPEN_XPG4	100
   367  #define _SC_NZERO	109
   368  #define _SC_XBS5_ILP32_OFF32	125
   369  #define _SC_XBS5_ILP32_OFFBIG	126
   370  #define _SC_XBS5_LP64_OFF64	127
   371  #define _SC_XBS5_LPBIG_OFFBIG	128
   372  #define _SC_XOPEN_LEGACY	129
   373  #define _SC_XOPEN_REALTIME	130
   374  #define _SC_XOPEN_REALTIME_THREADS	131
   375  #define _SC_ADVISORY_INFO	132
   376  #define _SC_BARRIERS	133
   377  #define _SC_CLOCK_SELECTION	137
   378  #define _SC_CPUTIME	138
   379  #define _SC_THREAD_CPUTIME	139
   380  #define _SC_MONOTONIC_CLOCK	149
   381  #define _SC_READER_WRITER_LOCKS	153
   382  #define _SC_SPIN_LOCKS	154
   383  #define _SC_REGEXP	155
   384  #define _SC_SHELL	157
   385  #define _SC_SPAWN	159
   386  #define _SC_SPORADIC_SERVER	160
   387  #define _SC_THREAD_SPORADIC_SERVER	161
   388  #define _SC_TIMEOUTS	164
   389  #define _SC_TYPED_MEMORY_OBJECTS	165
   390  #define _SC_2_PBS	168
   391  #define _SC_2_PBS_ACCOUNTING	169
   392  #define _SC_2_PBS_LOCATE	170
   393  #define _SC_2_PBS_MESSAGE	171
   394  #define _SC_2_PBS_TRACK	172
   395  #define _SC_SYMLOOP_MAX	173
   396  #define _SC_STREAMS	174
   397  #define _SC_2_PBS_CHECKPOINT	175
   398  #define _SC_V6_ILP32_OFF32	176
   399  #define _SC_V6_ILP32_OFFBIG	177
   400  #define _SC_V6_LP64_OFF64	178
   401  #define _SC_V6_LPBIG_OFFBIG	179
   402  #define _SC_HOST_NAME_MAX	180
   403  #define _SC_TRACE	181
   404  #define _SC_TRACE_EVENT_FILTER	182
   405  #define _SC_TRACE_INHERIT	183
   406  #define _SC_TRACE_LOG	184
   407  
   408  #define _SC_IPV6	235
   409  #define _SC_RAW_SOCKETS	236
   410  #define _SC_V7_ILP32_OFF32	237
   411  #define _SC_V7_ILP32_OFFBIG	238
   412  #define _SC_V7_LP64_OFF64	239
   413  #define _SC_V7_LPBIG_OFFBIG	240
   414  #define _SC_SS_REPL_MAX	241
   415  #define _SC_TRACE_EVENT_NAME_MAX	242
   416  #define _SC_TRACE_NAME_MAX	243
   417  #define _SC_TRACE_SYS_MAX	244
   418  #define _SC_TRACE_USER_EVENT_MAX	245
   419  #define _SC_XOPEN_STREAMS	246
   420  #define _SC_THREAD_ROBUST_PRIO_INHERIT	247
   421  #define _SC_THREAD_ROBUST_PRIO_PROTECT	248
   422  
   423  #define _CS_PATH	0
   424  #define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS	1
   425  #define _CS_GNU_LIBC_VERSION	2
   426  #define _CS_GNU_LIBPTHREAD_VERSION	3
   427  #define _CS_POSIX_V5_WIDTH_RESTRICTED_ENVS	4
   428  #define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS	5
   429  
   430  #define _CS_POSIX_V6_ILP32_OFF32_CFLAGS	1116
   431  #define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS	1117
   432  #define _CS_POSIX_V6_ILP32_OFF32_LIBS	1118
   433  #define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS	1119
   434  #define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS	1120
   435  #define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS	1121
   436  #define _CS_POSIX_V6_ILP32_OFFBIG_LIBS	1122
   437  #define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS	1123
   438  #define _CS_POSIX_V6_LP64_OFF64_CFLAGS	1124
   439  #define _CS_POSIX_V6_LP64_OFF64_LDFLAGS	1125
   440  #define _CS_POSIX_V6_LP64_OFF64_LIBS	1126
   441  #define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS	1127
   442  #define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS	1128
   443  #define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS	1129
   444  #define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS	1130
   445  #define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS	1131
   446  #define _CS_POSIX_V7_ILP32_OFF32_CFLAGS	1132
   447  #define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS	1133
   448  #define _CS_POSIX_V7_ILP32_OFF32_LIBS	1134
   449  #define _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS	1135
   450  #define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS	1136
   451  #define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS	1137
   452  #define _CS_POSIX_V7_ILP32_OFFBIG_LIBS	1138
   453  #define _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS	1139
   454  #define _CS_POSIX_V7_LP64_OFF64_CFLAGS	1140
   455  #define _CS_POSIX_V7_LP64_OFF64_LDFLAGS	1141
   456  #define _CS_POSIX_V7_LP64_OFF64_LIBS	1142
   457  #define _CS_POSIX_V7_LP64_OFF64_LINTFLAGS	1143
   458  #define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS	1144
   459  #define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS	1145
   460  #define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS	1146
   461  #define _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS	1147
   462  #define _CS_V6_ENV	1148
   463  #define _CS_V7_ENV	1149
   464  
   465  #ifdef __cplusplus
   466  }
   467  #endif
   468  
   469  #endif