*
* %sccs.include.redist.c%
*
- * @(#)stdlib.h 5.4 (Berkeley) %G%
+ * @(#)stdlib.h 5.12 (Berkeley) %G%
*/
#ifndef _STDLIB_H_
#define _STDLIB_H_
-#include <machine/types.h>
-
-#ifdef _SIZE_T_
-typedef _SIZE_T_ size_t;
-#undef _SIZE_T_
-#endif
+#include <sys/types.h>
#ifdef _WCHAR_T_
typedef _WCHAR_T_ wchar_t;
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
-#define RAND_MAX 0x7ffffffff
+#define RAND_MAX 0x7fffffff
#define MB_CUR_MAX 1 /* XXX */
-#if __STDC__ || c_plusplus
-
-void abort(void);
-int abs(int);
-int atexit(void (*_func)(void));
-double atof(const char *_nptr);
-int atoi(const char *_nptr);
-long atol(const char *_nptr);
-void *bsearch(const void *_key, const void *_base, size_t _nmemb,
- size_t _size, int (*_compar)(const void *, const void *));
-void *calloc(size_t _nmemb, size_t _size);
-div_t div(int _numer, int _denom);
-void exit(int _status);
-void free(void *_ptr);
-char *getenv(const char *_string);
-long labs(long);
-ldiv_t ldiv(long _numer, long _denom);
-void *malloc(size_t _size);
-void qsort(void *_base, size_t _nmemb, size_t _size,
- int (*_compar)(const void *, const void *));
-int rand(void);
-void *realloc(void *_ptr, size_t _size);
-void srand(unsigned _seed);
-long strtol(const char *_nptr, char **_endptr, int _base);
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+void abort __P((void));
+int abs __P((int));
+int atexit __P((void (*)(void)));
+double atof __P((const char *));
+int atoi __P((const char *));
+long atol __P((const char *));
+void *bsearch __P((const void *, const void *, size_t,
+ size_t, int (*)(const void *, const void *)));
+void *calloc __P((size_t, size_t));
+div_t div __P((int, int));
+void exit __P((int));
+void free __P((void *));
+char *getenv __P((const char *));
+long labs __P((long));
+ldiv_t ldiv __P((long, long));
+void *malloc __P((size_t));
+void qsort __P((void *, size_t, size_t,
+ int (*)(const void *, const void *)));
+int rand __P((void));
+void *realloc __P((void *, size_t));
+void srand __P((unsigned));
+double strtod __P((const char *, char **));
+long strtol __P((const char *, char **, int));
unsigned long
- strtoul(const char *_nptr, char **_endptr, int _base);
-int system(const char *_string);
-
-#ifndef _ANSI_SOURCE
-void cfree(void *_ptr);
-int putenv(const char *_string);
-int setenv(const char *_string, const char *_value, int _overwrite);
-#endif
-
-#ifdef NOT_YET_IMPLEMENTED
-int mblen(const char *_s, size_t _n);
-size_t mbstowcs(wchar_t *_pwcs, const char *_s, size_t _n);
-int wctomb(char *_s, wchar_t _wchar);
-int mbtowc(wchar_t *_pwc, const char *_s, size_t _n);
-double strtod(const char *_nptr, char **_endptr);
-size_t wcstombs(char *_s, const wchar_t *_pwcs, size_t _n);
-#endif
+ strtoul __P((const char *, char **, int));
+int system __P((const char *));
-#else
-
-void abort();
-int abs();
-int atexit();
-double atof();
-int atoi();
-long atol();
-void *bsearch();
-void *calloc();
-div_t div();
-void exit();
-void free();
-char *getenv();
-long labs();
-ldiv_t ldiv();
-void *malloc();
-void qsort();
-int rand();
-void *realloc();
-void srand();
-long strtol();
-unsigned long
- strtoul();
-int system();
+/* these are currently just stubs */
+int mblen __P((const char *, size_t));
+size_t mbstowcs __P((wchar_t *, const char *, size_t));
+int wctomb __P((char *, wchar_t));
+int mbtowc __P((wchar_t *, const char *, size_t));
+size_t wcstombs __P((char *, const wchar_t *, size_t));
#ifndef _ANSI_SOURCE
-void cfree();
-int putenv();
-int setenv();
-#endif
-
-#ifdef NOT_YET_IMPLEMENTED
-int mblen();
-size_t mbstowcs();
-int wctomb();
-int mbtowc();
-double strtod();
-size_t wcstombs();
-#endif
-
-#endif
+void cfree __P((void *));
+int putenv __P((const char *));
+int setenv __P((const char *, const char *, int));
+#endif /* not ANSI */
+
+#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
+void *alloca __P((size_t)); /* built-in for gcc */
+extern char *optarg; /* getopt(3) external variables */
+extern int optind;
+extern int opterr;
+int getopt __P((int, char * const *, const char *));
+extern char *suboptarg; /* getsubopt(3) external variable */
+int getsubopt __P((char **, char * const *, char **));
+char *initstate __P((unsigned, char *, int));
+int radixsort __P((const u_char **, int, const u_char *, u_char));
+long random __P((void));
+char *setstate __P((char *));
+void srandom __P((unsigned));
+void unsetenv __P((const char *));
+#endif /* neither ANSI nor POSIX */
+
+__END_DECLS
#endif /* _STDLIB_H_ */