13e12c5d1SDavid du Colombier #ifndef __UNISTD_H 23e12c5d1SDavid du Colombier #define __UNISTD_H 33e12c5d1SDavid du Colombier #ifndef _POSIX_SOURCE 43e12c5d1SDavid du Colombier This header file is not defined in pure ANSI 53e12c5d1SDavid du Colombier #endif 63e12c5d1SDavid du Colombier #pragma lib "/$M/lib/ape/libap.a" 73e12c5d1SDavid du Colombier 87dd7cddfSDavid du Colombier #define _POSIX_VERSION 199309L 97dd7cddfSDavid du Colombier #define _POSIX_ASYNC_IO -1 107dd7cddfSDavid du Colombier #define _POSIX_CHOWN_RESTRICTED 1 117dd7cddfSDavid du Colombier #define _POSIX_NO_TRUNC 1 127dd7cddfSDavid du Colombier #define _POSIX_PRIO_IO -1 137dd7cddfSDavid du Colombier #define _POSIX_SYNC_IO -1 147dd7cddfSDavid du Colombier #define _POSIX_VDISABLE -1 153e12c5d1SDavid du Colombier 163e12c5d1SDavid du Colombier #ifndef _SIZE_T 173e12c5d1SDavid du Colombier #define _SIZE_T 183e12c5d1SDavid du Colombier typedef unsigned long size_t; 193e12c5d1SDavid du Colombier #endif 203e12c5d1SDavid du Colombier #ifndef _SSIZE_T 213e12c5d1SDavid du Colombier #define _SSIZE_T 223e12c5d1SDavid du Colombier typedef long ssize_t; 233e12c5d1SDavid du Colombier #endif 243e12c5d1SDavid du Colombier #ifndef NULL 25f19e7b74SDavid du Colombier #ifndef NULL 26f19e7b74SDavid du Colombier #ifdef __cplusplus 273e12c5d1SDavid du Colombier #define NULL 0 28f19e7b74SDavid du Colombier #else 29f19e7b74SDavid du Colombier #define NULL ((void*)0) 30f19e7b74SDavid du Colombier #endif 31f19e7b74SDavid du Colombier #endif 323e12c5d1SDavid du Colombier #endif 333e12c5d1SDavid du Colombier 343e12c5d1SDavid du Colombier /* access */ 353e12c5d1SDavid du Colombier #define R_OK 4 363e12c5d1SDavid du Colombier #define W_OK 2 373e12c5d1SDavid du Colombier #define X_OK 1 383e12c5d1SDavid du Colombier #define F_OK 0 /* test for existence */ 393e12c5d1SDavid du Colombier 403e12c5d1SDavid du Colombier /* lockf */ 413e12c5d1SDavid du Colombier #define F_ULOCK 0 /* unlock a previously locked region */ 423e12c5d1SDavid du Colombier #define F_LOCK 1 /* lock a region for exclusive use */ 433e12c5d1SDavid du Colombier #define F_TLOCK 2 /* test and lock a region for exclusive use */ 443e12c5d1SDavid du Colombier #define F_TEST 3 /* test a region for a previous lock */ 453e12c5d1SDavid du Colombier 463e12c5d1SDavid du Colombier /* lseek */ 477dd7cddfSDavid du Colombier #ifndef SEEK_SET /* also defined in stdio.h */ 483e12c5d1SDavid du Colombier #define SEEK_SET 0 493e12c5d1SDavid du Colombier #define SEEK_CUR 1 503e12c5d1SDavid du Colombier #define SEEK_END 2 517dd7cddfSDavid du Colombier #endif 523e12c5d1SDavid du Colombier 533e12c5d1SDavid du Colombier /* sysconf argument */ 543e12c5d1SDavid du Colombier #define _SC_ARG_MAX 1 /* max chars in args to exec */ 553e12c5d1SDavid du Colombier #define _SC_CHILD_MAX 2 /* max child process per process */ 563e12c5d1SDavid du Colombier #define _SC_CLK_TCK 3 /* number of clock() units per second */ 573e12c5d1SDavid du Colombier #define _SC_NGROUPS_MAX 4 /* max supplementary groups per process */ 583e12c5d1SDavid du Colombier #define _SC_OPEN_MAX 5 593e12c5d1SDavid du Colombier #define _SC_STREAM_MAX 6 603e12c5d1SDavid du Colombier #define _SC_TZNAME_MAX 7 613e12c5d1SDavid du Colombier #define _SC_JOB_CONTROL 8 /* posix job control */ 623e12c5d1SDavid du Colombier #define _SC_SAVED_IDS 9 /* saved suid/sgid per process */ 633e12c5d1SDavid du Colombier #define _SC_VERSION 10 /* this version */ 64*387c4c53SDavid du Colombier #define _SC_LOGIN_NAME_MAX 11 /* max length of a login name */ 653e12c5d1SDavid du Colombier 663e12c5d1SDavid du Colombier /* pathconf argument */ 673e12c5d1SDavid du Colombier #define _PC_LINK_MAX 1 683e12c5d1SDavid du Colombier #define _PC_MAX_CANON 2 693e12c5d1SDavid du Colombier #define _PC_MAX_INPUT 3 703e12c5d1SDavid du Colombier #define _PC_NAME_MAX 4 713e12c5d1SDavid du Colombier #define _PC_PATH_MAX 5 723e12c5d1SDavid du Colombier #define _PC_PIPE_BUF 6 733e12c5d1SDavid du Colombier #define _PC_CHOWN_RESTRICTED 7 743e12c5d1SDavid du Colombier #define _PC_NO_TRUNC 8 753e12c5d1SDavid du Colombier #define _PC_VDISABLE 9 763e12c5d1SDavid du Colombier 773e12c5d1SDavid du Colombier /* standard filenos */ 783e12c5d1SDavid du Colombier #define STDIN_FILENO 0 793e12c5d1SDavid du Colombier #define STDOUT_FILENO 1 803e12c5d1SDavid du Colombier #define STDERR_FILENO 2 813e12c5d1SDavid du Colombier 823e12c5d1SDavid du Colombier #ifdef __cplusplus 833e12c5d1SDavid du Colombier extern "C" { 843e12c5d1SDavid du Colombier #endif 853e12c5d1SDavid du Colombier 863e12c5d1SDavid du Colombier /* process primitives */ 873e12c5d1SDavid du Colombier extern int execl(const char *, const char *, ...); 883e12c5d1SDavid du Colombier extern int execv(const char *, const char **); 893e12c5d1SDavid du Colombier extern int execle(const char *, const char *, const char *, ...); 903e12c5d1SDavid du Colombier extern int execve(const char *, const char **, const char **); 913e12c5d1SDavid du Colombier extern int execlp(const char *, const char *, ...); 923e12c5d1SDavid du Colombier extern int execvp(const char *, const char **); 933e12c5d1SDavid du Colombier extern void _exit(int); 943e12c5d1SDavid du Colombier extern unsigned int alarm(unsigned int); 953e12c5d1SDavid du Colombier extern int pause(void); 963e12c5d1SDavid du Colombier extern unsigned int sleep(unsigned int); 973e12c5d1SDavid du Colombier #ifdef __TYPES_H 983e12c5d1SDavid du Colombier extern pid_t fork(void); 993e12c5d1SDavid du Colombier #endif 1003e12c5d1SDavid du Colombier 1013e12c5d1SDavid du Colombier /* process environment */ 1023e12c5d1SDavid du Colombier extern char *getlogin(void); 1033e12c5d1SDavid du Colombier extern char *cuserid(char *); 1043e12c5d1SDavid du Colombier extern char *ttyname(int); 1053e12c5d1SDavid du Colombier extern int isatty(int); 1063e12c5d1SDavid du Colombier extern long sysconf(int); 1073e12c5d1SDavid du Colombier #ifdef __TYPES_H 1083e12c5d1SDavid du Colombier extern pid_t getpid(void); 1093e12c5d1SDavid du Colombier extern pid_t getppid(void); 1103e12c5d1SDavid du Colombier extern uid_t getuid(void); 1113e12c5d1SDavid du Colombier extern uid_t geteuid(void); 1123e12c5d1SDavid du Colombier extern gid_t getgid(void); 1133e12c5d1SDavid du Colombier extern gid_t getegid(void); 1143e12c5d1SDavid du Colombier extern int setuid(uid_t); 1153e12c5d1SDavid du Colombier extern int setgid(gid_t); 1163e12c5d1SDavid du Colombier extern int getgroups(int, gid_t *); 1173e12c5d1SDavid du Colombier extern pid_t getpgrp(void); 1183e12c5d1SDavid du Colombier extern int setpgid(pid_t, pid_t); 1193e12c5d1SDavid du Colombier extern pid_t setsid(void); 1203e12c5d1SDavid du Colombier #endif 1213e12c5d1SDavid du Colombier 1223e12c5d1SDavid du Colombier /* files and directories */ 1233e12c5d1SDavid du Colombier extern int chdir(const char *); 1243e12c5d1SDavid du Colombier extern int link(const char *, const char *); 1253e12c5d1SDavid du Colombier extern char *getcwd(char *, size_t); 1263e12c5d1SDavid du Colombier extern int unlink(const char *); 1273e12c5d1SDavid du Colombier extern int rmdir(const char *); 1283e12c5d1SDavid du Colombier extern int rename(const char *, const char *); 1293e12c5d1SDavid du Colombier extern int access(const char *, int); 1303e12c5d1SDavid du Colombier extern long pathconf(const char *, int); 1313e12c5d1SDavid du Colombier extern long fpathconf(int, int); 1323e12c5d1SDavid du Colombier #ifdef __TYPES_H 1333e12c5d1SDavid du Colombier extern int chown(const char *, uid_t, gid_t); 1343e12c5d1SDavid du Colombier #endif 1353e12c5d1SDavid du Colombier 1363e12c5d1SDavid du Colombier /* input and output primitives */ 1373e12c5d1SDavid du Colombier extern int pipe(int *); 1383e12c5d1SDavid du Colombier extern int dup(int); 1393e12c5d1SDavid du Colombier extern int dup2(int, int); 1403e12c5d1SDavid du Colombier extern int close(int); 1413e12c5d1SDavid du Colombier extern ssize_t read(int, void *, size_t); 1427dd7cddfSDavid du Colombier extern ssize_t write(int, const void *, size_t); 1433e12c5d1SDavid du Colombier #ifdef __TYPES_H 144592359c9SDavid du Colombier extern int ftruncate(int, off_t); 1453e12c5d1SDavid du Colombier extern off_t lseek(int, off_t, int); 1463e12c5d1SDavid du Colombier #endif 1473e12c5d1SDavid du Colombier 1483e12c5d1SDavid du Colombier /* device- and class-specific functions */ 1493e12c5d1SDavid du Colombier #ifdef __TYPES_H 1503e12c5d1SDavid du Colombier extern pid_t tcgetpgrp(int); 1513e12c5d1SDavid du Colombier extern int tcsetpgrp(int, pid_t); 1523e12c5d1SDavid du Colombier #endif 1533e12c5d1SDavid du Colombier 1542d069feaSDavid du Colombier #ifdef _REENTRANT_SOURCE 1552d069feaSDavid du Colombier extern char *getlogin_r(char *, int); 1562d069feaSDavid du Colombier #endif 1572d069feaSDavid du Colombier 158219b2ee8SDavid du Colombier /* berkeley specific functions */ 159219b2ee8SDavid du Colombier #ifdef _BSD_EXTENSION 160219b2ee8SDavid du Colombier #include <bsd.h> 161219b2ee8SDavid du Colombier #endif 162219b2ee8SDavid du Colombier 1633e12c5d1SDavid du Colombier #ifdef __cplusplus 1643e12c5d1SDavid du Colombier } 1653e12c5d1SDavid du Colombier #endif 1663e12c5d1SDavid du Colombier 1673e12c5d1SDavid du Colombier 1683e12c5d1SDavid du Colombier #endif 169