abi.rst 968 B

12345678910111213141516171819202122232425262728
  1. .. contents::
  2. .. sectnum::
  3. ===================================================
  4. BPF ABI Recommended Conventions and Guidelines v1.0
  5. ===================================================
  6. This is version 1.0 of an informational document containing recommended
  7. conventions and guidelines for producing portable BPF program binaries.
  8. Registers and calling convention
  9. ================================
  10. BPF has 10 general purpose registers and a read-only frame pointer register,
  11. all of which are 64-bits wide.
  12. The BPF calling convention is defined as:
  13. * R0: return value from function calls, and exit value for BPF programs
  14. * R1 - R5: arguments for function calls
  15. * R6 - R9: callee saved registers that function calls will preserve
  16. * R10: read-only frame pointer to access stack
  17. R0 - R5 are scratch registers and BPF programs needs to spill/fill them if
  18. necessary across calls.
  19. The BPF program needs to store the return value into register R0 before doing an
  20. ``EXIT``.