FoxGenericObjectFile.SymU 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. MODULE FoxGenericObjectFile;
  2. IMPORT StringPool, Streams, Commands, Basic := FoxBasic, Formats := FoxFormats, Sections := FoxSections, IntermediateCode := FoxIntermediateCode, SyntaxTree := FoxSyntaxTree, BinaryCode := FoxBinaryCode, Fingerprinter := FoxFingerprinter, Files, Options, ObjectFile, SymbolFileFormat := FoxTextualSymbolFile, Strings, KernelLog, D := Debugging;
  3. CONST
  4. Version = 6;
  5. Trace = FALSE;
  6. TraceAliases = FALSE;
  7. WarnDuplicateFingerprints = FALSE;
  8. PatchFixups = TRUE;
  9. AliasOnlyExported = TRUE;
  10. DetailedStatistics = FALSE;
  11. TYPE
  12. SectionStat = POINTER TO RECORD
  13. name: ARRAY 64 OF CHAR;
  14. entries: LONGINT;
  15. size: LONGINT;
  16. END;
  17. ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
  18. VAR
  19. binary: BOOLEAN;
  20. mergeSections: BOOLEAN;
  21. PROCEDURE ^ & InitObjectFileFormat;
  22. PROCEDURE ^ Export*(module: Formats.GeneratedModule; symbolFileFormat: Formats.SymbolFileFormat): BOOLEAN;
  23. PROCEDURE ^ DefineOptions*(options: Options.Options);
  24. PROCEDURE ^ GetOptions*(options: Options.Options);
  25. PROCEDURE ^ DefaultSymbolFileFormat*(): Formats.SymbolFileFormat;
  26. END ObjectFileFormat;
  27. VAR
  28. statModules, statModulesSize: LONGINT;
  29. statHeaders, statHeadersSize: LONGINT;
  30. statPool: Basic.HashTableInt;
  31. PROCEDURE ^ GetFingerprint(section: Sections.Section; fingerprinter: Fingerprinter.Fingerprinter): ObjectFile.Fingerprint;
  32. PROCEDURE ^ CheckAlias(sections: Sections.SectionList; VAR identifier: ObjectFile.Identifier; VAR offset: LONGINT);
  33. PROCEDURE ^ CopyFixups(sections: Sections.SectionList; from, to: BinaryCode.Section; offset: LONGINT);
  34. PROCEDURE ^ UpdateAliases(section: BinaryCode.Section; fingerprinter: Fingerprinter.Fingerprinter);
  35. PROCEDURE ^ Get*(): Formats.ObjectFileFormat;
  36. PROCEDURE ^ ReadHeader(reader: Streams.Reader; VAR binary: BOOLEAN; VAR poolMap: ObjectFile.PoolMap; VAR offers, requires: ObjectFile.NameList): WORD;
  37. PROCEDURE ^ WriteHeader(writer: Streams.Writer; binary: BOOLEAN; sections: Sections.SectionList; VAR poolMap: ObjectFile.PoolMap; offers, requires: ObjectFile.NameList; fingerprinter: Fingerprinter.Fingerprinter);
  38. PROCEDURE ^ GCD(a, b: LONGINT): LONGINT;
  39. PROCEDURE ^ SCM(a, b: LONGINT): LONGINT;
  40. PROCEDURE ^ CommonAlignment(a, b: LONGINT): LONGINT;
  41. PROCEDURE ^ Show*(context: Commands.Context);
  42. PROCEDURE ^ MakeLibrary*(context: Commands.Context);
  43. PROCEDURE ^ Statistics*;
  44. PROCEDURE ^ ResetStatistics*;
  45. BEGIN
  46. END FoxGenericObjectFile.