home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / swtools / mipsABI / examples / sup / libc.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-08-02  |  9.5 KB  |  292 lines

  1. /*
  2.  * Copyright (c) 1991 Carnegie Mellon University
  3.  * All Rights Reserved.
  4.  * 
  5.  * Permission to use, copy, modify and distribute this software and its
  6.  * documentation is hereby granted, provided that both the copyright
  7.  * notice and this permission notice appear in all copies of the
  8.  * software, derivative works or modified versions, and any portions
  9.  * thereof, and that both notices appear in supporting documentation.
  10.  *
  11.  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  12.  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  13.  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
  14.  *
  15.  * Carnegie Mellon requests users of this software to return to
  16.  *
  17.  *  Software Distribution Coordinator   or   Software.Distribution@CS.CMU.EDU
  18.  *  School of Computer Science
  19.  *  Carnegie Mellon University
  20.  *  Pittsburgh PA 15213-3890
  21.  *
  22.  * any improvements or extensions that they make and grant Carnegie the rights
  23.  * to redistribute these changes.
  24.  */
  25. /*
  26.  **********************************************************************
  27.  * HISTORY
  28.  * $Log: libc.h,v $
  29.  * Revision 1.1.1.1  1993/05/21  14:52:17  cgd
  30.  * initial import of CMU's SUP to NetBSD
  31.  *
  32.  * Revision 1.7  89/04/03  11:10:45  vanryzin
  33.  *     Changed definition of qsort for c++ to indicate the procedure
  34.  *     passed to qsort has parameters.  Since we were unsure if ANSI C
  35.  *     could handle the syntax I placed the new definition within #if
  36.  *     defined(c_plusplus) conditionals.  This may not be necessary
  37.  *     and perhaps should be fixed at a later time.
  38.  *     [89/04/03            vanryzin]
  39.  * 
  40.  * Revision 1.6  89/02/05  15:55:57  gm0w
  41.  *     Added extern char *errmsg().
  42.  *     [89/02/04            gm0w]
  43.  * 
  44.  * Revision 1.5  89/01/20  15:34:40  gm0w
  45.  *     Moved all of the STDC changes to other existing include files
  46.  *     back into this one.  Added non-STDC extern declarations for
  47.  *     all functions without int return values to match those defined
  48.  *     by STDC.  Added include of sysent.h.  Removed obsolete cdate
  49.  *     extern declaration.
  50.  *     [88/12/17            gm0w]
  51.  * 
  52.  * Revision 1.4  88/12/22  16:58:56  mja
  53.  *     Correct __STDC__ parameter type for getenv().
  54.  *     [88/12/20            dld]
  55.  * 
  56.  * Revision 1.3  88/12/14  23:31:42  mja
  57.  *     Made file reentrant.  Added declarations for __STDC__.
  58.  *     [88/01/06            jjk]
  59.  * 
  60.  * 30-Apr-88  Glenn Marcy (gm0w) at Carnegie-Mellon University
  61.  *    Added pathof() extern.
  62.  *
  63.  * 01-Dec-85  Glenn Marcy (gm0w) at Carnegie-Mellon University
  64.  *    Added getname() extern.
  65.  *
  66.  * 29-Nov-85  Glenn Marcy (gm0w) at Carnegie-Mellon University
  67.  *    Added lseek() extern.
  68.  *
  69.  * 02-Nov-85  Glenn Marcy (gm0w) at Carnegie-Mellon University
  70.  *    Added salloc() extern.
  71.  *
  72.  * 14-Aug-81  Mike Accetta (mja) at Carnegie-Mellon University
  73.  *    Created.
  74.  *
  75.  **********************************************************************
  76.  */
  77.  
  78. #ifndef    _LIBC_H_
  79. #define    _LIBC_H_ 1
  80.  
  81. #ifndef _TYPES_
  82. #include <sys/types.h>
  83. #endif    /* _TYPES_ */
  84.  
  85. #ifndef    _SYSENT_H_
  86. #include <sysent.h>
  87. #endif    /* _SYSENT_H_ */
  88.  
  89. #ifndef    FILE
  90. #include <stdio.h>
  91. #endif    /* FILE */
  92.  
  93. #ifndef    _STRINGS_H_
  94. #include <strings.h>
  95. #endif    /* _STRINGS_H_ */
  96.  
  97. #ifndef    _TIME_H_
  98. #include <time.h>
  99. #endif    /* _TIME_H_ */
  100.  
  101. /*  CMU stdio additions */
  102. #if defined(__STDC__)
  103. extern FILE *fopenp(const char*, const char*, char*, char*);
  104. extern FILE *fwantread(const char*, const char*, const char*, const char*);
  105. extern FILE *fwantwrite(const char*, const char*, const char*, const char*,
  106.             int);
  107. #else    /* __STDC__ */
  108. extern FILE *fopenp();
  109. extern FILE *fwantread();
  110. extern FILE *fwantwrite();
  111. #endif    /* __STDC__ */
  112.  
  113. /* CMU string routines */
  114. #if defined(__STDC__)
  115. extern char* foldup(char*, const char*);
  116. extern char* folddown(char*, const char*);
  117. extern char* sindex(const char*, const char*);
  118. extern char* skipto(const char*, const char*);
  119. extern char* skipover(const char*, const char*);
  120. extern char* nxtarg(char**, const char*);
  121. extern char _argbreak;
  122. extern char* getstr(const char*, char*, char*);
  123. extern int getstab(const char*, const char**, const char*);
  124. extern int getsearch(const char*, const char**, const char*);
  125. extern char* strarg(const char**, const char*, const char*, char*, char*);
  126. extern int stabarg(const char**, const char*, const char*, const char**,
  127.            const char*);
  128. extern int searcharg(const char**, const char*, const char*, const char**,
  129.              const char*);
  130. extern int getint(const char*, int, int, int);
  131. extern int intarg(const char**, const char*, const char*, int, int, int);
  132. extern long getlong(const char*, long, long, long);
  133. extern long longarg(const char**, const char*, const char*, long, long, long);
  134. extern short getshort(const char*, short, short, short);
  135. extern short shortarg(const char**, const char*, const char*,
  136.               short, short, short);
  137. extern float getfloat(const char*, float, float, float);
  138. extern float floatarg(const char**, const char*, const char*,
  139.               float, float, float);
  140. extern double getdouble(const char*, double, double, double);
  141. extern double doublearg(const char**, const char*, const char*,
  142.             double, double, double);
  143. extern unsigned int getoct(const char*, unsigned int, unsigned int,
  144.                unsigned int);
  145. extern unsigned int octarg(const char**, const char*, const char*,
  146.                unsigned int, unsigned int, unsigned int);
  147. extern unsigned int gethex(const char*, unsigned int, unsigned int,
  148.                unsigned int);
  149. extern unsigned int hexarg(const char**, const char*, const char*,
  150.                unsigned int, unsigned int, unsigned int);
  151. extern unsigned int atoo(const char*);
  152. extern unsigned int atoh(const char*);
  153. extern char *salloc(const char*);
  154. extern char *concat(const char*, int, ...);
  155. #else    /* __STDC__ */
  156. extern char *foldup(), *folddown();
  157. extern char *sindex(), *skipto(), *skipover(), *nxtarg();
  158. extern char *getstr(), *strarg();
  159. extern long getlong(), longarg();
  160. extern short getshort(), shortarg();
  161. extern float getfloat(), floatarg();
  162. extern double getdouble(), doublearg();
  163. extern unsigned int getoct(), octarg(), gethex(), hexarg();
  164. extern unsigned int atoo(), atoh();
  165. extern char *salloc();
  166. extern char *concat();
  167. #endif    /* __STDC__ */
  168.  
  169. /* CMU library routines */
  170. #if defined(__STDC__)
  171. extern char *getname(int);
  172. extern char *pathof(char *);
  173. extern char *errmsg(int);
  174. #else    /* __STDC__ */
  175. extern char *getname();
  176. extern char *pathof();
  177. extern char *errmsg();
  178. #endif    /* __STDC__ */
  179.  
  180. /*  CMU time additions */
  181. #if defined(__STDC__)
  182. extern long gtime(const struct tm*);
  183. extern long atot(const char*);
  184. #else    /* __STDC__ */
  185. extern long gtime();
  186. extern long atot();
  187. #endif    /* __STDC__ */
  188.  
  189. /* 4.3 BSD standard library routines; taken from man(3) */
  190. #if defined(__STDC__)
  191. typedef int (*PFI)();
  192. #if defined(c_plusplus)
  193. typedef int (*PFI2)(...);
  194. #endif /* c_plusplus */
  195. #if 0
  196. extern void abort(void);
  197. extern int abs(int);
  198. extern double atof(const char *);
  199. extern int atoi(const char *);
  200. extern long atol(const char *);
  201. extern void bcopy(const void *, void *, int);
  202. extern int bcmp(const void *, const void *, int);
  203. extern void bzero(void *, int);
  204. extern int ffs(int);
  205. extern char *crypt(const char *, const char *);
  206. extern void setkey(char *);
  207. extern void encrypt(char *, int);
  208. extern char *ecvt(double, int, int *, int *);
  209. extern char *fcvt(double, int, int *, int *);
  210. extern char *gcvt(double, int, char *);
  211. extern int execl(const char *, ...);
  212. extern int execv(const char *, const char **);
  213. extern int execle(const char *, ...);
  214. extern int exect(const char *, const char **, const char **);
  215. extern void exit(int);
  216. extern char *getenv(const char *);
  217. extern char *getlogin(void);
  218. extern int getopt(int, const char **, const char *);
  219. extern char *getpass(const char *);
  220. extern char *getusershell(void);
  221. extern void setusershell(void);
  222. extern void endusershell(void);
  223. extern char *getwd(char *);
  224. extern int initgroups(const char *, gid_t);
  225. extern void *malloc(unsigned);
  226. extern void free(void *);
  227. extern void *realloc(void *, unsigned);
  228. extern void *calloc(unsigned, unsigned);
  229. extern void *alloca(int);
  230. extern char *mktemp(char *);
  231. extern int mkstemp(char *);
  232. extern void monitor(PFI, PFI, short *, int, int);
  233. extern void monstartup(PFI, PFI);
  234. extern void moncontrol(int);
  235. extern int pause(void);
  236. #if defined(c_plusplus)
  237. extern void qsort(void *, int, int, PFI2);
  238. #else /* c_plusplus */
  239. extern void qsort(void *, int, int, PFI);
  240. #endif /* c_plusplus */
  241. extern long random(void);
  242. extern int srandom(int);
  243. extern void *initstate(unsigned, void *, int);
  244. extern void *setstate(void *);
  245. extern int rcmd(char **, int, const char *, const char *, const char *, int);
  246. extern int rresvport(int *);
  247. extern int ruserok(char *, int, const char *, const char *);
  248. extern char *re_comp(char *);
  249. extern int re_exec(char *);
  250. extern int rexec(char **, int, const char *, const char *, const char *,
  251.          int *);
  252. extern int setuid(uid_t);
  253. extern int seteuid(uid_t);
  254. extern int setruid(uid_t);
  255. extern int setgid(gid_t);
  256. extern int setegid(gid_t);
  257. extern int setrgid(gid_t);
  258. extern void sleep(unsigned);
  259. extern void swab(void *, void *, int);
  260. extern int system(const char *);
  261. extern char *ttyname(int);
  262. extern int isatty(int);
  263. extern int ttyslot(void);
  264. extern unsigned ualarm(unsigned, unsigned);
  265. extern void usleep(unsigned);
  266. #endif
  267. #else    /* __STDC__ */
  268. extern double atof();
  269. extern long atol();
  270. extern char *crypt();
  271. extern char *ecvt();
  272. extern char *fcvt();
  273. extern char *gcvt();
  274. extern char *getenv();
  275. extern char *getlogin();
  276. extern char *getpass();
  277. extern char *getusershell();
  278. extern char *getwd();
  279. extern char *malloc();
  280. extern char *realloc();
  281. extern char *calloc();
  282. extern char *alloca();
  283. extern char *mktemp();
  284. extern long random();
  285. extern char *initstate();
  286. extern char *setstate();
  287. extern char *re_comp();
  288. extern char *ttyname();
  289. extern unsigned ualarm();
  290. #endif    /* __STDC__ */
  291. #endif    /* not _LIBC_H_ */
  292.