parport

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

NOMBRE

hal_parport - acceso portable a puertos paralelos estilo PC

SINTAXIS

#include "hal_parport.h"

int hal_parport_get(int comp_id, hal_parport_t *port, unsigned short base, unsigned short base_hi, unsigned int modes)

void hal_parport_release(hal_parport_t *port)

ARGUMENTOS

comp_id

Un identificador de componente HAL devuelto por una llamada anterior a hal_init.

port

Un puntero a una estructura hal_parport_t

base

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

base_hi

La dirección "alta" 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

Avisa 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 parports EPP que funcionan no se detectan como tales por Linux.

DESCRIPCIÃN

hal_parport_get asigna un puerto paralelo para uso exclusivo de componente hal llamado. El puerto debe liberarse con hal_parport_release antes de que el componente salga con hal_exit.

SONDEO DE DIRECCIÃN ALTA

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

ESTRUCTURA PARPORT

typedef struct
{
unsigned short base;
unsigned short base_hi;
.... // mas campos
} hal_parport_t;

VALOR DEVUELTO

hal_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 fallo, los contenidos de port fR no están definidos, excepto que es seguro (pero no obligatorio) pasar este puerto a hal_parport_release.

hal_parport_release no devuelve un valor. Siempre tiene éxito.

NOTAS

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