xref: /linux/Documentation/bpf/standardization/abi.rst (revision 34dc1baba215b826e454b8d19e4f24adbeb7d00d)
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