MCPcopy Create free account
hub / github.com/PCSX2/pcsx2 / get_virtual

Method get_virtual

3rdparty/ccc/src/ccc/elf.cpp:97–114  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

95}
96
97std::optional<std::span<const u8>> ElfFile::get_virtual(u32 address, u32 size) const
98{
99 u32 end_address = address + size;
100
101 if(end_address >= address) {
102 for(const ElfProgramHeader& segment : segments) {
103 if(address >= segment.vaddr && end_address <= segment.vaddr + segment.filesz) {
104 size_t begin_offset = segment.offset + (address - segment.vaddr);
105 size_t end_offset = begin_offset + size;
106 if(begin_offset <= image.size() && end_offset <= image.size()) {
107 return std::span<const u8>(image.data() + begin_offset, image.data() + end_offset);
108 }
109 }
110 }
111 }
112
113 return std::nullopt;
114}
115
116bool ElfFile::copy_virtual(u8* dest, u32 address, u32 size) const
117{

Callers 2

ReadBytesMethod · 0.80
CompareBytesMethod · 0.80

Calls 2

sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected