asmjit::Section Class Reference

Section entry.

Public Members

Members

Member Functions

Accessors

Member Function Documentation

uint32_t Section::id() constnoexcept

Returns the section id.

const char* Section::name() constnoexcept

Returns the section name, as a null terminated string.

uint8_t* Section::data()noexcept[1/2]

Returns the section data.

const uint8_t* Section::data() constnoexcept[2/2]

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

SectionFlags Section::flags() constnoexcept

Returns the section flags.

bool Section::hasFlag(SectionFlags flag) constnoexcept

Tests whether the section has the given flag.

void Section::addFlags(SectionFlags flags)noexcept

Adds flags to the section flags.

void Section::clearFlags(SectionFlags flags)noexcept

Removes flags from the section flags.

uint32_t Section::alignment() constnoexcept

Returns the minimum section alignment.

void Section::setAlignment(uint32_t alignment)noexcept

Sets the minimum section alignment.

int32_t Section::order() constnoexcept

Returns the section order, which has a higher priority than section id.

uint64_t Section::offset() constnoexcept

Returns the section offset, relative to base.

void Section::setOffset(uint64_t offset)noexcept

Set the section offset.

uint64_t Section::virtualSize() constnoexcept

Returns the virtual size of the section.

Virtual size is initially zero and is never changed by AsmJit. It's normal if virtual size is smaller than size returned by bufferSize() as the buffer stores real data emitted by assemblers or appended by users.

Use realSize() to get the real and final size of this section.

void Section::setVirtualSize(uint64_t virtualSize)noexcept

Sets the virtual size of the section.

size_t Section::bufferSize() constnoexcept

Returns the buffer size of the section.

uint64_t Section::realSize() constnoexcept

Returns the real size of the section calculated from virtual and buffer sizes.

CodeBuffer& Section::buffer()noexcept[1/2]

Returns the CodeBuffer used by this section.

const CodeBuffer& Section::buffer() constnoexcept[2/2]

Returns the CodeBuffer used by this section (const).

Member Data Documentation

uint32_t Section::_id

Section id.

SectionFlags Section::_flags

Section flags.

uint32_t Section::_alignment

Section alignment requirements (0 if no requirements).

int32_t Section::_order

Order (lower value means higher priority).

uint64_t Section::_offset

Offset of this section from base-address.

uint64_t Section::_virtualSize

Virtual size of the section (zero initialized sections).

FixedString<Globals::kMaxSectionNameSize + 1>Section::_name

Section name (max 35 characters, PE allows max 8).

CodeBuffer Section::_buffer

Code or data buffer.