1 BPF ABI 推薦約定和指南 v1.0¶
這是資訊文件的 1.0 版本,其中包含生成可移植 BPF 程式二進位制檔案的推薦約定和指南。
1.1 暫存器和呼叫約定¶
BPF 擁有 10 個通用暫存器和一個只讀的幀指標暫存器,所有這些暫存器都是 64 位寬的。
BPF 呼叫約定定義如下:
R0:函式呼叫的返回值,以及 BPF 程式的退出值
R1 - R5:函式呼叫的引數
R6 - R9:被呼叫者儲存的暫存器,函式呼叫將保留這些暫存器
R10:用於訪問棧的只讀幀指標
R0 - R5 是臨時暫存器,BPF 程式在跨呼叫時如有必要需要溢位/填充它們。
BPF 程式在執行 EXIT 之前需要將返回值儲存到暫存器 R0 中。