| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- (* Release 3.10 *)
- (*-------------------------------------------------------------------------*
- * *
- * ALLOC.DEF - Modula-2 interface to ALLOC.H *
- * *
- * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
- * All Rights Reserved *
- * *
- *--------------------------------------------------------------------------*)
- (*# project("#set tsc='on'") *)
- (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *)
- (*# module(implementation=>off, init_code=>off) *)
- (*# name(prefix=>c) *)
- DEFINITION MODULE alloc;
- CONST
- _HEAPOK = 0;
- _HEAPEMPTY = -1;
- _HEAPBADBEGIN = -2;
- _HEAPBADNODE = -3;
- _HEAPOVERFLOW = -4;
- _HEAPEND = -5;
- _HEAPBADPTR = -6;
- TYPE
- _heapinfoptr = POINTER TO _heapinfo;
- _heapinfo = RECORD
- _pentry : _heapinfoptr;
- _size : CARDINAL;
- _useflag : CARDINAL;
- END;
- PROCEDURE calloc(_num,_size: CARDINAL): ADDRESS;
- PROCEDURE free(_block: ADDRESS);
- PROCEDURE malloc(_size: CARDINAL): ADDRESS;
- PROCEDURE realloc(_block: ADDRESS; _size: CARDINAL): ADDRESS;
- PROCEDURE _msize(_buffer: ADDRESS): CARDINAL;
- PROCEDURE _memmax(): CARDINAL;
- PROCEDURE _memavl(): CARDINAL;
- PROCEDURE _heapchk(): INTEGER;
- PROCEDURE _heapset(_fill: CARDINAL): INTEGER;
- PROCEDURE _heapwalk(VAR _entry : _heapinfo): INTEGER;
- PROCEDURE _expand(buffer: ADDRESS; _size: CARDINAL): ADDRESS;
- PROCEDURE coreleft(): CARDINAL;
- PROCEDURE _freect(_size: CARDINAL): CARDINAL;
- (*# data(near_ptr=>on) *)
- TYPE
- _nheapinfoptr = POINTER TO _nheapinfo;
- _nheapinfo = RECORD
- _pentry : _nheapinfoptr;
- _size : CARDINAL;
- _useflag : CARDINAL;
- END;
- PROCEDURE _ncalloc(num,_size: CARDINAL): NearADDRESS;
- PROCEDURE _nfree(_block: NearADDRESS);
- PROCEDURE _nmalloc(_size: CARDINAL): NearADDRESS;
- PROCEDURE _nrealloc(_block: NearADDRESS; _size: CARDINAL): NearADDRESS;
- PROCEDURE _nmsize(_buffer: NearADDRESS): CARDINAL;
- PROCEDURE _nheapchk(): INTEGER;
- PROCEDURE _nheapset(_fill: CARDINAL): INTEGER;
- PROCEDURE _nheapwalk(VAR _entry : _nheapinfo): INTEGER;
- PROCEDURE _nexpand(buffer: NearADDRESS; _size: CARDINAL): NearADDRESS;
- (*# data(near_ptr=>off) *)
- TYPE
- _fheapinfoptr = POINTER TO _fheapinfo;
- _fheapinfo = RECORD
- _pentry : _fheapinfoptr;
- _size : CARDINAL;
- _useflag : CARDINAL;
- END;
- PROCEDURE _fcalloc(num,_size: CARDINAL): FarADDRESS;
- PROCEDURE _ffree(_block: FarADDRESS);
- PROCEDURE _fmalloc(_size: CARDINAL): FarADDRESS;
- PROCEDURE _frealloc(_block: FarADDRESS; _size: CARDINAL): FarADDRESS;
- PROCEDURE _fmsize(_buffer: FarADDRESS): CARDINAL;
- PROCEDURE _fheapchk(): INTEGER;
- PROCEDURE _fheapset(_fill: CARDINAL): INTEGER;
- PROCEDURE _fheapwalk(VAR _entry : _fheapinfo): INTEGER;
- PROCEDURE _fexpand(buffer: FarADDRESS; _size: CARDINAL): FarADDRESS;
- (* **** Huge objects still need to be handled. *)
- PROCEDURE hfree(_block: FarADDRESS);
- PROCEDURE halloc(_size: LONGCARD): FarADDRESS;
- PROCEDURE hrealloc(_block: FarADDRESS; _size: LONGCARD): FarADDRESS;
- VAR
- _MaxReallocHugeSegments: CARDINAL;
- PROCEDURE nearcoreleft(): CARDINAL;
- PROCEDURE farcoreleft(): LONGCARD;
- CONST
- farmalloc ::= _fmalloc;
- farcalloc ::= _fcalloc;
- farfree ::= _ffree;
- farrealloc ::= _frealloc;
- END alloc.
|