Files
sibo-playground/code/SIBOSDK/include/stdlib.h
2026-07-06 18:01:36 +01:00

151 lines
5.4 KiB
C

/* Release 3.00 */
/*-------------------------------------------------------------------------*
* *
* stdlib.h - definitions for common variables, types and functions. *
* *
* COPYRIGHT (C) 1989, 1990 Jensen and Partners. All Rights Reserved. *
* *
* *
*--------------------------------------------------------------------------*/
#include <stdepoc.h>
#ifndef _STDLIB_INC_
#define _STDLIB_INC_
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
#ifndef _WCHAR_T
#define _WCHAR_T
typedef unsigned char wchar_t;
#endif
#ifndef NULL
#define NULL 0
#endif
#define MB_CUR_MAX 1
#ifndef _LDIV_T
#define _LDIV_T
typedef struct {
long quot;
long rem;
} ldiv_t;
#endif
#ifndef _DIV_T
#define _DIV_T
typedef struct {
int quot;
int rem;
} div_t;
#endif
#ifndef _ERRNOL_INC_
#define _ERRNOL_INC_
extern int _doserrno; /* global DOS error variable */
extern int errno; /* global error variable */
#endif
#ifdef __cplusplus
extern "C" {
#endif
extern void abort(void);
extern int abs(int _num);
extern int atexit(void (*_func)(void));
extern double atof(const char *_nptr);
extern long double atofl(const char *_nptr);
extern int atoi(const char *_nptr);
extern long atol(const char *_nptr);
extern unsigned long atoul(const char *_nptr);
extern void * bsearch(const void *_key, const void *_base,
size_t _nmemb, size_t _size,
int ( *_compare)(const void *_e1, const void *_e2));
extern void * calloc(size_t _num, size_t _size);
extern void delay(int _tm);
extern div_t div(int _numer, int _denom);
extern char * ecvt(double _value, int _digits, int *_dec, int *_sign);
extern void _exit(int _status);
extern void exit(int _code);
extern char * fcvt(double _value, int _digits, int *_dec, int *_sign);
extern void free(void *_block);
extern char * gcvt(double _value, int _ndec, char *_buf);
extern char * gcvtl(long double _value, int _ndec, char *_buf);
extern char * getenv(const char *_name);
extern char * itoa(int _value, char *_string, int _radix);
extern long labs(long _j);
extern ldiv_t ldiv(long _numer, long _denom);
extern char * lfind(const char *_key, const char *_base,
unsigned *_num, unsigned _width,
int ( *_compare)(const void *_e1, const void *_e2));
extern unsigned long _lrotl(unsigned long _val, int _count);
extern unsigned long _lrotr(unsigned long _val, int _count);
extern char * lsearch(const char *_key, char *_base,
unsigned *_num, unsigned _width,
int ( *_compare)(const void *_e1, const void *_e2));
extern char * ltoa(long _value, char *_s, int _radix);
extern void _makepath(char *_path, const char *_drive, const char *_dir,
const char *_name, const char *_ext);
extern void * malloc(size_t _size);
extern int mblen(const char *_s, size_t _n);
extern size_t mbstowcs(wchar_t *_pwcs, const char *_s, size_t _n);
extern int mbtowc(wchar_t *_pwc, const char *_s, size_t _n);
extern void (* onexit(void ( *_func)(void)))();
extern int putenv(const char *_name);
extern void qsort(void *_base, size_t _nmemb, size_t _size,
int (*_compare)(const void *_e1, const void *_e2));
extern int rand(void);
extern void randomize(void);
extern void * realloc(void *_block, size_t _size);
extern unsigned _rotl(unsigned _value, int _count);
extern unsigned _rotr(unsigned _value, int _count);
extern void _searchenv(const char *_name, const char *_env, char *_path);
extern void _splitpath(const char *_path, char *_drive, char *_dir,
char *_name, char *_ext);
extern void srand(unsigned _seed);
extern double strtod(const char *_s, char **_endptr);
extern long strtol(const char *_s, char **_endptr, int _base);
extern unsigned long strtoul(const char *_s, char **_endptr, int _base);
extern void swab(const char *_from, char *_to, int _num);
extern int system(const char *_string);
extern char * ultoa(unsigned long _value, char *_s, int _radix);
extern int wctomb(char *_s, wchar_t _wchar);
extern size_t wcstombs(char *_s, const wchar_t *_pwcs, size_t _n);
#ifdef __cplusplus
}
#endif
/* Variables */
extern unsigned int _fmode;
extern char * sys_errlist[38];
extern int sys_nerr;
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 0xFF
#ifndef max
#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef min
#define min(a,b) (((a) < (b)) ? (a) : (b))
#endif
#define random(num) (rand() % (num))
#define RAND_MAX 32767
#define _MAX_PATH 144 /* maximum length of full pathname */
#define _MAX_DRIVE 4 /* maximum length of drive component */
#define _MAX_DIR 130 /* maximum length of path component */
#define _MAX_FNAME 9 /* maximum length of file name component */
#define _MAX_EXT 5 /* maximum length of extension component */
#endif