СИНТАКСИС
#include "rtapi_parport.h"
int rtapi_parport_get(const char* _module_name_, rtapi_parport_t* _port_,
short _base_, unsigned short _base_hi_,
int _modes_);
void rtapi_parport_release(rtapi_parport_t* _port_);
АРГУМЕНТИ
- module_name
-
За домовленістю, назва модуля RTAPI або компонента HAL, що використовує парпорт.
- порт
-
Вказівник на структуру rtapi_parport_t.
- база
-
Базова адреса порту (якщо порт >= 16) або номер порту Linux для цього порту (якщо порт < 16).
- base_hi
-
«Висока» адреса порту (розташування регістрів ECP), 0 для використання зондованої високої адреси або -1 для вимкнення високої адреси.
- режими
-
Повідомте водієві про бажані режими порту, з <linux/parport.h>. Якщо виявлений Linux порт не надає запитуваних режимів, виводиться попередження за допомогою rtapi_print_msg. Це не призводить до невдачі запиту порту, оскільки, на жаль, багато систем, що мають робочі EPP-порти, не виявляються Linux як такі.
ОПИС
rtapi_parport_get allocates a parallel port for exclusive use of the named hal component. If successful, access the port with I/O calls such as rtapi_inb at address based at the base or base_hi addresses. The port must be released with rtapi_parport_release before the component exits with rtapi_exit.
ЗОНДУВАННЯ ВИСОКОЇ АДРЕСИ
Якщо порт є паралельним портом, відомим Linux, і Linux виявив високу адресу вводу-виводу, використовується це значення. В іншому випадку, якщо base+0x400 не зареєстровано для жодного пристрою, використовується воно. В іншому випадку адреса не використовується. Якщо висока адреса не виявлена, port→base_hi дорівнює 0.
СТРУКТУРА ПАРПОРТ
typedef struct
{
unsigned short base;
unsigned short base_hi;
.... // та подальші невизначені поля
} rtapi_parport_t;
ПОВЕРНЕНЕ ЗНАЧЕННЯ
rtapi_parport_get returns a HAL status code. On success, port is filled out with information about the allocated port. On failure, the contents of port are undefined except that it is safe (but not required) to pass this port to rtapi_parport_release.
rtapi_parport_release does not return a value. It always succeeds.
НОТАТКИ
У новому коді перевагу надавати використанню rtapi_parport замість rtapi_parport.