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