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