83 references to TextSegment
Mono.Cecil (83)
Mono.Cecil.Cil\CodeWriter.cs (1)
35
this.code_base = metadata.text_map.GetRVA (
TextSegment
.Code);
Mono.Cecil.Cil\PortablePdb.cs (1)
495
writer.MoveToRVA (
TextSegment
.PdbHeap);
Mono.Cecil.PE\ImageWriter.cs (67)
234
var startub_stub = text_map.GetRange (
TextSegment
.StartupStub);
290
WriteDataDirectory (text_map.GetDataDirectory (
TextSegment
.ImportDirectory)); // ImportTable
302
if (text_map.GetLength (
TextSegment
.DebugDirectory) > 0) {
303
WriteUInt32 (text_map.GetRVA (
TextSegment
.DebugDirectory));
313
WriteDataDirectory (text_map.GetDataDirectory (
TextSegment
.ImportAddressTable)); // IAT
315
WriteDataDirectory (text_map.GetDataDirectory (
TextSegment
.CLIHeader)); // CLIHeader
384
internal void MoveToRVA (
TextSegment
segment)
427
WriteRVA (text_map.GetRVA (
TextSegment
.ImportHintNameTable));
437
WriteUInt32 (text_map.GetRVA (
TextSegment
.MetadataHeader));
441
WriteDataDirectory (text_map.GetDataDirectory (
TextSegment
.Resources));
442
WriteDataDirectory (text_map.GetDataDirectory (
TextSegment
.StrongNameSignature));
450
MoveToRVA (
TextSegment
.Code);
455
MoveToRVA (
TextSegment
.Resources);
461
MoveToRVA (
TextSegment
.Data);
470
MoveToRVA (
TextSegment
.MetadataHeader);
476
if (text_map.GetLength (
TextSegment
.DebugDirectory) > 0) {
477
MoveToRVA (
TextSegment
.DebugDirectory);
485
MoveToRVA (
TextSegment
.ImportDirectory);
489
MoveToRVA (
TextSegment
.StartupStub);
495
return text_map.GetRVA (
TextSegment
.DebugDirectory) - text_map.GetRVA (
TextSegment
.MetadataHeader);
511
uint offset = text_map.GetRVA (
TextSegment
.TableHeap) - text_map.GetRVA (
TextSegment
.MetadataHeader);
513
WriteStreamHeader (ref offset,
TextSegment
.TableHeap, "#~");
514
WriteStreamHeader (ref offset,
TextSegment
.StringHeap, "#Strings");
515
WriteStreamHeader (ref offset,
TextSegment
.UserStringHeap, "#US");
516
WriteStreamHeader (ref offset,
TextSegment
.GuidHeap, "#GUID");
517
WriteStreamHeader (ref offset,
TextSegment
.BlobHeap, "#Blob");
518
WriteStreamHeader (ref offset,
TextSegment
.PdbHeap, "#Pdb");
532
void WriteStreamHeader (ref uint offset,
TextSegment
heap, string name)
570
WriteHeap (
TextSegment
.TableHeap, metadata.table_heap);
571
WriteHeap (
TextSegment
.StringHeap, metadata.string_heap);
572
WriteHeap (
TextSegment
.UserStringHeap, metadata.user_string_heap);
573
WriteHeap (
TextSegment
.GuidHeap, metadata.guid_heap);
574
WriteHeap (
TextSegment
.BlobHeap, metadata.blob_heap);
575
WriteHeap (
TextSegment
.PdbHeap, metadata.pdb_heap);
578
void WriteHeap (
TextSegment
heap, HeapBuffer buffer)
616
WriteUInt32 (text_map.GetRVA (
TextSegment
.ImportDirectory) + 40); // ImportLookupTable
619
WriteUInt32 (text_map.GetRVA (
TextSegment
.ImportHintNameTable) + 14);
620
WriteUInt32 (text_map.GetRVA (
TextSegment
.ImportAddressTable));
624
WriteUInt32 (text_map.GetRVA (
TextSegment
.ImportHintNameTable));
627
MoveToRVA (
TextSegment
.ImportHintNameTable);
648
WriteUInt32 ((uint) image_base + text_map.GetRVA (
TextSegment
.ImportAddressTable));
665
var reloc_rva = text_map.GetRVA (
TextSegment
.StartupStub);
699
map.AddMap (
TextSegment
.Code, metadata.code.length, !pe64 ? 4 : 16);
700
map.AddMap (
TextSegment
.Resources, metadata.resources.length, 8);
701
map.AddMap (
TextSegment
.Data, metadata.data.length, metadata.data.BufferAlign);
703
metadata.table_heap.FixupData (map.GetRVA (
TextSegment
.Data));
704
map.AddMap (
TextSegment
.StrongNameSignature, GetStrongNameLength (), 4);
711
var data_address = (int) map.GetNextRVA (
TextSegment
.BlobHeap) + directories_len;
728
map.AddMap (
TextSegment
.DebugDirectory, debug_dir_len, 4);
731
var start = map.GetNextRVA (
TextSegment
.DebugDirectory);
732
map.AddMap (
TextSegment
.ImportDirectory, new Range (start, 0));
733
map.AddMap (
TextSegment
.ImportHintNameTable, new Range (start, 0));
734
map.AddMap (
TextSegment
.StartupStub, new Range (start, 0));
738
RVA import_dir_rva = map.GetNextRVA (
TextSegment
.DebugDirectory);
748
map.AddMap (
TextSegment
.ImportDirectory, new Range (import_dir_rva, import_dir_len));
749
map.AddMap (
TextSegment
.ImportHintNameTable, new Range (import_hnt_rva, 0));
750
map.AddMap (
TextSegment
.StartupStub, new Range (startup_stub_rva, GetStartupStubLength ()));
757
map.AddMap (
TextSegment
.MetadataHeader, GetMetadataHeaderLength (module.RuntimeVersion));
758
map.AddMap (
TextSegment
.TableHeap, metadata.table_heap.length, 4);
759
map.AddMap (
TextSegment
.StringHeap, metadata.string_heap.length, 4);
760
map.AddMap (
TextSegment
.UserStringHeap, metadata.user_string_heap.IsEmpty ? 0 : metadata.user_string_heap.length, 4);
761
map.AddMap (
TextSegment
.GuidHeap, metadata.guid_heap.length, 4);
762
map.AddMap (
TextSegment
.BlobHeap, metadata.blob_heap.IsEmpty ? 0 : metadata.blob_heap.length, 4);
763
map.AddMap (
TextSegment
.PdbHeap, metadata.pdb_heap == null ? 0 : metadata.pdb_heap.length, 4);
819
return text_map.GetDataDirectory (
TextSegment
.StrongNameSignature);
Mono.Cecil.PE\TextMap.cs (10)
46
public void AddMap (
TextSegment
segment, int length)
57
public void AddMap (
TextSegment
segment, int length, int align)
78
public void AddMap (
TextSegment
segment, Range range)
83
public Range GetRange (
TextSegment
segment)
88
public DataDirectory GetDataDirectory (
TextSegment
segment)
95
public RVA GetRVA (
TextSegment
segment)
100
public RVA GetNextRVA (
TextSegment
segment)
106
public int GetLength (
TextSegment
segment)
111
RVA GetStart (
TextSegment
segment)
125
var range = map [(int)
TextSegment
.StartupStub];
Mono.Cecil\AssemblyWriter.cs (4)
175
writer.MoveToRVA (
TextSegment
.GuidHeap);
988
map.AddMap (
TextSegment
.ImportAddressTable, module.Architecture == TargetArchitecture.I386 ? 8 : 0);
989
map.AddMap (
TextSegment
.CLIHeader, 0x48, 8);
994
map.AddMap (
TextSegment
.Code, 0, !pe64 ? 4 : 16);