Ответ 1
Это указатель на текущий процесс (т.е. процесс, выдавший системный вызов).
В x86 он определен в arch/x86/include/current.h
(похожие файлы для других арков).
#ifndef _ASM_X86_CURRENT_H
#define _ASM_X86_CURRENT_H
#include <linux/compiler.h>
#include <asm/percpu.h>
#ifndef __ASSEMBLY__
struct task_struct;
DECLARE_PER_CPU(struct task_struct *, current_task);
static __always_inline struct task_struct *get_current(void)
{
return percpu_read_stable(current_task);
}
#define current get_current()
#endif /* __ASSEMBLY__ */
#endif /* _ASM_X86_CURRENT_H */
Дополнительная информация в Драйверы устройств Linux глава 2:
Текущий указатель относится к выполняемому в настоящее время пользовательскому процессу. Во время выполнения системного вызова, такого как открытие или чтение, текущим процессом является тот, который вызвал вызов. Код ядра может использовать информацию, относящуюся к конкретному процессу, используя текущий, если это необходимо. [...]