diff options
Diffstat (limited to 'packages/libc/src/stdlibh.inc')
-rw-r--r-- | packages/libc/src/stdlibh.inc | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/packages/libc/src/stdlibh.inc b/packages/libc/src/stdlibh.inc new file mode 100644 index 0000000000..557e98cdb7 --- /dev/null +++ b/packages/libc/src/stdlibh.inc @@ -0,0 +1,210 @@ + +type + + Pdiv_t = ^div_t; + div_t = record + quot : longint; + rem : longint; + end; + + Pldiv_t = ^ldiv_t; + ldiv_t = record + quot : longint; + rem : longint; + end; + + Plldiv_t = ^lldiv_t; + lldiv_t = record + quot : int64; + rem : int64; + end; + +const + RAND_MAX = 2147483647; + EXIT_FAILURE = 1; + EXIT_SUCCESS = 0; + +function MB_CUR_MAX : size_t;cdecl; external clib name '__ctype_get_mb_cur_max'; +function __ctype_get_mb_cur_max:size_t;cdecl;external clib name '__ctype_get_mb_cur_max'; +function atof(__nptr:Pchar):double;cdecl;external clib name 'atof'; +function atoi(__nptr:Pchar):longint;cdecl;external clib name 'atoi'; +function atol(__nptr:Pchar):longint;cdecl;external clib name 'atol'; +function atoll(__nptr:Pchar):int64;cdecl;external clib name 'atoll'; +function strtod(__nptr:Pchar; __endptr:PPchar):double;cdecl;external clib name 'strtod'; +function strtof(__nptr:Pchar; __endptr:PPchar):double;cdecl;external clib name 'strtof'; +function strtold(NumPtr: PChar; EndPtr: PPChar): Extended; cdecl; external clib name 'strtold'; +function strtol(__nptr:Pchar; __endptr:PPchar; __base:longint):longint;cdecl;external clib name 'strtol'; +function strtoul(__nptr:Pchar; __endptr:PPchar; __base:longint):dword;cdecl;external clib name 'strtoul'; +function strtoq(__nptr:Pchar; __endptr:PPchar; __base:longint):int64;cdecl;external clib name 'strtoq'; +function strtouq(__nptr:Pchar; __endptr:PPchar; __base:longint):qword;cdecl;external clib name 'strtouq'; +function strtoll(__nptr:Pchar; __endptr:PPchar; __base:longint):int64;cdecl;external clib name 'strtoll'; +function strtoull(__nptr:Pchar; __endptr:PPchar; __base:longint):qword;cdecl;external clib name 'strtoull'; +function __strtol_l(__nptr:Pchar; __endptr:PPchar; __base:longint; __loc:__locale_t):longint;cdecl;external clib name '__strtol_l'; +function __strtoul_l(__nptr:Pchar; __endptr:PPchar; __base:longint; __loc:__locale_t):dword;cdecl;external clib name '__strtoul_l'; +function __strtoll_l(__nptr:Pchar; __endptr:PPchar; __base:longint; __loc:__locale_t):int64;cdecl;external clib name '__strtoll_l'; +function __strtoull_l(__nptr:Pchar; __endptr:PPchar; __base:longint; __loc:__locale_t):qword;cdecl;external clib name '__strtoull_l'; +function __strtod_l(__nptr:Pchar; __endptr:PPchar; __loc:__locale_t):double;cdecl;external clib name '__strtod_l'; +function __strtof_l(__nptr:Pchar; __endptr:PPchar; __loc:__locale_t):double;cdecl;external clib name '__strtof_l'; +function __strtold_l(__nptr: PChar; __endptr: PPChar;__loc: __locale_t): Extended; cdecl;external clib name '__strtold_l'; +function __strtod_internal(__nptr:Pchar; __endptr:PPchar; __group:longint):double;cdecl;external clib name '__strtod_internal'; +function __strtof_internal(__nptr:Pchar; __endptr:PPchar; __group:longint):double;cdecl;external clib name '__strtof_internal'; +function __strtold_internal(__nptr: PChar; __endptr: PPChar; __group: longint): Extended; cdecl;external clib name '__strtold_internal'; +function __strtol_internal(__nptr:Pchar; __endptr:PPchar; __base:longint; __group:longint):longint;cdecl;external clib name '__strtol_internal'; +function __strtoul_internal(__nptr:Pchar; __endptr:PPchar; __base:longint; __group:longint):dword;cdecl;external clib name '__strtoul_internal'; +function __strtoll_internal(__nptr:Pchar; __endptr:PPchar; __base:longint; __group:longint):int64;cdecl;external clib name '__strtoll_internal'; +function __strtoull_internal(__nptr:Pchar; __endptr:PPchar; __base:longint; __group:longint):qword;cdecl;external clib name '__strtoull_internal'; +function a64l(__s:Pchar):longint;cdecl;external clib name 'a64l'; +function l64a(N: longint): PChar; cdecl;external clib name 'l64a'; + +function __random:longint;cdecl;external clib name 'random'; +procedure srandom(__seed:dword);cdecl;external clib name 'srandom'; +function initstate(__seed:dword; __statebuf:Pchar; __statelen:size_t):Pchar;cdecl;external clib name 'initstate'; +function setstate(__statebuf:Pchar):Pchar;cdecl;external clib name 'setstate'; + +Type + Prandom_data = ^random_data; + random_data = record + fptr : Pint32_t; + rptr : Pint32_t; + state : Pint32_t; + rand_type : longint; + rand_deg : longint; + rand_sep : longint; + end_ptr : Pint32_t; + end; + + +function random_r(__buf:Prandom_data; __result:Pint32_t):longint;cdecl;external clib name 'random_r'; +function srandom_r(__seed:dword; __buf:Prandom_data):longint;cdecl;external clib name 'srandom_r'; +function initstate_r(__seed:dword; __statebuf:Pchar; __statelen:size_t; __buf:Prandom_data):longint;cdecl;external clib name 'initstate_r'; +function setstate_r(__statebuf:Pchar; __buf:Prandom_data):longint;cdecl;external clib name 'setstate_r'; +function rand:longint;cdecl;external clib name 'rand'; +procedure srand(__seed:dword);cdecl;external clib name 'srand'; +function rand_r(__seed:Pdword):longint;cdecl;external clib name 'rand_r'; +function drand48:double;cdecl;external clib name 'drand48'; + +Type + TRandWordArray = Array[0..2] of word; + +function erand48(var __xsubi: trandwordarray):double;cdecl;external clib name 'erand48'; +function lrand48:longint;cdecl;external clib name 'lrand48'; +function nrand48(var __xsubi: trandwordarray):longint;cdecl;external clib name 'nrand48'; +function mrand48:longint;cdecl;external clib name 'mrand48'; +function jrand48(var __xsubi:trandwordarray):longint;cdecl;external clib name 'jrand48'; +procedure srand48(__seedval:longint);cdecl;external clib name 'srand48'; +function seed48(var __seed16v:trandwordarray):Pword;cdecl;external clib name 'seed48'; +procedure lcong48(var __param:trandwordarray);cdecl;external clib name 'lcong48'; + +type + Pdrand48_data = ^drand48_data; + drand48_data = record + __x : array[0..2] of word; + __old_x : array[0..2] of word; + __c : word; + __init : word; + __a : qword; + end; + +function drand48_r(__buffer:Pdrand48_data; __result:Pdouble):longint;cdecl;external clib name 'drand48_r'; +function erand48_r(var __xsubi: TRandWordArray; __buffer:Pdrand48_data; __result:Pdouble):longint;cdecl;external clib name 'erand48_r'; +function lrand48_r(__buffer:Pdrand48_data; __result:Plongint):longint;cdecl;external clib name 'lrand48_r'; +function nrand48_r(var __xsubi: TRandWordArray; __buffer:Pdrand48_data; __result:Plongint):longint;cdecl;external clib name 'nrand48_r'; +function mrand48_r(__buffer:Pdrand48_data; __result:Plongint):longint;cdecl;external clib name 'mrand48_r'; +function jrand48_r(var __xsubi: TRandWordArray; __buffer:Pdrand48_data; __result:Plongint):longint;cdecl;external clib name 'jrand48_r'; +function srand48_r(__seedval:longint; __buffer:Pdrand48_data):longint;cdecl;external clib name 'srand48_r'; +function seed48_r(var __seed16v: TRandWordArray; __buffer:Pdrand48_data):longint;cdecl;external clib name 'seed48_r'; +function lcong48_r(__param: pword; __buffer:Pdrand48_data):longint;cdecl;external clib name 'lcong48_r'; + +procedure __abort; cdecl; external clib name 'abort'; + +type + TAtExitProc = procedure; cdecl; + TOnExitProc = procedure(status: longint; arg: Pointer); cdecl; + +function atexit(__func:TAtExitProc):longint;cdecl;external clib name 'atexit'; +function on_exit(__func:TOnExitProc; __arg:pointer):longint;cdecl;external clib name 'on_exit'; +procedure __exit(Status: longint); cdecl;external clib name 'exit'; +//procedure _Exit (__status : longint);cdecl; external clib name '_exit'; + +function getenv(__name:Pchar):Pchar;cdecl;external clib name 'getenv'; +function __secure_getenv(__name:Pchar):Pchar;cdecl;external clib name '__secure_getenv'; +function putenv(__string:Pchar):longint;cdecl;external clib name 'putenv'; +function setenv(__name:Pchar; __value:Pchar; __replace:longint):longint;cdecl;external clib name 'setenv'; +function unsetenv(__name:Pchar):longint;cdecl;external clib name 'unsetenv'; +function clearenv:longint;cdecl;external clib name 'clearenv'; +function mktemp(__template:Pchar):Pchar;cdecl;external clib name 'mktemp'; +function mkstemp(__template:Pchar):longint;cdecl;external clib name 'mkstemp'; +function mkstemp64(__template:Pchar):longint;cdecl;external clib name 'mkstemp64'; +function mkdtemp(__template:Pchar):Pchar;cdecl;external clib name 'mkdtemp'; +// **************** detect whether system symbol is hidden. Should be as of 1.9.4 +// **************** End of detect +function __system(__command:Pchar):longint;cdecl;external clib name 'system'; +function system(__command:Pchar):longint;cdecl;external clib name 'system'; +function canonicalize_file_name(__name:Pchar):Pchar;cdecl;external clib name 'canonicalize_file_name'; +function realpath(__name:Pchar; __resolved:Pchar):Pchar;cdecl;external clib name 'realpath'; + +Type + __compar_fn_t = function (_para1:pointer; _para2:pointer):longint;cdecl; + comparison_fn_t = __compar_fn_t; + +function bsearch(__key:pointer; __base:pointer; __nmemb:size_t; __size:size_t; __compar:__compar_fn_t):pointer;cdecl;external clib name 'bsearch'; +procedure qsort(__base:pointer; __nmemb:size_t; __size:size_t; __compar:__compar_fn_t);cdecl;external clib name 'qsort'; + +function __abs(X: longint): longint; cdecl;external clib name 'abs'; +function labs(X: Longint): Longint; cdecl;external clib name 'labs'; +function llabs(X: Int64): Int64; cdecl;external clib name 'llabs'; +function __div(Numer: longint; Denom: longint): div_t; cdecl;external clib name 'div'; +function ldiv(Numer: Longint; Denom: Longint): ldiv_t; cdecl;external clib name 'ldiv'; +function lldiv(Numer: Int64; Denom: Int64): lldiv_t; cdecl;external clib name 'lldiv'; + +function ecvt(__value:double; __ndigit:longint; __decpt:Plongint; __sign:Plongint):Pchar;cdecl;external clib name 'ecvt'; +function fcvt(__value:double; __ndigit:longint; __decpt:Plongint; __sign:Plongint):Pchar;cdecl;external clib name 'fcvt'; +function gcvt(__value:double; __ndigit:longint; __buf:Pchar):Pchar;cdecl;external clib name 'gcvt'; +function qecvt(__value: extended; __ndigit: longint; __decpt: Plongint; __sign: plongint): PChar; cdecl;external clib name 'qecvt'; +function qfcvt(__value: extended; __ndigit: longint; __decpt: plongint; __sign: plongint): PChar; cdecl;external clib name 'qfcvt'; +function qgcvt(__value: extended; __ndigit: longint; __buf: PChar): PChar; cdecl;external clib name 'qgcvt'; + +function ecvt_r(__value:double; __ndigit:longint; __decpt:Plongint; __sign:Plongint; __buf:Pchar; __len:size_t):longint;cdecl;external clib name 'ecvt_r'; +function fcvt_r(__value:double; __ndigit:longint; __decpt:Plongint; __sign:Plongint; __buf:Pchar; __len:size_t):longint;cdecl;external clib name 'fcvt_r'; +function qecvt_r(Value: Extended; __ndigit: longint; __decpt: Plongint; __sign: plongint; Buf: PChar; Len: size_t): longint; cdecl;external clib name 'qecvt_r'; +function qfcvt_r(Value: Extended; __ndigit: longint; __decpt: plongint; __sign: plongint; Buf: PChar; Len: size_t): longint; cdecl;external clib name 'qfcvt_r'; + +function mblen(__s:Pchar; __n:size_t):longint;cdecl;external clib name 'mblen'; +function mbtowc(__pwc:Pwchar_t; __s:Pchar; __n:size_t):longint;cdecl;external clib name 'mbtowc'; +function wctomb(__s:Pchar; __wchar:wchar_t):longint;cdecl;external clib name 'wctomb'; +function mbstowcs(__pwcs:Pwchar_t; __s:Pchar; __n:size_t):size_t;cdecl;external clib name 'mbstowcs'; +function wcstombs(__s:Pchar; __pwcs:Pwchar_t; __n:size_t):size_t;cdecl;external clib name 'wcstombs'; +function rpmatch(__response:Pchar):longint;cdecl;external clib name 'rpmatch'; +function getsubopt(__optionp:PPchar; __tokens:PPchar; __valuep:PPchar):longint;cdecl;external clib name 'getsubopt'; +procedure setkey(__key:Pchar);cdecl;external clib name 'setkey'; +function posix_openpt(__oflag:longint):longint;cdecl;external clib name 'posix_openpt'; +function grantpt(__fd:longint):longint;cdecl;external clib name 'grantpt'; +function unlockpt(__fd:longint):longint;cdecl;external clib name 'unlockpt'; +function ptsname(__fd:longint):Pchar;cdecl;external clib name 'ptsname'; +function ptsname_r(__fd:longint; __buf:Pchar; __buflen:size_t):longint;cdecl;external clib name 'ptsname_r'; +function getpt:longint;cdecl;external clib name 'getpt'; +function getloadavg(__loadavg:array of double; __nelem:longint):longint;cdecl;external clib name 'getloadavg'; + + +{ --------------------------------------------------------------------- + Borland compatibility types + ---------------------------------------------------------------------} + +Type + TRandomData = random_data; + PRandomData = ^TRandomData; + + TDrand48Data = drand48_data; + PDrand48Data = ^TDrand48Data; + +function erand48(__xsubi: pword):double;cdecl;external clib name 'erand48'; +function nrand48(__xsubi: pword):longint;cdecl;external clib name 'nrand48'; +function jrand48(__xsubi: pword):longint;cdecl;external clib name 'jrand48'; +function seed48(__seed16v: pword):Pword;cdecl;external clib name 'seed48'; +procedure lcong48(__param: pword);cdecl;external clib name 'lcong48'; + +function erand48_r(__xsubi:pword; __buffer:Pdrand48_data; __result:Pdouble):longint;cdecl;external clib name 'erand48_r'; +function nrand48_r(__xsubi:pword; __buffer:Pdrand48_data; __result:Plongint):longint;cdecl;external clib name 'nrand48_r'; +function jrand48_r(__xsubi:pword; __buffer:Pdrand48_data; __result:Plongint):longint;cdecl;external clib name 'jrand48_r'; +function seed48_r(__seed16v:pword; __buffer:Pdrand48_data):longint;cdecl;external clib name 'seed48_r'; + |