Heap.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /* voc 2.1.0 [2017/07/20]. Bootstrapping compiler for address size 8, alignment 8. tsSF */
  2. #ifndef Heap__h
  3. #define Heap__h
  4. #include "SYSTEM.h"
  5. typedef
  6. struct Heap_CmdDesc *Heap_Cmd;
  7. typedef
  8. CHAR Heap_CmdName[24];
  9. typedef
  10. void (*Heap_Command)(void);
  11. typedef
  12. struct Heap_CmdDesc {
  13. Heap_Cmd next;
  14. Heap_CmdName name;
  15. Heap_Command cmd;
  16. } Heap_CmdDesc;
  17. typedef
  18. void (*Heap_EnumProc)(void(*)(SYSTEM_PTR));
  19. typedef
  20. void (*Heap_Finalizer)(SYSTEM_PTR);
  21. typedef
  22. struct Heap_ModuleDesc *Heap_Module;
  23. typedef
  24. CHAR Heap_ModuleName[20];
  25. typedef
  26. struct Heap_ModuleDesc {
  27. Heap_Module next;
  28. Heap_ModuleName name;
  29. INT32 refcnt;
  30. Heap_Cmd cmds;
  31. INT32 types;
  32. Heap_EnumProc enumPtrs;
  33. char _prvt0[8];
  34. } Heap_ModuleDesc;
  35. import SYSTEM_PTR Heap_modules;
  36. import INT32 Heap_allocated;
  37. import INT32 Heap_heap;
  38. import INT32 Heap_heapsize, Heap_heapMinExpand;
  39. import INT16 Heap_FileCount;
  40. import ADDRESS *Heap_ModuleDesc__typ;
  41. import ADDRESS *Heap_CmdDesc__typ;
  42. import void Heap_FINALL (void);
  43. import INT32 Heap_FreeModule (CHAR *name, ADDRESS name__len);
  44. import void Heap_GC (BOOLEAN markStack);
  45. import void Heap_INCREF (Heap_Module m);
  46. import void Heap_InitHeap (void);
  47. import void Heap_Lock (void);
  48. import SYSTEM_PTR Heap_NEWBLK (INT32 size);
  49. import SYSTEM_PTR Heap_NEWREC (INT32 tag);
  50. import void Heap_REGCMD (Heap_Module m, Heap_CmdName name, Heap_Command cmd);
  51. import SYSTEM_PTR Heap_REGMOD (Heap_ModuleName name, Heap_EnumProc enumPtrs);
  52. import void Heap_REGTYP (Heap_Module m, INT32 typ);
  53. import void Heap_RegisterFinalizer (SYSTEM_PTR obj, Heap_Finalizer finalize);
  54. import void Heap_Unlock (void);
  55. import void *Heap__init(void);
  56. #endif // Heap