Closed NicolasFloquet closed 13 years ago
Le problème est plus profond : Si je fais un kmalloc (donc en kernel space), je me retrouve à faire 2 ou 3 syscalls... Est-ce que tu peux nous rappeler Simon ce qui t'a amené à faire comment ça ?
Alors, le truc c'est qu'il faudrait compiler une version kernel et une version userspace de la libc.
kmalloc fait appel à malloc de la libc avec les structures du kernel qu'il faut (page virtuelles etc...). Et malloc doit faire un appel système. Faudrait rajouter genre un petit ifdef dans la libc dans le cas kernel, pour éviter le syscall.
Sinon, je vois pas les dépendances de la libc à vmm.h (mais dans le sens kmalloc -> libc oui).
J'ai supposé ici que le kernel pouvait utiliser la libc. Peut-être ai-je tord.
malloc.c utilise des types définies dans vmm.h. Je regarde le code ce soir et je reviens vers toi Simon si j'ai des questions.
Ok je vois bien ce qu'il se passe. Je modifie ça ce week end !
related : https://www.etud.insa-toulouse.fr/redmine/issues/34 (je ferme celui de redmine)
Done.
La libc présente des dépendances à vmm.h, qui n'a rien à faire en userspace. Faudrait se débarasser de ça