Je porte le module noyau Linux écrit pour Linux 2.4 pour fonctionner avec Linux 2.6. Certains appels système déclarés via les macros syscallN()
et enveloppés dans des appels set_fs()
ont été utilisés dans le code. Comment puis-je toujours utiliser sycalls sous Linux 2.6 où ces macros sont absentes?Comment appeler Linux syscall à partir de l'espace noyau?
Je sais que c'est un mauvais goût d'utiliser des syscalls à partir de l'espace noyau et les macros syscallN()
sont cassées sur la plupart des plates-formes. N'importe quel moyen raisonnable pour remplacer getuid
, geteuid
, mknod
, chown
, unlink
, sched_yield
syscalls dans l'espace de noyau est apprécié.
current-> uid et current-> euid ne sont plus disponibles en 2.6. – Basilevs
Il était présent dans les premiers noyaux 2.6, mais on dirait qu'il a été remplacé par la macro 'current_uid()' dans 2.6.27. Voir 'include/linux/cred.h'. –