Logo of The Linux Kernel

The Linux Kernel

6.17.0-rc7

快速搜尋

Contents

  • Development process
  • 提交補釘
  • 行為守則
  • 維護者手冊
  • All development-process docs
  • 核心 API
  • Driver APIs
  • 子系統
    • Core subsystems
    • Human interfaces
    • Networking interfaces
    • Storage interfaces
    • Other subsystems
      • Accounting
      • CPUFreq - CPU frequency and voltage scaling code in the Linux(TM) kernel
      • EDAC 子系統
      • FPGA
      • I2C/SMBus Subsystem
      • Industrial I/O
      • PCMCIA
      • Serial Peripheral Interface (SPI)
      • 1-Wire Subsystem
      • Watchdog Support
      • Virtualization Support
      • Hardware Monitoring
      • Compute Accelerators
      • Security Documentation
      • Crypto API
      • BPF 文件
      • USB support
      • PCI Bus Subsystem
      • Assorted Miscellaneous Devices Documentation
      • PECI 子系統
      • WMI Subsystem
      • TEE Subsystem
  • Locking
  • Licensing rules
  • 撰寫文件
  • 開發工具
  • 測試指南
  • Hacking guide
  • Tracing
  • Fault injection
  • Livepatching
  • Rust
  • Administration
  • 建置系統
  • 回報議題
  • 使用者空間工具
  • 使用者空間 API
  • 韌體
  • 韌體與裝置樹
  • CPU 架構
  • 未排序的文件

本頁

  • 顯示原始碼

目錄

  • 1 BPF ABI Recommended Conventions and Guidelines v1.0

    • 1.1 Registers and calling convention

1 BPF ABI Recommended Conventions and Guidelines v1.0¶

This is version 1.0 of an informational document containing recommended conventions and guidelines for producing portable BPF program binaries.

1.1 Registers and calling convention¶

BPF has 10 general purpose registers and a read-only frame pointer register, all of which are 64-bits wide.

The BPF calling convention is defined as:

  • R0: return value from function calls, and exit value for BPF programs

  • R1 - R5: arguments for function calls

  • R6 - R9: callee saved registers that function calls will preserve

  • R10: read-only frame pointer to access stack

R0 - R5 are scratch registers and BPF programs needs to spill/fill them if necessary across calls.

The BPF program needs to store the return value into register R0 before doing an EXIT.

©The kernel development community. | Powered by Sphinx 8.2.3 & Alabaster 1.0.0 | Page source