Commit 6197e5b7 authored by Joe Stringer's avatar Joe Stringer Committed by Alexei Starovoitov
Browse files

docs/bpf: Add bpf() syscall command reference



Generate the syscall command reference from the UAPI header file and
include it in the main bpf docs page.

Signed-off-by: default avatarJoe Stringer <joe@cilium.io>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
Reviewed-by: default avatarQuentin Monnet <quentin@isovalent.com>
Acked-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
Link: https://lore.kernel.org/bpf/20210302171947.2268128-15-joe@cilium.io
parent accbd33a
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -12,9 +12,6 @@ BPF instruction-set.
The Cilium project also maintains a `BPF and XDP Reference Guide`_
that goes into great technical depth about the BPF Architecture.

The primary info for the bpf syscall is available in the `man-pages`_
for `bpf(2)`_.

BPF Type Format (BTF)
=====================

@@ -35,6 +32,12 @@ Two sets of Questions and Answers (Q&A) are maintained.
   bpf_design_QA
   bpf_devel_QA

Syscall API
===========

The primary info for the bpf syscall is available in the `man-pages`_
for `bpf(2)`_. For more information about the userspace API, see
Documentation/userspace-api/ebpf/index.rst.

Helper functions
================
+17 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

eBPF Userspace API
==================

eBPF is a kernel mechanism to provide a sandboxed runtime environment in the
Linux kernel for runtime extension and instrumentation without changing kernel
source code or loading kernel modules. eBPF programs can be attached to various
kernel subsystems, including networking, tracing and Linux security modules
(LSM).

For internal kernel documentation on eBPF, see Documentation/bpf/index.rst.

.. toctree::
   :maxdepth: 1

   syscall
+24 −0
Original line number Diff line number Diff line
.. SPDX-License-Identifier: GPL-2.0

eBPF Syscall
------------

:Authors: - Alexei Starovoitov <ast@kernel.org>
          - Joe Stringer <joe@wand.net.nz>
          - Michael Kerrisk <mtk.manpages@gmail.com>

The primary info for the bpf syscall is available in the `man-pages`_
for `bpf(2)`_.

bpf() subcommand reference
~~~~~~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: include/uapi/linux/bpf.h
   :doc: eBPF Syscall Preamble

.. kernel-doc:: include/uapi/linux/bpf.h
   :doc: eBPF Syscall Commands

.. Links:
.. _man-pages: https://www.kernel.org/doc/man-pages/
.. _bpf(2): https://man7.org/linux/man-pages/man2/bpf.2.html
+1 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ place where this information is gathered.
   unshare
   spec_ctrl
   accelerators/ocxl
   ebpf/index
   ioctl/index
   iommu
   media/index
+1 −0
Original line number Diff line number Diff line
@@ -3209,6 +3209,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git
F:	Documentation/bpf/
F:	Documentation/networking/filter.rst
F:	Documentation/userspace-api/ebpf/
F:	arch/*/net/*
F:	include/linux/bpf*
F:	include/linux/filter.h