home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Headers / bsd / libc.h < prev    next >
Text File  |  1992-07-02  |  11KB  |  333 lines

  1. #import <stdio.h>
  2.  
  3. #ifdef    __STRICT_BSD__
  4. #import <strings.h>
  5. #import    <varargs.h>
  6. #else
  7. #import <string.h>
  8. #import <stdlib.h>
  9. #import <time.h>
  10. #import    <stdarg.h>
  11. #endif
  12.  
  13. #import <sys/types.h>
  14. #import <sys/wait.h>
  15. #import <sys/time.h>
  16. #import <sys/times.h>
  17. #import <sys/resource.h>
  18. #import <sys/param.h>
  19. #import <signal.h>
  20. #import <sys/time.h>
  21. #import <mach/time_stamp.h>
  22. #import <sys/stat.h>
  23. #import <sys/file.h>
  24. #import <sys/socket.h>
  25. #import <sys/vfs.h>
  26. #import <sys/ioctl.h>
  27. #import <netinet/in.h>
  28. #import <arpa/inet.h>
  29. #import <mach/machine/vm_types.h>
  30. #import <mach/boolean.h>
  31. #import <mach/kern_return.h>
  32.  
  33. /*
  34.  * The above include files should be idempotent. We don't ifndef LIBC_H
  35.  * around them to make sure that they are indeed idempotent.
  36.  */
  37. #ifndef LIBC_H
  38. #define LIBC_H
  39.  
  40. extern char    **environ;
  41. /*
  42.  * UNIX system calls.
  43.  */
  44.  
  45. extern int    sethostid(long hostid), gethostid(void);
  46. extern int    sethostname(const char *, int), gethostname(char *, int);
  47. extern int    getpid(void);
  48. extern int    setdomainname(const char *, int), getdomainname(char *, int);
  49. extern int    fork(void);
  50. extern int    vfork(void);
  51. extern int    execve (char *name, char **argv, char **envp);
  52. extern int    wait(union wait *), wait3(union wait *, int, struct rusage *);
  53. extern int    wait4(int, union wait *, int, struct rusage *);
  54. extern uid_t    getuid(void), geteu7&Xoid);
  55. extern gid_t    getgid(void), getegid(void);
  56. extern int    setreuid(int, int), setregid();
  57. extern int    getgroups(int, int *),setgroups(int, int *);
  58. extern int    getpgrp(int), setpgrp(int, int);
  59. extern int    setprivexec(int);
  60.  
  61. extern int    getpagesize(void);
  62.  
  63. extern int    sigvec(int , struct sigvec *, struct sigvec *);
  64. extern int    sigblock(int), sigsetmask(int);
  65. extern int    sigpause(int), sigstack(struct sigstack *, struct sigstack *);
  66. extern int    kill(int, int), killpg(int, int);
  67.  
  68. extern int    gettimeofday(struct timeval *, struct timezone *);
  69. extern int    settimeofday(struct timeval *, struct timezone *);
  70. extern int    getitimer(int, struct itimerval *);
  71. extern int    setitimer(int, struct itimerval *, struct itimerval *);
  72. extern int     adjtime(struct timeval *, struct timeval *);
  73.  
  74. extern int    getdtablesize(void), dup(int), dup2(int, int), close(int);
  75. extern int    select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
  76. extern int    fcntl(int, int, int), flock(int, int);
  77.  
  78. extern int    getpriority(int, int), setpriority(int, int, int);
  79. extern int    getrusage(int, struct rusage *);
  80. extern int    getrlimit(int, struct rlimit *), setrlimit(int, struct rlimit *);
  81.  
  82. extern int    unmount(const char *), mount(int, const char *, int, caddr_t);
  83. extern int    sync(void), reboot(int);
  84.  
  85. extern int    read(int, void *, int), write(int, const void *, int);
  86. extern int    readv(int, struct iovec *, int), writev(int, struct iovec *, int);
  87. extern int    ioctl(int, long, ...);
  88.  
  89. extern int    chdir(const char *), chroot(const char *);
  90. extern int    mkdir(const char *, int), rmdir(const char *);
  91. extern int    getdirentries(int, char *, int, long *);
  92. extern int    creat(const char *, int), open(const char *, int, ...);
  93. extern int    mknod(const char *, int, int);
  94. extern int    unlink(const char *), stat(const char *, struct stat *);
  95. extern int    fstat(int, struct stat *), lstat(const char *, struct stat *);
  96. extern int    chown(const char *, int, int), fchown(int, int, int);
  97. extern int    chmod(const char *, int), fchmod(int, int);
  98. extern int    utimes(const char *, struct timeval [2]);
  99. extern int    link(const char *, const char *), symlink(const char *, const char *);
  100. extern int    readlink(const char *, char *, int);
  101. extern int    rename(const char *, const char *);
  102. extern off_t    lseek(int, off_t, int);
  103. extern int    truncate(const char *, off_t), ftruncate(int, off_t);
  104. extern int    access(const char *, int), fsync(7&Y;
  105. extern int    statfs(const char *, struct statfs *), fstatfs(int, struct statfs *);
  106.  
  107. extern int    socket(int, int, int), bind(int, struct sockaddr *, int);
  108. extern int    listen(int, int), accept(int, struct sockaddr *, int *);
  109. extern int    connect(int, struct sockaddr *, int);
  110. extern int    socketpair(int, int, int, int [2]);
  111. extern int    sendto(int, void *, int, int, struct sockaddr *, int);
  112. extern int    send(int, void *, int, int);
  113. extern int    recvfrom(int, void *, int, int, struct sockaddr *, int *);
  114. extern int    recv(int, void *, int, int);
  115. extern int    sendmsg(int, struct msghdr *, int);
  116. extern int    recvmsg(int, struct msghdr *, int);
  117. extern int    shutdown(int, int);
  118. extern int    setsockopt(int, int, int, void *, int);
  119. extern int    getsockopt(int, int, int, void *, int *);
  120. extern int    getsockname(int, struct sockaddr *, int *);
  121. extern int    getpeername(int, struct sockaddr *, int *);
  122. extern int    pipe(int [2]);
  123.  
  124. extern int    umask(int);
  125. extern void    _exit(int);
  126.  
  127. extern kern_return_t map_fd (int fd, vm_offset_t offset, 
  128.     vm_offset_t *addr, boolean_t find_space, vm_size_t numbytes);
  129. extern int    profil (char *, int, int, int);
  130.  
  131. /*
  132.  *    Other libc entry points.
  133.  */
  134.  
  135. extern void    syslog(int, const char *, ...);
  136. extern void    vsyslog(int, const char *, va_list);
  137.  
  138. /*
  139.  * Organize these respective to manpage in /usr/man/man3.
  140.  */
  141. extern unsigned long inet_addr(char *cp);
  142.  
  143. extern int ruserok (char *rhost, int superuser, char *ruser, char *luser);
  144.  
  145. extern void setbuf (FILE *stream, char *buf);
  146. extern int setbuffer (FILE *stream, char *buf, int size);
  147. extern int setlinebuf (FILE *stream);
  148.  
  149. /* abort(3)     */
  150. #ifdef    __GNUC__
  151. extern volatile void abort(void);
  152. #else
  153. extern void    abort(void);
  154. #endif    __GNUC__
  155. /* abs(3)    */
  156. extern int abs (int i);
  157. /* addr(3n)    */
  158. extern unsigned long inet_addr (char *cp);
  159. extern unsigned long inet_network (char *cp);
  160. extern char *inet_ntoa (struct in_addr in);
  161. extern struct in_addr inet_makeaddr (int net, int lna);
  162. extern int inet_lnaof (struct in_addr in);
  163. extern int inet_netof (struct in_addr in);
  164. /* alarm(3c)    */
  165. extern int alarm (unsigned int seconds);
  166. /* atof(3)    */
  167. /* double atof (char *nptr); */
  168. #ifdef    __STRICT_BSD__
  169. extern int atoi (char *nptr);
  170. extern long atol (char *nptr);
  171. #endif    __STRICT_BSD__
  172. /* atoh(3)    */
  173. extern unsigned int atoh (char *ap);
  174. extern unsigned int atoo (char *ap);
  175. int ffs (int i);
  176. /* byteorder (3n) */
  177.  
  178. #ifn7&`htonl
  179. extern unsigned long htonl (unsigned long hostlong);
  180. #endif
  181. #ifndef htons
  182. extern unsigned short htons (unsigned short hostshort);
  183. #endif
  184. #ifndef ntohl
  185. extern unsigned long ntohl (unsigned long netlong);
  186. #endif
  187. #ifndef ntohs
  188. extern unsigned short ntohs (unsigned short netshort);
  189. #endif
  190.  
  191. /* convert_ts_to_tv(3) */
  192. extern void convert_ts_to_tv (int ts_format, struct tsval *tsp, struct timeval *tvp);
  193. /* crypt(3)    */
  194. extern char *crypt (char *key, char *salt);
  195. extern void setkey (char *key);
  196. extern void encrypt (char *block, int edflag);
  197. /* ecvt(3)    */
  198. extern char *ecvt (double value, int ndigit, int *decpt, int *sign);
  199. extern char *fcvt (double value, int ndigit, int *decpt, int *sign);
  200. extern char *gcvt (double value, int ndigit, char *buf);
  201. /* execl(3)    */
  202. extern int execv(const char *, const char **);
  203. extern int execl(const char *, ...);
  204. extern int execvp(const char *, const char **);
  205. extern int execlp(const char *, ...);
  206. extern int execle(const char *, ...);
  207. /* exit(3)    */
  208. #ifdef    __STRICT_BSD__
  209. extern void    exit(int);
  210. /* getenv(3)    */
  211. extern char *getenv (char *name);
  212. /* system(3)    */
  213. extern int system (char *string);
  214. #endif    __STRICT_BSD__
  215. /* getlogin(3)    */
  216. extern char *getlogin(void);
  217. /* getmachheaders(3)    */
  218. extern struct mach_header **getmachheaders(void);
  219. /* getopt(3)    */
  220. extern int getopt (int argc, char **argv, char *optstring);
  221. extern char *optarg;
  222. extern int optind;
  223. /* getpass(3)    */
  224. extern char *getpass (char *prompt);
  225. /* getpw(3)    */
  226. extern char getpw(int uid, char *buf);
  227. /* getsecbyname(3)    */
  228. extern const struct section *getsectbyname(
  229.     const char *segname, 
  230.     const char *sectname);
  231. extern char *getsectdata(
  232.     const char *segname, 
  233.     const char *sectname, 
  234.     int *size);
  235. extern const struct section *getsectbynamefromheader(
  236.     const struct mach_header *mhp,
  237.     const char *segname,
  238.     const char *sectname);
  239. extern char *getsectdatafromheader(
  240.     const struct mach_header *mhp,
  241.     const char *segname,
  242.     const char *sectname,
  243.     int *size);
  244. extern char *getsectdatafromlib(
  245.     const char *libname, 
  246.     const char *segname, 
  247.     const char *sectname,
  248.     int *size);
  249. /* getsegbyname(3)    */
  250. extern const struct segment_command *getsegbyname(const char *segname);
  251. /* getusershell(3)    */
  252. extern char *getusershell(void);
  253. extern void setusershell(void);
  254. extern void endusershell(void);
  255. /* getwd(3)    */
  256. extern char *getwd (char *pathname);
  257. /* initgroups(3)    */
  258. extern int initgroups (char *name, int basegid);
  259. /* insque (3)    */
  260. struct qelem {
  261.     struct qelem *q_forw;
  262.     struct qelem *q_back;
  263.     char *q_data;
  264. };
  265. extern void insque (struct qelem *elem, struct qelem *pred);
  266. extern v7&Uremque (struct qelem *elem);
  267. /* mktemp(3)    */
  268. extern int mkstemp (char *template);
  269. extern char *mktemp (char *template);
  270. /* monitor(3)    */
  271. extern void monitor (char *lowpc, char *highpc, char *buf, int bufsiz, int cntsiz);
  272. extern void monstartup (char *lowpc, char *highpc);
  273. extern void moncontrol (int mode);
  274. /* nice(3)    */
  275. extern int nice(int incr);
  276. /* pause(3)    */
  277. extern void pause(void);
  278. /* perror(3)    */
  279. extern void perror (const char *s);
  280. /* psignal(3)    */
  281. extern void psignal (unsigned int sig, char *string);
  282. /* */
  283. extern int putpwpasswd (char *login, char *cleartext, char *encrypted);
  284. /* rand(3c)    */
  285. extern int rand(void);
  286. /* random(3)    */
  287. extern long random(void);
  288. extern void srandom (int seed);
  289. extern char *initstate (unsigned int seed, char *state, int n);
  290. extern char *setstate (char *state);
  291. /* rcmd(3)    */
  292. extern int rcmd (char **ahost, int inport, char *locuser, char *remuser,
  293.       char *cmd, int *fd2p);
  294. extern int rresvport (int *port);
  295. extern int ruserok (char *rhost, int superuser, char *ruser, char *luser);
  296. /* rexec(3)    */
  297. extern int rexec (char **ahort, int inport, char *user, char *passwd, 
  298.        char *cmd, int *fd2p);     
  299. /* setuid(3)    */
  300. extern int setuid (uid_t uid);
  301. extern int seteuid (uid_t euid);
  302. extern int setruid (uid_t ruid);
  303. extern int setgid (gid_t gid);
  304. extern int setegid (gid_t egid);
  305. extern int setrgid (gid_t rgid);
  306. /* siginterrupt(3) */
  307. extern int siginterrupt (int sig, int flag);
  308. /* sleep(3)    */
  309. extern int    sleep(unsigned int seconds);
  310. extern int    usleep(unsigned int useconds);
  311. /* stty(3c)    */
  312. extern int stty (int fd, struct sgttyb *buf);
  313. extern int gtty (int fd, struct sgttyb *buf);
  314. /* swab(3)    */
  315. extern void swab (char *from, char *to, int nbytes);
  316. /* time(3c)    */
  317. extern long time (long *tloc);
  318. /* times(3c)    */
  319. extern int times (struct tms *buffer);
  320. /* ttyname(3)    */
  321. extern int ttyslot (void);
  322. extern int isatty (int filedes);
  323. extern char *ttyname (int filedes);
  324. /* ualarm(3)    */
  325. extern unsigned ualarm (unsigned value, unsigned interval);
  326. /* utime(3c)    */
  327. extern int utime (char *file, time_t timep[2]);
  328. /* valloc(3c)    */
  329. /* vlimit(3c)    */
  330. extern int vlimit(int resource, int value);
  331.  
  332. #endif
  333.