[−][src]Crate dynasmrt
This crate provides runtime support for dynasm-rs. It contains traits that document the interface used by the dynasm proc_macro to generate code, Assemblers that implement these traits, and relocation models for the various supported architectures. Additionally, it also provides the tools to write your own Assemblers using these components.
Re-exports
pub use crate::mmap::ExecutableBuffer; |
Modules
aarch64 | Runtime support for the aarch64 architecture assembling target. |
components | This module provides several reusable compoments for implementing assemblers |
mmap | This module implements some wrappers around Mmap/MmapMut to also support a cheap "empty" variant. |
relocations | This module defines the |
x64 | Runtime support for the x64 architecture assembling target. |
x86 | Runtime support for the x86 architecture assembling target. |
Macros
MutPointer | Preforms the same action as the |
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. |
dynasm | The whole point. This macro compiles given assembly/rust templates down to |
dynasm_backwards | Similar to |
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 |
DynamicLabel | A dynamic label |
Executor | A read-only shared reference to the executable buffer inside an Assembler. By
locking it the internal |
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
|
SimpleAssembler | An assembler that is purely a |
UncommittedModifier | This struct is a wrapper around an |
VecAssembler | An assembler that assembles into a |
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 |
Register | A trait abstracting over architectural register families. This is usually implemented over an enum of all available registers in each family. This allows for code that is generic over register families. |