mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-04 03:59:42 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
unit dllist;
 | 
						|
 | 
						|
interface
 | 
						|
 | 
						|
{$linklib pq}
 | 
						|
 | 
						|
{ Pointers to basic pascal types, inserted by h2pas conversion program.}
 | 
						|
Type
 | 
						|
  PLongint  = ^Longint;
 | 
						|
  PByte     = ^Byte;
 | 
						|
  PWord     = ^Word;
 | 
						|
  PINteger  = ^Integer;
 | 
						|
  PCardinal = ^Cardinal;
 | 
						|
  PReal     = ^Real;
 | 
						|
  PDouble   = ^Double;
 | 
						|
 | 
						|
{ next element }
 | 
						|
{ previous element }
 | 
						|
{ value of the element }
 | 
						|
{ what list this element is in }
 | 
						|
 | 
						|
type
 | 
						|
   { Pointer types } 
 | 
						|
   PDllist= ^TDllist;
 | 
						|
   PDlelem= ^TDlelem;
 | 
						|
 | 
						|
   TDlelem = record
 | 
						|
        dle_next : PDlelem;
 | 
						|
        dle_prev : PDlElem;
 | 
						|
        dle_val : pointer;
 | 
						|
        dle_list : PDllist;
 | 
						|
     end;
 | 
						|
 | 
						|
   TDllist = record
 | 
						|
        dll_head : PDlelem;
 | 
						|
        dll_tail : PDlelem;
 | 
						|
     end;
 | 
						|
 | 
						|
function  DLNewList:PDllist; cdecl;
 | 
						|
procedure DLFreeList(_para1:PDllist); cdecl;
 | 
						|
function  DLNewElem(val : pointer) :PDlelem; cdecl;
 | 
						|
procedure DLFreeElem(_para1:PDlelem); cdecl;
 | 
						|
function  DLGetHead(_para1:PDllist):PDlelem; cdecl;
 | 
						|
function  DLGetTail(_para1:PDllist):PDlelem; cdecl;
 | 
						|
function  DLRemTail(l:PDllist):PDlelem; cdecl;
 | 
						|
function  DLGetPred(_para1:PDlelem):PDlelem; cdecl;
 | 
						|
function  DLGetSucc(_para1:PDlelem):PDlelem; cdecl;
 | 
						|
procedure DLRemove(_para1:PDlelem); cdecl;
 | 
						|
procedure DLAddHead(list:PDllist; node:PDlelem);cdecl;
 | 
						|
procedure DLAddTail(list:PDllist; node:PDlelem);cdecl;
 | 
						|
function  DLRemHead(list:PDllist):PDlelem;cdecl;
 | 
						|
 | 
						|
{ Macro translated }
 | 
						|
Function  DLE_VAL(elem : PDlelem) : pointer; 
 | 
						|
 | 
						|
implementation
 | 
						|
 | 
						|
 | 
						|
function  DLNewList:PDllist;cdecl; external;
 | 
						|
procedure DLFreeList(_para1:PDllist);cdecl; external;
 | 
						|
function  DLNewElem(val : pointer) :PDlelem;cdecl;external;
 | 
						|
procedure DLFreeElem(_para1:PDlelem);cdecl; external;
 | 
						|
function  DLGetHead(_para1:PDllist):PDlelem;cdecl; external;
 | 
						|
function  DLGetTail(_para1:PDllist):PDlelem;cdecl; external;
 | 
						|
function  DLRemTail(l:PDllist):PDlelem;cdecl; external;
 | 
						|
function  DLGetPred(_para1:PDlelem):PDlelem;cdecl; external;
 | 
						|
function  DLGetSucc(_para1:PDlelem):PDlelem;cdecl; external;
 | 
						|
procedure DLRemove(_para1:PDlelem);cdecl; external;
 | 
						|
procedure DLAddHead(list:PDllist; node:PDlelem);cdecl; external;
 | 
						|
procedure DLAddTail(list:PDllist; node:PDlelem);cdecl; external;
 | 
						|
function  DLRemHead(list:PDllist):PDlelem;cdecl; external;
 | 
						|
 | 
						|
Function DLE_VAL(elem : PDlelem) : pointer;
 | 
						|
begin
 | 
						|
  DLE_VAL:=elem^.dle_val
 | 
						|
end;
 | 
						|
 | 
						|
end.
 |