Question : Exportation de la mémoire de grain vers l'espace d'utilisateur using le devmap_umem_setup

Bonjour, le

I ont un pseudo conducteur simple assez beaucoup copié outre du cours d'instruction « de programmes pilotes de périphérique d'écriture ». Ce que j'essayais de réaliser était assignant et exportant la mémoire de grain de ce conducteur vers l'espace $$etAPP d'utilisateur. Je ne suis pas intéressé à exporter la mémoire de dispositif par conséquent que j'ai seulement employé le devmap_umem_setup au point d'entrée de devmap (). J'ai un espace $$etAPP d'utilisateur qui appelle le mmap pour appeler la routine de devmap. Basé sur les valeurs de retour de toutes les routines a impliqué tous les deux dans le conducteur tel que le ddi_umem_alloc, devmap_setup, devmap_umem_setup et l'appel de mmap dans l'utilisateur $$etAPP il est évident que la cartographie est réussie. Cependant quand je place quelque chose dans l'utilisateur $$etAPP à cette adresse de mémoire retournée par le mmap, je ne peux pas le relire du conducteur employant le ddi_umem_cookie_t. La valeur a lu de retour dans le conducteur indiqué par le biscuit est différente que l'un ensemble par l'espace $$etAPP d'utilisateur. Je n'emploie aucun excentrage dans le mmap et le devmap_umem_setup (passant 0) et la longueur étant passée est 4096. Ma question est fait le ddi_umem_cookie_t réglé par le point de ddi_umem_alloc au même endroit de mémoire (après quelque traductions d'adresse qui doivent se produire) que l'appel de mmap retournera étant donné que les excentrages sont 0 et la longueur est 1 taille de page (4096) et l'addr dans le mmap est 0.

user $$etAPP :

fd=open ( » /devices/pseudo/dummy@0 : 0 ", O_RDWR) ;

mapadd = mmap64 (0, len, (PROT_READ|PROT_WRITE),
MAP_SHARED, FD, 0) ;


driver:

xsp->umem = ddi_umem_alloc (8192,
DDI_UMEM_SLEEP | DDI_UMEM_PAGEABLE, et (xsp->ucookie));

error = devmap_setup (réalisateur, 0, asp, addrp, 4096,
prot, maxprot, drapeaux, credp) ;

error = devmap_umem_setup (poignée, xsp->dip, NULLE, xsp->ucookie,
0, 4096, PROT_ALL, DEVMAP_DEFAULTS, NULLE) ; l'arrangement du



My était que je pourrait accéder à la mémoire indiqué le xsp->ucookie (l'espace de grain) aussi bien que du mapadd (l'espace d'utilisateur) mais ce ne semble pas être l'aide du case

Any serait beaucoup d'appreciated.

Thanks
class= de

Réponse : Exportation de la mémoire de grain vers l'espace d'utilisateur using le devmap_umem_setup

Je pense du côté de grain, vous veux accéder aux endroits de mémoire indiqués par le xsp->umem. Si cela ne fonctionne pas, pourriez-vous signaler le conducteur entier ?
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us