home *** CD-ROM | disk | FTP | other *** search
/ Education Sampler 1992 [NeXTSTEP] / Education_1992_Sampler.iso / NeXT / GnuSource / cc-61.0.1 / cc / SYSCALLS.c < prev    next >
C/C++ Source or Header  |  1991-06-03  |  22KB  |  478 lines

  1. /* 
  2. Copyright (C) 1988 Free Software Foundation
  3.     Modified for protoize by Ron Guilmette (rfg@ics.uci.edu)
  4.     Based on the std.c file originally by Doug Lea (dl@rocky.oswego.edu)
  5.  
  6. This file is part of GNU CC.
  7.  
  8. GNU CC is free software; you can redistribute it and/or modify
  9. it under the terms of the GNU General Public License as published by
  10. the Free Software Foundation; either version 2, or (at your option)
  11. any later version.
  12.  
  13. GNU CC is distributed in the hope that it will be useful,
  14. but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16. GNU General Public License for more details.
  17.  
  18. You should have received a copy of the GNU General Public License
  19. along with GNU CC; see the file COPYING.  If not, write to
  20. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  21.  
  22. /*
  23.     ***   IMPORTANT NOTE:
  24.  
  25.     At the bottom of this file is a set of function declarations which
  26.     must someday get "prototyped".  Right now, I don't have time to add
  27.     in all of the prototypes for these.
  28.  
  29.     If you are reading this file, then it means that you have a lot of
  30.     spare time on your hands.  Why don't you use some of that time to
  31.     help make the world safe for prototypes, and add some prototypes
  32.     for the functions at the end of this file.  When you are done (or
  33.     when you get bored and want to give up) please send me any new
  34.     prototypes that you have added to me (rfg@ics.uci.edu) so that I
  35.     can incorporate them into my next release of protoize.
  36.  
  37.     If you would like to get this file to incorporate *every* single
  38.     system call for your particular flavor of *NIX, please send me mail.
  39.     I have some tools that can help you to extract a complete set of
  40.     declarations from your system's own include files.
  41. */
  42.  
  43.  
  44. /* It doesn't really matter here what the following things are defined to
  45.    be.  For most of them, it doesn't even matter if they are fully defined
  46.    at all because the prototypes just declare parameters which are pointers
  47.    to these types (in most cases).  All that matters here is that these names
  48.    get defined as names of structs.  */
  49.  
  50. struct direct;
  51. struct tm;
  52. struct stat;
  53. struct rlimit;
  54. struct rusage;
  55. struct sockaddr;
  56. struct sockaddr_in;
  57. struct timeval {};
  58. struct exportent;
  59. struct fstab;
  60. struct hostent;
  61. struct in_addr {};
  62. struct ldfile;
  63. struct mallinfo {};
  64. struct mint;
  65. struct nmtent;
  66. struct netent;
  67. struct pmaplist;
  68. struct protoent;
  69. struct rpcent;
  70. struct servent;
  71. struct authdes_cred;
  72. struct rpc_err;
  73.  
  74. union wait;
  75.  
  76. /* It doesn't really matter here what the following things are defined to
  77.    be.  All that matters here is that these names get defined as names of
  78.    enums.  */
  79.  
  80. enum auth_stat { ____Anonymous_0 };
  81. enum clnt_stat { ____Anonymous_1 };
  82.  
  83. /* It doesn't really matter here what the following things are typedef'ed
  84.    to, so long as they become defined typedef names.  Note however that due
  85.    to a bug somewhere in the compiler of in aux_info_gen, none of these
  86.    types may be declared as array types or else their typedef'ed names will
  87.    get lost and will not be written to the SYSCALLS.c.X file.  */
  88.  
  89. typedef int *jmp_buf;
  90. typedef int *sigjmp_buf;
  91. typedef int div_t;
  92. typedef int ldiv_t;
  93. typedef int FILE;
  94. typedef int DIR;
  95. typedef int xdrproc_t;
  96. typedef int CALL;
  97. typedef int CLIENT;
  98. typedef int AUTH;
  99. typedef int SCREEN;
  100. typedef int SVCXPRT;
  101. typedef int TERMINAL;
  102. typedef int WINDOW;
  103. typedef int bool;
  104. typedef int bool_t;
  105. typedef int DBM;
  106. typedef int byte8e_ptr_type;
  107. typedef int datum;
  108. typedef int chtype;
  109. typedef int fp_rnd;
  110. typedef int ps_data_device_ptr_type;
  111. typedef int ps_data_user_ptr_type;
  112. typedef int des_block;
  113. typedef int resultproc_t;
  114.  
  115. #ifdef USG
  116. #include <sys/types.h>
  117. #ifndef DGUX
  118. typedef unsigned int u_int;
  119. #endif
  120. #define SIGHAN_T void
  121. #define WAIT_ARG_TYPE int
  122.  
  123. #else
  124.  
  125. #define mode_t int
  126. #define uid_t int
  127. #define gid_t int
  128. #define time_t long
  129. #define pid_t int
  130. #define SIGHAN_T int
  131. #define WAIT_ARG_TYPE union wait
  132.  
  133. /* size_t should be a typedef, even for BSD, because ANSI requires that there
  134.    be such a typedef available in <stddef.h>. The GNU C compiler insists that
  135.    this type be defined to `unsigned long' rather than `unsigned int'.  If
  136.    this conflicts with the type of size_t given in your <sys/types.h> file,
  137.    then you have two choices: (1) change your <sys/types.h> file, or (2)
  138.    don't use GCC.  */
  139.  
  140. typedef unsigned long size_t;
  141.  
  142. typedef unsigned short u_short;
  143. typedef unsigned int u_int;
  144. typedef unsigned long u_long;
  145.  
  146. #endif
  147.  
  148. extern void               __eprintf (const char *);
  149. extern void               _exit (int);
  150. extern int                _filbuf (FILE *);
  151. extern int                _flsbuf (unsigned int, FILE *);
  152. extern int                _longjmp (jmp_buf, int);
  153. extern int                _setjmp (jmp_buf);
  154. extern void               abort (void);
  155. extern int                abs (int);
  156. extern int                access (const char *, int);
  157. extern int                acct (const char *);
  158. extern double             acos (double);
  159. extern int                addexportent (FILE *, char *, char *);
  160. extern unsigned           alarm (unsigned);
  161. extern void *             alloca (int);
  162. extern int                and (void);
  163. extern int                ascftime (char *, char *, struct tm *);
  164. extern char *             asctime (struct tm *);
  165. extern double             asin (double);
  166. extern double             atan2 (double, double);
  167. extern double             atan (double);
  168. extern int                atexit (void (*) (void));
  169. extern double             atof (const char *);
  170. extern int                atoi (const char *);
  171. extern long               atol (const char *);
  172. extern void               auth_destroy (AUTH *);
  173. extern AUTH *             authdes_create (char *, unsigned, struct sockaddr *, des_block *);
  174. extern void               authdes_getcred (struct authdes_cred *, short *, short *, short *, int *);
  175. extern AUTH *             authnone_create (void);
  176. extern AUTH *             authunix_create (char *, int, int, int, int *);
  177. extern AUTH *             authunix_create_default (void);
  178. extern int                bcmp (const void *, const void *, int);
  179. extern void               bcopy (const void *, void *, int);
  180. extern void (*            berk_signal (int, void (*) (int, ...))) (int, ...);
  181. extern void *             brk (void *);
  182. extern char *             bsearch (char *, char *, unsigned, size_t, int (*) (const void *, const void *));
  183. extern void               bzero (void *, size_t);
  184. extern void *             calloc (unsigned, size_t);
  185. extern void               callrpc (char *, u_long, u_long, u_long, xdrproc_t, char *, xdrproc_t, char *);
  186. extern double             ceil (double);
  187. extern void               cfree (void *);
  188. extern int                cftime (char *, const char *, time_t *);
  189. extern int                chdir (const char *);
  190. extern int                chmod (const char *, mode_t);
  191. extern int                chown (const char *, uid_t, gid_t);
  192. extern void               clearerr (FILE *);
  193. extern enum clnt_stat     clnt_broadcast (u_long, u_long, u_long, xdrproc_t, char *, xdrproc_t, char *, resultproc_t);
  194. extern enum clnt_stat     clnt_call (CLIENT *, u_long, xdrproc_t, char *, xdrproc_t, char *, struct timeval);
  195. extern bool_t             clnt_control (CLIENT *, int, char *);
  196. extern CLIENT *           clnt_create (char *, u_long, u_long, char *);
  197. extern void               clnt_destroy (CLIENT *);
  198. extern int                clnt_freeres (CLIENT *, xdrproc_t, char *);
  199. extern void               clnt_geterr (CLIENT *, struct rpc_err *);
  200. extern void               clnt_pcreateerror (char *);
  201. extern void               clnt_perrno (enum clnt_stat);
  202. extern void               clnt_perror (CLIENT *, char *);
  203. extern char *             clnt_spcreateerror (char *);
  204. extern char *             clnt_sperrno (enum clnt_stat);
  205. extern char *             clnt_sperror (CLIENT *, char *);
  206. extern CLIENT *           clntraw_create (u_long, u_long);
  207. extern CLIENT *           clnttcp_create (struct sockaddr_in *, u_long, u_long, int *, u_int, u_int *);
  208. extern CLIENT *           clntudp_create (struct sockaddr_in *, u_long, u_long, struct timeval, int *);
  209. extern long               clock (void);
  210. extern int                close (int);
  211. extern void               closedir (DIR *);
  212. extern double             cos (double);
  213. extern double             cosh (double);
  214. extern int                creat (const char *, mode_t);
  215. extern char *             crypt (const char *, const char *);
  216. extern char *             ctermid (char *);
  217. extern char *             ctime (time_t *);
  218. extern char *             cuserid (char *);
  219. extern int                dial (CALL);
  220. extern double             difftime (time_t, time_t);
  221. extern div_t              div (int, int);
  222. extern double             drand48 (void);
  223. extern double             drem (double, double);
  224. extern int                dup2 (int, int);
  225. extern int                dup (int);
  226. extern int                dysize (int);
  227. extern char *             ecvt (double, int, int *, int *);
  228. extern char *             encrypt (char *, int);
  229. extern double             erand (short *);
  230. extern double             erf (double);
  231. extern double             erfc (double);
  232. extern int                execl (const char *, const char *, ...);
  233. extern int                execle (const char *, const char *, ...);
  234. extern int                execlp (const char *, const char *, ...);
  235. extern int                exect (const char *,  const char **,  char **);
  236. extern int                execv (const char *,  const char **);
  237. extern int                execve (const char *, const char **, char **);
  238. extern int                execvp (const char *,  const char **);
  239. extern void               exit (int);
  240. extern double             exp (double);
  241. extern double             fabs (double);
  242. extern int                fchmod (int, mode_t);
  243. extern int                fchown (int, uid_t, gid_t);
  244. extern int                fclose (FILE *);
  245. extern int                fcntl (int, int, ...);
  246. extern char *             fcvt (double, int, int *, int *);
  247. extern FILE *             fdopen (int, const char *);
  248. extern int                feof (FILE *);
  249. extern int                ferror (FILE *);
  250. extern int                fflush (FILE *);
  251. extern int                ffs (int);
  252. extern int                fgetc (FILE *);
  253. extern char *             fgets (char *, int, FILE *);
  254. extern int                flock (int, int);
  255. extern double             floor (double);
  256. extern double             fmod (double);
  257. extern FILE *             fopen (const char *, const char *);
  258. extern pid_t              fork (void);
  259. extern int                fprintf (FILE *, const char *, ...);
  260. extern int                fputc (int, FILE *);
  261. extern int                fputs (const char *, FILE *);
  262. extern int                fread (void *, size_t, int, FILE *);
  263. extern void               free (void *);
  264. extern FILE *             freopen (const char *, const char *, FILE *);
  265. extern double             frexp (double, int);
  266. extern int                fscanf (FILE *, const char *, ...);
  267. extern int                fseek (FILE *, long, int);
  268. extern int                fstat (int, struct stat *);
  269. extern int                fsync (int);
  270. extern long               ftell (FILE *);
  271. extern long               ftok (const char *, int);
  272. extern int                ftruncate (int, unsigned long);
  273. extern int                fwrite (void *, size_t, int, FILE *);
  274. extern double             gamma (double);
  275. extern char *             gcvt (double, int, char *);
  276. extern char *             getcwd (char *, int);
  277. extern int                getdomainname (char *, int);
  278. extern int                getdtablesize (void);
  279. extern gid_t              getegid (void);
  280. extern char *             getenv (const char *);
  281. extern uid_t              geteuid (void);
  282. extern gid_t              getgid (void);
  283. extern int                getgroups (int, int *);
  284. extern long               gethostid (void);
  285. extern int                gethostname (char *, int);
  286. extern char *             getlogin (void);
  287. extern int                getopt (int, char **, char *);
  288. extern int                getpagesize (void);
  289. extern char *             getpass (const char *);
  290. extern pid_t              getpgrp2 (pid_t);
  291. extern pid_t              getpgrp (void);
  292. extern pid_t              getpid (void);
  293. extern pid_t              getppid (void);
  294. extern int                getpriority (int, int);
  295. extern int                getpw (int, char *);
  296. extern void               getrlimit (int, struct rlimit *);
  297. extern void               getrusage (int, struct rusage *);
  298. extern char *             gets (char *);
  299. extern uid_t              getuid (void);
  300. extern char *             getwd (char *);
  301. extern struct tm *        gmtime (time_t *);
  302. extern int                host2netname (char *, char *, char *);
  303. extern double             hypot (double, double);
  304. extern char *             index (const char *, int);
  305. extern char *             initstate (unsigned, char *, int);
  306. extern int                ioctl (int, int, char *);
  307. extern int                isatty (int);
  308. extern int                isinf (double);
  309. extern double             j0 (double);
  310. extern double             j1 (double);
  311. extern double             jn (int, double);
  312. extern long               jrand48 (short *);
  313. extern int                kill (pid_t, int);
  314. extern int                killpg (int, int);
  315. extern long               labs (long);
  316. extern void               lcong48 (short *);
  317. extern double             ldexp (double, int);
  318. extern ldiv_t             ldiv (int, int);
  319. extern int                link (const char *, const char *);
  320. extern struct tm *        localtime (time_t *);
  321. extern int                lock (int, int, long);
  322. extern double             log10 (double);
  323. extern double             log (double);
  324. extern void               longjmp (jmp_buf, int);
  325. extern long               lrand48 (void);
  326. extern long               lseek (int, long, int);
  327. extern struct mallinfo    mallinfo (void);
  328. extern void *             malloc (size_t);
  329. extern void *             memalign (unsigned, unsigned);
  330. extern void *             memccpy (void *, const void *, int, size_t);
  331. extern void *             memchr (const void *, int, size_t);
  332. extern int                memcmp (const void *, const void *, size_t);
  333. extern void *             memcpy (void *, const void *, size_t);
  334. extern void *             memset (void *, int, size_t);
  335. extern int                mkdir (const char *, mode_t);
  336. extern int                mknod (const char *, mode_t, int);
  337. extern int                mkstemp (char *);
  338. extern char *             mktemp (char *);
  339. extern time_t             mktime (struct tm *);
  340. extern double             modf (double, int);
  341. extern long               mrand48 (void);
  342. extern int                nice (int);
  343. extern long               nrand48 (short *);
  344. extern int                open (const char *, int, ...);
  345. extern DIR *              opendir (char *);
  346. extern void               pause (void);
  347. extern int                pclose (FILE *);
  348. extern void               perror (const char *);
  349. extern int                pipe (int *);
  350. extern FILE *             popen (char *, char *);
  351. extern double             pow (double, double);
  352. extern int                printf (const char *, ...);
  353. extern void               profil (char *, int, int, int);
  354. extern int                psignal (unsigned, char *);
  355. extern int                ptrace (int, int, int, int);
  356. extern int                putenv (const char *);
  357. extern int                puts (const char *);
  358. extern int                qsort (void *, int, unsigned, int (*) (const void *, const void *));
  359. extern int                raise (int);
  360. extern int                rand (void);
  361. extern long               random (void);
  362. extern int                read (int, void *, size_t);
  363. extern struct direct *    readdir (DIR *);
  364. extern int                readlink (const char *, char *, int);
  365. extern void *             realloc (void *, size_t);
  366. extern int                remove (const char *);
  367. extern int                rename (const char *, const char *);
  368. extern void               rewind (FILE *); 
  369. extern char *             rindex (const char *, int);
  370. extern int                rmdir (const char *);               
  371. extern void *             sbrk (int);              
  372. extern int                scanf (const char *, ...);
  373. extern short *            seed48 (short *);
  374. extern void               seekdir (DIR *, long);
  375. extern int                send (int, char *, int, int);
  376. extern FILE *             setexportent (void);
  377. extern int                setgid (gid_t);
  378. extern int                sethostname (char *, int);
  379. extern int                setjmp (jmp_buf);
  380. extern int                setkey (const char *);
  381. extern FILE *             setmntent (char *, char *);
  382. extern int                setpgid (pid_t, pid_t);
  383. extern int                setpgrp2 (pid_t, pid_t);
  384. extern int                setpgrp (pid_t);
  385. extern int                setpriority (int, int, int);
  386. extern int                setregid (gid_t, gid_t);
  387. extern int                setreuid (uid_t, uid_t);
  388. extern void               setrlimit (int, struct rlimit *);
  389. extern pid_t              setsid (void);
  390. extern char *             setstate (char *);
  391. extern int                setuid (uid_t);
  392. extern int                sigblock (int);
  393. extern int                sighold (int);
  394. extern int                sigignore (int);
  395. extern int                siginterrupt (int, int);
  396. extern void               siglongjmp (sigjmp_buf, int);
  397. extern SIGHAN_T (*        signal (int, SIGHAN_T (*) (int, ...))) (int, ...);
  398. extern int                sigpause (int);
  399. extern int                sigrelse (int);
  400. extern void (*            sigset (int, void (*) (int, ...))) (int, ...);
  401. extern int                sigsetjmp (sigjmp_buf, int);
  402. extern int                sigsetmask (int);
  403. extern double             sin (double);
  404. extern double             sinh (double);
  405. extern unsigned           sleep (unsigned);
  406. extern char *             sprintf (char *, const char *, ...);
  407. extern double             sqrt (double);
  408. extern void               srand48 (long);
  409. extern int                srand (int);
  410. extern int                srand (int);
  411. extern void               srandom (int);
  412. extern int                sscanf (char *, const char *, ...);
  413. extern int                stat (const char *, struct stat *);
  414. extern int                stime (long *);
  415. extern char *             strcat (char *, const char *);
  416. extern char *             strchr (const char *, int);
  417. extern int                strcmp (const char *, const char *);
  418. extern char *             strcpy (char *, const char *);
  419. extern size_t             strcspn (const char *, const char *);
  420. extern char *             strdup (const char *);
  421. extern size_t             strftime (char *, size_t, char *, struct tm *);
  422. extern size_t             strlen (const char *);
  423. extern char *             strncat (char *, const char *, size_t);
  424. extern int                strncmp (const char *, const char *, size_t);
  425. extern char *             strncpy (char *, const char *, size_t);
  426. extern char *             strpbrk (const char *, const char *);
  427. extern char *             strrchr (const char *, int);
  428. extern size_t             strspn (const char *, const char *);
  429. extern double             strtod (const char *, char **);
  430. extern char *             strtok (char *, const char *);
  431. extern long               strtol (const char *, char **, int);
  432. extern void               swab (void *, void *, int);
  433. extern int                symlink (const char *, const char *);
  434. extern int                syscall (int, ...);
  435. extern int                system (const char *);
  436. extern double             tan (double);
  437. extern double             tanh (double);
  438. extern pid_t              tcgetpgrp (int);
  439. extern int                tcsetpgrp (int, pid_t);
  440. extern long               telldir (DIR *);
  441. extern char *             tempnam (char *, char *);
  442. extern int                tgetent (char *, char *);
  443. extern int                tgetflag (char *);
  444. extern int                tgetnum (char *);
  445. extern char *             tgetstr (char *, char * *);
  446. extern char *             tgoto (char *, int, int);
  447. extern time_t             time (time_t *);
  448. extern char *             timezone (int, int);
  449. extern FILE *             tmpfile (void);
  450. extern char *             tmpnam (char *);
  451. extern int                truncate (const char *, unsigned long);
  452. extern char *             ttyname (int);
  453. extern int                ttyslot (void);
  454. extern void               tzset (void);
  455. extern unsigned           ualarm (unsigned, unsigned);
  456. extern long               ulimit (int, long);
  457. extern mode_t             umask (mode_t);
  458. extern void               undial (int);
  459. extern int                ungetc (int, FILE *);
  460. extern int                unlink (const char *);
  461. extern unsigned           usleep (unsigned);
  462. extern int                vadvise (int);
  463. extern void *             valloc (size_t);
  464. extern pid_t              vfork (void);
  465. extern int                vfprintf (FILE *, const char *, ...);
  466. extern int                vhangup (void);
  467. extern int                vprintf (char *, ...);
  468. extern int                vsprintf (char *, const char *, ...);
  469. extern pid_t              wait3 (union wait *, int, struct rusage *);
  470. extern pid_t              wait (WAIT_ARG_TYPE *);
  471. extern pid_t              waitpid (pid_t, int *, int);
  472. extern int                write (int, const void *, size_t);
  473. extern double             y0 (double);
  474. extern double             y1 (double);
  475. extern double             yn (int, double);
  476. extern int                yp_bind (char *);
  477. extern void               yp_unbind (char *);
  478.