1 /* The <stdlib.h> header defines certain common macros, types, and functions.*/ 2 3 #ifndef _STDLIB_H 4 #define _STDLIB_H 5 6 #ifndef _MINIX_ANSI_H 7 #include <minix/ansi.h> 8 #endif 9 10 #include <stddef.h> 11 #include <sys/cdefs.h> 12 #include <sys/null.h> 13 14 #define EXIT_FAILURE 1 /* standard error return using exit() */ 15 #define EXIT_SUCCESS 0 /* successful return using exit() */ 16 #define RAND_MAX 32767 /* largest value generated by rand() */ 17 #define MB_CUR_MAX 1 /* max value of multibyte character in MINIX */ 18 19 typedef struct { int quot, rem; } div_t; 20 typedef struct { long quot, rem; } ldiv_t; 21 22 /* The types are div_t, and ldiv_t. */ 23 24 /* Function Prototypes. */ 25 _PROTOTYPE( void abort, (void) ); 26 _PROTOTYPE( int abs, (int _j) ); 27 _PROTOTYPE( int atexit, (void (*_func)(void)) ); 28 _PROTOTYPE( double atof, (const char *_nptr) ); 29 _PROTOTYPE( int atoi, (const char *_nptr) ); 30 _PROTOTYPE( long atol, (const char *_nptr) ); 31 _PROTOTYPE( void *calloc, (size_t _nmemb, size_t _size) ); 32 _PROTOTYPE( div_t div, (int _numer, int _denom) ); 33 _PROTOTYPE( __dead void exit, (int _status) ); 34 _PROTOTYPE( void free, (void *_ptr) ); 35 _PROTOTYPE( char *getenv, (const char *_name) ); 36 _PROTOTYPE( long labs, (long _j) ); 37 _PROTOTYPE( ldiv_t ldiv, (long _numer, long _denom) ); 38 _PROTOTYPE( void *malloc, (size_t _size) ); 39 _PROTOTYPE( int mblen, (const char *_s, size_t _n) ); 40 _PROTOTYPE( size_t mbstowcs, (wchar_t *_pwcs, const char *_s, size_t _n)); 41 _PROTOTYPE( int mbtowc, (wchar_t *_pwc, const char *_s, size_t _n) ); 42 _PROTOTYPE( int rand, (void) ); 43 _PROTOTYPE( void *realloc, (void *_ptr, size_t _size) ); 44 _PROTOTYPE( void srand, (unsigned int _seed) ); 45 _PROTOTYPE( double strtod, (const char *_nptr, char **_endptr) ); 46 _PROTOTYPE( long strtol, (const char *_nptr, char **_endptr, int _base) ); 47 _PROTOTYPE( int system, (const char *_string) ); 48 _PROTOTYPE( size_t wcstombs, (char *_s, const wchar_t *_pwcs, size_t _n)); 49 _PROTOTYPE( int wctomb, (char *_s, wchar_t _wchar) ); 50 _PROTOTYPE( void *bsearch, (const void *_key, const void *_base, 51 size_t _nmemb, size_t _size, 52 int (*compar) (const void *, const void *)) ); 53 _PROTOTYPE( void qsort, (void *_base, size_t _nmemb, size_t _size, 54 int (*compar) (const void *, const void *)) ); 55 _PROTOTYPE( unsigned long int strtoul, 56 (const char *_nptr, char **_endptr, int _base) ); 57 _PROTOTYPE( const char *getprogname, (void) ); 58 _PROTOTYPE( void setprogname, (const char *) ); 59 60 #ifdef _POSIX_SOURCE 61 /* Open Group Base Specifications Issue 6 */ 62 _PROTOTYPE( int mkstemp, (char *_fmt) ); 63 _PROTOTYPE( char *initstate, (unsigned _seed, char *_state, 64 size_t _size) ); 65 _PROTOTYPE( long random, (void) ); 66 _PROTOTYPE( char *realpath, (const char *file_name, 67 char *resolved_name) ); 68 _PROTOTYPE( char *setstate, (const char *state) ); 69 _PROTOTYPE( void srandom, (unsigned seed) ); 70 _PROTOTYPE( int putenv, (char *string) ); 71 _PROTOTYPE( int setenv, (const char *envname, const char *envval, 72 int overwrite) ); 73 _PROTOTYPE( int unsetenv, (const char *name) ); 74 _PROTOTYPE( int getsubopt, (char **optionp, char * const *keylistp, char **valuep)); 75 76 #ifdef __LONG_LONG_SUPPORTED 77 _PROTOTYPE( long long strtoll, (const char *_nptr, char **_endptr, 78 int _base) ); 79 _PROTOTYPE( unsigned long long strtoull, (const char *_nptr, 80 char **_endptr, int _base) ); 81 #endif 82 83 #endif 84 85 #ifdef _MINIX 86 _PROTOTYPE( int getloadavg, (double *, int) ); 87 88 /* According to POSIX, getopt should be in unistd.h. What do we do with 89 * this? 90 */ 91 _PROTOTYPE(int getopt, (int _argc, char * const _argv[], const char *_opts)); 92 extern char *optarg; 93 extern int optind, opterr, optopt; 94 95 _PROTOTYPE(size_t shquote, (const char *arg, char *buf, size_t bufsize)); 96 _PROTOTYPE(char *mkdtemp, (char *path)); 97 98 #endif /* _MINIX */ 99 100 #endif /* STDLIB_H */ 101