ptr
The Pointer library contains helper functions to deal with pointer types.
The relative_to
functions are meant to be used with the [[pointer_base]]
attribute
Types
std::ptr::NullablePtr
std::ptr::NullablePtr
A nullable pointer, generic over both the pointee type and pointer type.
By nullable, we mean that if the pointer's value is zero (0x0
), then the
value will appear as padding rather than a pointer to something, but
if the pointer's value is non-zero, that non-zero value will be treated as
a pointer of type PointerTy
which points to an element of type PointeeTy
.
Example:
A struct field called p_myInfo
which is a nullable 64-bit pointer to an
element of type MyInfoTy
would be written as:
struct MyStruct {
std::ptr::NullablePtr<MyInfoTy, u64> p_myInfo;
}
struct NullablePtr<PointeeTy, PointerTy> { ... };
Functions
std::ptr::relative_to_pointer
std::ptr::relative_to_pointer
Use the offset of the current pointer as start address
offset
: The pointer's valuereturn
: The new pointer base
fn relative_to_pointer(u128 offset);
std::ptr::relative_to_parent
std::ptr::relative_to_parent
Use the offset of the pointer's parent as start address
offset
: The pointer's valuereturn
: The new pointer base
fn relative_to_parent(u128 offset);
std::ptr::relative_to_end
std::ptr::relative_to_end
Use the end of the file as pointer base address and use its value as offset backwards from there
offset
: The pointer's valuereturn
: The new pointer base
fn relative_to_end(u128 offset);
Last updated
Was this helpful?