Logo

Linux 内核

6.13.0-rc6

快速搜索

目录

  • 开发流程
  • 提交补丁
  • 行为准则
  • 维护者手册
  • 所有开发流程文档
  • 核心 API
  • 驱动 API
  • 子系统
    • 核心子系统
    • 人机接口
    • 网络接口
    • 存储接口
    • 其他子系统
      • 记账
      • CPUFreq - Linux(TM) 内核中的 CPU 频率和电压调节代码
      • FPGA
      • I2C/SMBus 子系统
      • 工业 I/O
      • PCMCIA
      • 串行外围接口 (SPI)
      • 1-Wire 子系统
      • 看门狗支持
      • 虚拟化支持
      • 硬件监控
      • 计算加速器
      • 安全文档
      • 加密 API
      • BPF 文档
      • USB 支持
      • PCI 总线子系统
      • 各种杂项设备文档
      • PECI 子系统
      • WMI 子系统
      • TEE 子系统
  • 锁定
  • 许可规则
  • 编写文档
  • 开发工具
  • 测试指南
  • 黑客指南
  • 跟踪
  • 故障注入
  • 实时补丁
  • Rust
  • 管理
  • 构建系统
  • 报告问题
  • 用户空间工具
  • 用户空间 API
  • 固件
  • 固件和设备树
  • CPU 架构
  • 未分类文档
  • 翻译

本页

  • 显示源码

目录

  • 1 BPF ABI 推荐约定和指南 v1.0

    • 1.1 寄存器和调用约定

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 中。

©内核开发社区。 | 由 Sphinx 5.3.0 & Alabaster 0.7.16 驱动 | 页面源码