Там - это нет общего способа сделать это.
Если вы находитесь в пространстве ядра, вы должны вызывать функции ядра, которые реализуют функциональность системного вызова напрямую вместо использования инструкций типа syscall
, или использовать другие средства извлечения нужной информации / воздействия на желаемое действие.
Для конкретного случая getpid()
вы можете просто использовать current->pid
.
Имя ядра current
всегда является указателем на текущий task_struct
, который определяется через <linux/sched.h>
(поиск struct task_struct
). Код, который обращается к членам этого, обычно встроен, т. Е. Даже вызов функции (и тем более системный вызов) не требуется, чтобы получить их, когда ваш код работает как часть ядра.