6.4.1.8 Атрибуты функций BPF
В серверной части BPF поддерживаются следующие атрибуты функций:
-
kernel_helper -
используйте этот атрибут, чтобы указать, что объявленная функция является вспомогательной функцией ядра. Функция-помощник передаётся атрибуту в качестве аргумента. Пример:
int bpf_probe_read (void *dst, int size, const void *unsafe_ptr) __attribute__ ((kernel_helper (4)));
-
naked Этот атрибут позволяет компилятору создать необходимое объявление функции, при этом тело функции может быть написано на ассемблере. Для указанной функции компилятор не будет генерировать последовательности пролога и эпилога. В функциях без пролога и эпилога безопасно использовать только базовые инструкции
asm(см. Базовый Asm — инструкции ассемблера без операндов). Хотя использование расширенногоasmили сочетания базовогоasmи кода C может показаться работоспособным, на такое поведение нельзя надёжно рассчитывать, и оно не поддерживается.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-15.3.0/gcc/BPF-Function-Attributes.html