|
ReXGlue SDK
|
#include <rex/ppc/stack.h>
Public Member Functions | |
| StackFrame () | |
| StackFrame (PPCContext &ctx, u8 *base) | |
| ~StackFrame () | |
| template<typename T> | |
| memory::MappedPtr< T > | Push () |
| template<typename T> | |
| memory::MappedPtr< T > | Push (const T &value) |
| memory::MappedPtr< char > | PushString (std::string_view text) |
| memory::MappedPtr< be_u16 > | PushWideString (std::u16string_view text) |
| memory::MappedPtr< u8 > | PushBytes (std::span< const u8 > bytes) |
| PPCContext & | GetContext () const |
| u8 * | GetBase () const |
Additional Inherited Members | |
| Protected Member Functions inherited from rex::NonCopyable | |
| NonCopyable (const NonCopyable &)=delete | |
| NonCopyable & | operator= (const NonCopyable &)=delete |
Guest stack space pushed during a scope, released at scope exit. Frames close in reverse order and none stays open across a guest SwitchToFiber.
|
inline |
Binds the context and memory of the calling thread and saves r1.
|
inline |
Binds a context and saves its r1.
| ctx | The context whose r1 is lowered by pushes and restored at scope exit. |
| base | Guest memory base. |
|
inline |
Restores r1.
|
inline |
Returns the bound guest memory base.
|
inline |
Pushes zeroed storage for a value.
|
inline |
Pushes a value. Arithmetic and enum values are stored big endian. Other types are copied as is, so their fields must be big endian and a pointer inside is not caught.
|
inline |
Pushes raw bytes with no byte swap.
|
inline |
Pushes a NUL terminated byte string.
|
inline |
Pushes a NUL terminated big endian UTF-16 string.