160 lines
4.9 KiB
C
160 lines
4.9 KiB
C
|
/* Copyright (C) 1999 DJ Delorie, see COPYING.DJ for details */
|
||
|
/* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */
|
||
|
/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
|
||
|
#ifndef __dj_include_stdlib_h_
|
||
|
#define __dj_include_stdlib_h_
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
#ifndef __dj_ENFORCE_ANSI_FREESTANDING
|
||
|
|
||
|
#include <sys/djtypes.h>
|
||
|
#include <dos.h>
|
||
|
|
||
|
/* Some programs think they know better... */
|
||
|
#undef NULL
|
||
|
|
||
|
#define EXIT_FAILURE 1
|
||
|
#define EXIT_SUCCESS 0
|
||
|
#define MB_CUR_MAX __dj_mb_cur_max
|
||
|
#define NULL 0
|
||
|
#define RAND_MAX 2147483647
|
||
|
|
||
|
extern int __dj_mb_cur_max;
|
||
|
|
||
|
typedef struct {
|
||
|
int quot;
|
||
|
int rem;
|
||
|
} div_t;
|
||
|
|
||
|
typedef struct {
|
||
|
long quot;
|
||
|
long rem;
|
||
|
} ldiv_t;
|
||
|
|
||
|
__DJ_size_t
|
||
|
#undef __DJ_size_t
|
||
|
#define __DJ_size_t
|
||
|
__DJ_wchar_t
|
||
|
#undef __DJ_wchar_t
|
||
|
#define __DJ_wchar_t
|
||
|
|
||
|
#ifdef _MSC_VER
|
||
|
void __declspec(noreturn) abort(void);
|
||
|
void __declspec(noreturn) exit(int _status);
|
||
|
#else
|
||
|
void abort(void) __attribute__((noreturn));
|
||
|
void exit(int _status) __attribute__((noreturn));
|
||
|
#endif
|
||
|
int abs(int _i);
|
||
|
int atexit(void (*_func)(void));
|
||
|
double atof(const char *_s);
|
||
|
int atoi(const char *_s);
|
||
|
long atol(const char *_s);
|
||
|
void * bsearch(const void *_key, const void *_base, size_t _nelem,
|
||
|
size_t _size, int (*_cmp)(const void *_ck, const void *_ce));
|
||
|
void * calloc(size_t _nelem, size_t _size);
|
||
|
div_t div(int _numer, int _denom);
|
||
|
void free(void *_ptr);
|
||
|
char * getenv(const char *_name);
|
||
|
long labs(long _i);
|
||
|
ldiv_t ldiv(long _numer, long _denom);
|
||
|
void * malloc(size_t _size);
|
||
|
int mblen(const char *_s, size_t _n);
|
||
|
size_t mbstowcs(wchar_t *_wcs, const char *_s, size_t _n);
|
||
|
int mbtowc(wchar_t *_pwc, const char *_s, size_t _n);
|
||
|
void qsort(void *_base, size_t _nelem, size_t _size,
|
||
|
int (*_cmp)(const void *_e1, const void *_e2));
|
||
|
int rand(void);
|
||
|
void * realloc(void *_ptr, size_t _size);
|
||
|
void srand(unsigned _seed);
|
||
|
double strtod(const char *_s, char **_endptr);
|
||
|
long strtol(const char *_s, char **_endptr, int _base);
|
||
|
unsigned long strtoul(const char *_s, char **_endptr, int _base);
|
||
|
int system(const char *_s);
|
||
|
size_t wcstombs(char *_s, const wchar_t *_wcs, size_t _n);
|
||
|
int wctomb(char *_s, wchar_t _wchar);
|
||
|
|
||
|
#ifndef __STRICT_ANSI__
|
||
|
|
||
|
#ifndef _POSIX_SOURCE
|
||
|
|
||
|
typedef struct {
|
||
|
long long quot;
|
||
|
long long rem;
|
||
|
} lldiv_t;
|
||
|
|
||
|
void * alloca(size_t _size);
|
||
|
long double _atold(const char *_s);
|
||
|
long long atoll(const char *_s);
|
||
|
void cfree(void *_ptr);
|
||
|
double drand48(void);
|
||
|
char * ecvtbuf(double _val, int _nd, int *_dp, int *_sn, char *_bf);
|
||
|
char * ecvt(double _val, int _nd, int *_dp, int *_sn);
|
||
|
double erand48(unsigned short state[3]);
|
||
|
char * fcvtbuf(double _val, int _nd, int *_dp, int *_sn, char *_bf);
|
||
|
char * fcvt(double _val, int _nd, int *_dp, int *_sn);
|
||
|
char * gcvt(double _val, int _nd, char *_buf);
|
||
|
char * getpass(const char *_prompt);
|
||
|
int getlongpass(const char *_prompt, char *_buffer, int _max_len);
|
||
|
char * itoa(int value, char *buffer, int radix);
|
||
|
long jrand48(unsigned short state[3]);
|
||
|
long long llabs(long long _i);
|
||
|
lldiv_t lldiv(long long _numer, long long _denom);
|
||
|
void lcong48(unsigned short param[7]);
|
||
|
unsigned long lrand48(void);
|
||
|
long mrand48(void);
|
||
|
unsigned long nrand48(unsigned short state[3]);
|
||
|
int putenv(const char *_val);
|
||
|
unsigned short *seed48(unsigned short state_seed[3]);
|
||
|
int setenv(const char *_var, const char *_val, int _replace);
|
||
|
void srand48(long seedval);
|
||
|
int stackavail(void);
|
||
|
long double _strtold(const char *_s, char **_endptr);
|
||
|
long long strtoll(const char *_s, char **_endptr, int _base);
|
||
|
unsigned long long strtoull(const char *_s, char **_endptr, int _base);
|
||
|
void swab(const void *from, void *to, int nbytes);
|
||
|
|
||
|
#ifndef alloca
|
||
|
#define alloca __builtin_alloca
|
||
|
#endif
|
||
|
|
||
|
/* BSD Random Number Generator */
|
||
|
char * initstate (unsigned _seed, char *_arg_state, int _n);
|
||
|
char * setstate(char *_arg_state);
|
||
|
long random(void);
|
||
|
int srandom(int _seed);
|
||
|
|
||
|
/* These vary in expected prototype, so we just don't prototype them.
|
||
|
void xfree(void *_ptr);
|
||
|
void * xmalloc(size_t _size);
|
||
|
void * xrealloc(void *ptr, size_t _size);
|
||
|
*/
|
||
|
|
||
|
#define __system_redirect 0x0001 /* redirect internally */
|
||
|
#define __system_call_cmdproc 0x0002 /* always call COMMAND/$SHELL */
|
||
|
#define __system_use_shell 0x0004 /* use $SHELL if set */
|
||
|
#define __system_allow_multiple_cmds 0x0008 /* allow `cmd1; cmd2; ...' */
|
||
|
#define __system_allow_long_cmds 0x0010 /* handle commands > 126 chars */
|
||
|
#define __system_emulate_command 0x0020 /* try to emulate the shell */
|
||
|
#define __system_handle_null_commands 0x1000 /* ignore cmds with no effect */
|
||
|
#define __system_ignore_chdir 0x2000 /* make `cd' be a null command */
|
||
|
#define __system_emulate_chdir 0x4000 /* handle `cd' internally */
|
||
|
|
||
|
extern int __system_flags;
|
||
|
|
||
|
#endif /* !_POSIX_SOURCE */
|
||
|
#endif /* !__STRICT_ANSI__ */
|
||
|
#endif /* !__dj_ENFORCE_ANSI_FREESTANDING */
|
||
|
|
||
|
#ifndef __dj_ENFORCE_FUNCTION_CALLS
|
||
|
#endif /* !__dj_ENFORCE_FUNCTION_CALLS */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif /* !__dj_include_stdlib_h_ */
|