Using catalogs: /etc/sgml/catalog Using stylesheet: /usr/share/sgml/docbook/utils-0.6.9/docbook-utils.dsl#html Working on: /home/jdavila/lucas/doc-manual-linux-acceso-dispositivos/doc-manual-linux-acceso-dispositivos.xml Accesos a Dispositivos Independientes del Bus

Accesos a Dispositivos Independientes del Bus

Matthew Wilcox

Alan Cox


Tabla de contenidos
1. Introducci�n
2. Bugs Conocidos Y Suposiciones
3. E/S Mapeada en Memoria
3.1. Obteniendo Acceso al Dispositivo
3.2. Accediendo al dispositivo
3.3. Funciones de Herencia ISA
4. Accesos al Espacio de Puerto
4.1. Espacio de Puerto Explicado
4.2. Accediendo al Espacio de Puerto
5. Funciones P�blicas Suministradas
6. Sobre la traducci�n

Cap�tulo 1. Introducci�n

Linux suministra una API que abstrae la realizaci�n de E/S a trav�s de todos los buses y dispositivos, permitiendo a los controladores de dispositivos ser escritos independientemente del tipo de bus.


Cap�tulo 2. Bugs Conocidos Y Suposiciones

Ninguno.


Cap�tulo 3. E/S Mapeada en Memoria


3.2. Accediendo al dispositivo

La parte de la interface m�s usada por los controladores es la lectura y escritura de los registros mapeados en memoria del dispositivo. Linux suministra interfaces para leer y escribir cantidades de 8-bits, 16-bits, 32-bits y 64-bits. Debido a un accidente hist�rico estos son llamados accesos byte, word, long y quad. Ambos accesos de lectura y escritura son soportados; no hay soporte pre-producido en este momento.

Las funciones tienen los nombres readb, readw, readl, readq, writeb, writew, writel y writeq.

A algunos dispositivos (como los framebuffers) les gustar�a usar transferencias m�s grandes de los 8 bytes cada vez. Para estos dispositivos, son suministradas las funciones memcpy_toio, memcpy_fromio y memset_io. No utilices memset o memcpy en direcciones de E/S; no est� garantizado que copien los datos en orden.

Las funciones de lectura y escritura est�n definidas para ser ordenadas. Esto es, al compilador no le est� permitido reordenar la secuencia de E/S. Cuando el �rden puede ser compilado de forma optimizada, puedes usar __readb y amigos para indicar un �rden relajado. Usa esto con cuidado. La rmb suministra una barrera de lectura de memoria. La wmb suministra una barrera de escritura de memoria.

Mientras las funciones b�sicas son definidas para ser s�ncronas y ordenadas con respecto a las otras, los dispositivos que est�n en los buses quiz�s sean as�ncronos. En particular, algunos autores han sido quemados por el hecho de que las escrituras en el bus PCI son realizadas de forma as�ncrona. El autor de un controlador debe de emitir una lectura para el mismo dispositivo para asegurarse de que la escritura ha tenido lugar en los casos espec�ficos que quiere el autor. Este tipo de propiedad no puede ser escondida por los escritores de los controladores en la API.


Cap�tulo 4. Accesos al Espacio de Puerto


Cap�tulo 5. Funciones P�blicas Suministradas


Cap�tulo 6. Sobre la traducci�n

Este documento es la traducci�n de "Bus-Independent Device Accesses", documento que acompa�a al c�digo del n�cleo de Linux, versi�n 2.4.18.

Este documento ha sido traducido por Rub�n Melc�n ; y es publicado por el Proyecto Lucas

Versi�n de la traduci�n 0.04 ( Julio de 2002 ).

Si tienes comentarios sobre la traducci�n, ponte en contacto con Rub�n Melc�n

Done.