Например:
SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf, size_t, count)После препроцессора это превращается сразу в несколько функций:
-
sys_write-
__se_sys_write-
__do_sys_writeОдна строка описывает системный вызов, а C-препроцессор через макросы и token pasting собирает остальную обвязку автоматически.
Именно поэтому код ядра Linux часто выглядит коротко, пока не начнёшь разворачивать макросы.
