home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Headers / bsd / libc.h < prev    next >
Text File  |  1996-12-17  |  12KB  |  429 lines

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