[][src]Crate dynasmrt

Re-exports

pub use crate::mmap::ExecutableBuffer;

Modules

aarch64
components
mmap
relocations
x64
x86

Macros

MutPointer

Preforms the same action as the Pointer! macro, but casts to a *mut pointer.

Pointer

This macro takes a *const pointer from the source operand, and then casts it to the desired return type. this allows it to be used as an easy shorthand for passing pointers as dynasm immediate arguments.

Structs

Assembler

A full assembler implementation. Supports labels, all types of relocations, incremental compilation and multithreaded execution with simultaneous compiltion. Its implementation guarantees no memory is executable and writable at the same time.

AssemblyOffset

A struct representing an offset into the assembling buffer of a DynasmLabelApi struct. The wrapped usize is the offset from the start of the assembling buffer in bytes.

DynamicLabel

A dynamic label

Executor

A read-only shared reference to the executable buffer inside an Assembler. By locking it the internal ExecutableBuffer can be accessed and executed.

Modifier

Allows modification of already committed assembly code. Contains an internal cursor into the emitted assembly, initialized to the start, that can be moved around either with the goto function, or just by assembling new code into this Modifier.

UncommittedModifier

This struct is a wrapper around an Assembler normally created using the Assembler.alter_uncommitted method. It allows the user to edit parts of the assembling buffer that cannot be determined easily or efficiently in advance. Due to limitations of the label resolution algorithms, this assembler does not allow labels to be used.

VecAssembler

An assembler that is purely a Vec<u8>. It doesn't support labels, but can be used to easily inspect generated code.

Enums

DynasmError

The various error types generated by dynasm functions.

LabelKind

A description of a label. Used for error reporting.

TargetKind

A description of a relocation target. Used for error reporting.

Traits

DynasmApi

This trait represents the interface that must be implemented to allow the dynasm preprocessor to assemble into a datastructure.

DynasmLabelApi

This trait extends DynasmApi to not only allow assembling, but also labels and various directives