Je to ukazatel na aktuální proces (tj. proces, který vyvolal systémové volání).
Na x86 je definován v arch/x86/include/asm/current.h
(podobné soubory pro jiné oblouky).
#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 */
Další informace v kapitole 2 Ovladače zařízení pro Linux:
Aktuální ukazatel odkazuje na aktuálně prováděný uživatelský proces. Během provádění systémového volání, jako je otevření nebo čtení, je aktuální proces ten, který volání vyvolal. Kód jádra může použít informace specifické pro proces pomocí proudu, pokud to potřebuje. [...]
Current
je globální proměnná typu struct task_struct
. Jeho definici najdete na [1].
Files
je struct files_struct
a obsahuje informace o souborech používaných aktuálním procesem.
[1] http://students.mimuw.edu.pl/SO/LabLinux/PROCESY/ZRODLA/sched.h.html