parport

NOMBRE
SINTAXIS
ARGUMENTOS
DESCRIPCIÃN
SONDEO DE DIRECCIÃN HIGH
ESTRUCTURA DE PARPORT
VALOR DEVUELTO
NOTAS

NOMBRE

rtapi_parport - acceso portáble a puertos paralelos estilo PC

SINTAXIS

#include "rtapi_parport.h"

int rtapi_parport_get(const char *module_name, rtapi_parport_t *port, unsigned short base, unsigned short base_hi, unsigned int modes)

void rtapi_parport_release(rtapi_parport_t *port)

ARGUMENTOS

module_name

Por convención, el nombre del módulo RTAPI o componente HAL que usa el parport.

port

Un puntero a una estructura rtapi_parport_t

base

La dirección base del puerto (si puerto >= 16) o el número Linux de puerto (si puerto <16)

base_hi

La dirección "high" del puerto (ubicación de los registros ECP), 0 para usar una dirección alta probada, o -1 para deshabilitar la dirección alta

modes

Avisar al driver de los modos de puerto deseados, desde <linux/parport.h>. Si un puerto detectado por Linux no proporciona los modos solicitados, se imprime una advertencia con rtapi_print_msg. Esto no hace que la solicitud de puerto falle, porque desafortunadamente, muchos sistemas que tienen puertos EPP que funcionan no se detectan por Linux.

DESCRIPCIÃN

rtapi_parport_get asigna un puerto paralelo para uso exclusivo del componente hal nombrado. Si tiene éxito, accede al puerto con llamadas de E/S como rtapi_inb en la dirección base, en las direcciones base o base_hi. El puerto debe liberarse con rtapi_parport_release antes de la salida del componente con rtapi_exit.

SONDEO DE DIRECCIÃN HIGH

Si el puerto es un puerto paralelo conocido por Linux, y se detectó una dirección high de E/S, se utiliza este valor. De lo contrario, si base+0x400 no está registrada a cualquier dispositivo, se usara. De lo contrario, no se utiliza ninguna dirección. Si no hay una dirección high detectada, port->base_hi es 0.

ESTRUCTURA DE PARPORT

typedef struct
{
unsigned short base;
unsigned short base_hi;
.... // otros campos
} rtapi_parport_t;

VALOR DEVUELTO

rtapi_parport_get devuelve un código de estado HAL. En caso de éxito, port es completado con información sobre el puerto asignado. En caso de falla, los contenidos de port no están definidos, excepto que es seguro (pero no obligatorio) pasar este puerto a rtapi_parport_release.

rtapi_parport_release no devuelve un valor. Siempre tiene éxito.

NOTAS

En nuevo código, se prefiere el uso de rtapi_parport a rtapi_parport.