Qu'est-ce que le noyau Linux équivalent à la fonction memset?
Je suis en train d'écrire un pilote qui m'oblige à effacer toute la mémoire allouée à zéro. memset
est une fonction de l'espace utilisateur, mais je voudrais savoir si le noyau fournit une macro qui me permet de le faire.
- Je crois
memset
est disponible pour le code du noyau Linux. - Bonne question. - Je inquiet au sujet de moi-même. Lorsque vous devez d'abord travailler sur le code du noyau, vous avez tendance à se coincer dans l'état d'esprit que rien n'est disponible dans l'espace noyau qui était disponible dans l'espace utilisateur. Si vous l'essayez, vous devriez voir qu'il fonctionne comme prévu.
- Une autre façon est de simplement regarder les en-têtes 🙂
Vous devez vous connecter pour publier un commentaire.
Selon ce fil et de commentaires ici qui l'ont utilisé,
memset
est disponibles dans le code du noyau. Peut-être vous avez juste oublié deC'est vrai
memset()
danspas censé apparaître dans le code du noyau.Et le fait est, il peut vous coûter beaucoup d'oligo-bas où
memset()
est inclus lors de pilote de développement. En faitmemset()
est défini dansil dit:
Espérons que cette aide vous tapez en bas " memset()' à 100% sûr 🙂
Je l'ai regardé dans un pilote Linux de développement de livre que j'ai (c'est de l'allemand, donc je vais donner une traduction approximative de ce qu'il dit en fait) et il donne la description suivante:
Une enquête... Si vous regardez dans le
<asm/io.h>
sources, vous pouvez trouver:...mais aussi la définition de la
memset_io()
fonction, donc je suppose que ce doit être de la bonne#include
.