J'essaie d'implémenter mon propre protocole de couche de transport sous Linux pour une expérience. Je vais utiliser l'interface socket et ajouter mon protocole en utilisant sock_register. Pour les proto_ops, je peux voir que les paramètres pour sendmsg et recvmsg sont (struct kiocb * iocb, struct socket * sock, struct msghdr * msg, taille_t len, int flags). Mais il y a trois types de send, sendto, sendmsg. De ces trois seuls sendmsg contient un paramètre pour msghdr. Je trouve que les deux autres api sont incompatibles avec les paramètres fournis par le noyau à ma fonction sendmsg kernel-space. Alors, que se passe-t-il lorsque nous utilisons des API d'envoi et d'envoi d'espace utilisateur? Espère que je suis clair ..Vous avez besoin d'aide pour comprendre le mappage de l'espace utilisateur send, sendto, sendmsg à kernel-space sendmsg
Merci, Bala