12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- MODULE FoxGenericObjectFile;
- 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;
- CONST
- Version = 6;
- Trace = FALSE;
- TraceAliases = FALSE;
- WarnDuplicateFingerprints = FALSE;
- PatchFixups = TRUE;
- AliasOnlyExported = TRUE;
- DetailedStatistics = FALSE;
- TYPE
- SectionStat = POINTER TO RECORD
- name: ARRAY 64 OF CHAR;
- entries: LONGINT;
- size: LONGINT;
- END;
- ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
- VAR
- binary: BOOLEAN;
- mergeSections: BOOLEAN;
- PROCEDURE ^ & InitObjectFileFormat;
- PROCEDURE ^ Export*(module: Formats.GeneratedModule; symbolFileFormat: Formats.SymbolFileFormat): BOOLEAN;
- PROCEDURE ^ DefineOptions*(options: Options.Options);
- PROCEDURE ^ GetOptions*(options: Options.Options);
- PROCEDURE ^ DefaultSymbolFileFormat*(): Formats.SymbolFileFormat;
- END ObjectFileFormat;
- VAR
- statModules, statModulesSize: LONGINT;
- statHeaders, statHeadersSize: LONGINT;
- statPool: Basic.HashTableInt;
- PROCEDURE ^ GetFingerprint(section: Sections.Section; fingerprinter: Fingerprinter.Fingerprinter): ObjectFile.Fingerprint;
- PROCEDURE ^ CheckAlias(sections: Sections.SectionList; VAR identifier: ObjectFile.Identifier; VAR offset: LONGINT);
- PROCEDURE ^ CopyFixups(sections: Sections.SectionList; from, to: BinaryCode.Section; offset: LONGINT);
- PROCEDURE ^ UpdateAliases(section: BinaryCode.Section; fingerprinter: Fingerprinter.Fingerprinter);
- PROCEDURE ^ Get*(): Formats.ObjectFileFormat;
- PROCEDURE ^ ReadHeader(reader: Streams.Reader; VAR binary: BOOLEAN; VAR poolMap: ObjectFile.PoolMap; VAR offers, requires: ObjectFile.NameList): WORD;
- PROCEDURE ^ WriteHeader(writer: Streams.Writer; binary: BOOLEAN; sections: Sections.SectionList; VAR poolMap: ObjectFile.PoolMap; offers, requires: ObjectFile.NameList; fingerprinter: Fingerprinter.Fingerprinter);
- PROCEDURE ^ GCD(a, b: LONGINT): LONGINT;
- PROCEDURE ^ SCM(a, b: LONGINT): LONGINT;
- PROCEDURE ^ CommonAlignment(a, b: LONGINT): LONGINT;
- PROCEDURE ^ Show*(context: Commands.Context);
- PROCEDURE ^ MakeLibrary*(context: Commands.Context);
- PROCEDURE ^ Statistics*;
- PROCEDURE ^ ResetStatistics*;
- BEGIN
- END FoxGenericObjectFile.
|