dllist.pp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. unit dllist;
  2. interface
  3. {$linklib pq}
  4. { Pointers to basic pascal types, inserted by h2pas conversion program.}
  5. Type
  6. PLongint = ^Longint;
  7. PByte = ^Byte;
  8. PWord = ^Word;
  9. PINteger = ^Integer;
  10. PCardinal = ^Cardinal;
  11. PReal = ^Real;
  12. PDouble = ^Double;
  13. { next element }
  14. { previous element }
  15. { value of the element }
  16. { what list this element is in }
  17. type
  18. { Pointer types }
  19. PDllist= ^TDllist;
  20. PDlelem= ^TDlelem;
  21. TDlelem = record
  22. dle_next : PDlelem;
  23. dle_prev : PDlElem;
  24. dle_val : pointer;
  25. dle_list : PDllist;
  26. end;
  27. TDllist = record
  28. dll_head : PDlelem;
  29. dll_tail : PDlelem;
  30. end;
  31. function DLNewList:PDllist; cdecl;
  32. procedure DLFreeList(_para1:PDllist); cdecl;
  33. function DLNewElem(val : pointer) :PDlelem; cdecl;
  34. procedure DLFreeElem(_para1:PDlelem); cdecl;
  35. function DLGetHead(_para1:PDllist):PDlelem; cdecl;
  36. function DLGetTail(_para1:PDllist):PDlelem; cdecl;
  37. function DLRemTail(l:PDllist):PDlelem; cdecl;
  38. function DLGetPred(_para1:PDlelem):PDlelem; cdecl;
  39. function DLGetSucc(_para1:PDlelem):PDlelem; cdecl;
  40. procedure DLRemove(_para1:PDlelem); cdecl;
  41. procedure DLAddHead(list:PDllist; node:PDlelem);cdecl;
  42. procedure DLAddTail(list:PDllist; node:PDlelem);cdecl;
  43. function DLRemHead(list:PDllist):PDlelem;cdecl;
  44. { Macro translated }
  45. Function DLE_VAL(elem : PDlelem) : pointer;
  46. implementation
  47. function DLNewList:PDllist;cdecl; external;
  48. procedure DLFreeList(_para1:PDllist);cdecl; external;
  49. function DLNewElem(val : pointer) :PDlelem;cdecl;external;
  50. procedure DLFreeElem(_para1:PDlelem);cdecl; external;
  51. function DLGetHead(_para1:PDllist):PDlelem;cdecl; external;
  52. function DLGetTail(_para1:PDllist):PDlelem;cdecl; external;
  53. function DLRemTail(l:PDllist):PDlelem;cdecl; external;
  54. function DLGetPred(_para1:PDlelem):PDlelem;cdecl; external;
  55. function DLGetSucc(_para1:PDlelem):PDlelem;cdecl; external;
  56. procedure DLRemove(_para1:PDlelem);cdecl; external;
  57. procedure DLAddHead(list:PDllist; node:PDlelem);cdecl; external;
  58. procedure DLAddTail(list:PDllist; node:PDlelem);cdecl; external;
  59. function DLRemHead(list:PDllist):PDlelem;cdecl; external;
  60. Function DLE_VAL(elem : PDlelem) : pointer;
  61. begin
  62. DLE_VAL:=elem^.dle_val
  63. end;
  64. end.