Page suivantePage pr�c�denteTable des mati�res

6. Vue d'ensemble de la programmation des p�riph�riques

Le fichier d'inclusion include/scsi/sg.h contient une description de l'interface (celle du noyau 1.3.98) :

struct sg_header
 {
 /*
 * longueur du paquet entrant (y compris en-t�te)
 */
 int pack_len;
 /*
 * taille max de la r�ponse attendue
 */
 int reply_len;
 /*
 * num�ro d'id du paquet
 */
 int pack_id;
 /*
 * 0 == ok,
 * pour les autres, voir les codes pour errno
 */
 int result;
 /*
 * Force la longueur a 12 pour les commandes des
 * groupes 6 & 7
 */
 unsigned int twelve_byte:1;
 /*
 * pour utilisation future
 */
 unsigned int other_flags:31;
 /*
 * uniquement utilis� lors des lectures
 */
 unsigned char sense_buffer[16];
 /*
 * la commande suit puis les donn�es de la
 * commande
 * .............
 */

Cette structure d�crit comment une commande SCSI doit �tre trait�e et disposer de place pour le r�sultat de son ex�cution. Les composants individuels de la structure seront abord�s plus loin � la section La structure d'en-t�te.

La m�thode g�n�rale pour �changer des donn�es avec le pilote g�n�rique est la suivante : pour envoyer une commande � un p�riph�rique g�n�rique ouvert, il faut �crire (write()) un bloc compos� des trois parties suivantes :

 struct sg_header
 commande SCSI
 donn�es envoy�es avec la commande

Pour obtenir le r�sultat d'une commande, il faut lire (read()) un bloc compos�s des parties suivantes (similaires � l'�criture) :

 struct sg_header
 donn�es en entr�e

Il s'agit d'une vue g�n�rale de la proc�dure. Les sections qui suivent d�crivent chaque �tape en d�tail.

NOTE : jusqu'� de r�centes versions du noyau, il �tait n�cessaire de bloquer le signal SIGINT entre les appels write() et le read() correspondant (par exemple, par sigprocmask()). Un retour apr�s la partie �criture sans lecture pour r�cup�rer les r�sultats va bloquer les acc�s suivants. Le blocage du signal n'a pas encore �t� inclus dans le code des exemples. Evitez donc d'envoyer un SIGINT (par ^C, par exemple) lors du test de ceux-ci.


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:15