Homebrew ABI: Difference between revisions

Line 3: Line 3:
=== Entrypoint ===
=== Entrypoint ===
Entrypoint is at binary_ptr+0. At this offset, there is a branch instruction that jumps past the NRO0 header. This is for compatibility with NSO0.
Entrypoint is at binary_ptr+0. At this offset, there is a branch instruction that jumps past the NRO0 header. This is for compatibility with NSO0.
Every application should clean itself up before returning to loader.
This includes tasks like:
* Not leaking handles
* Resetting MemoryState
* No leftover threads running in the background


=== Entrypoint Arguments ===
=== Entrypoint Arguments ===