СИНТАКСИС
#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_)
АРГУМЕНТИ
- comp_id
-
Ідентифікатор компонента HAL, повернутий попереднім викликом hal_init.
- порт
-
Вказівник на структуру hal_parport_t.
- база
-
Базова адреса порту (якщо порт >= 16) або номер порту Linux (якщо порт < 16)
- base_hi
-
«Висока» адреса порту (розташування регістрів ECP), 0 для використання зондованої високої адреси або -1 для вимкнення високої адреси
- режими
-
Повідомте водієві про бажані режими порту, з <linux/parport.h>. Якщо виявлений Linux порт не надає запитуваних режимів, виводиться попередження за допомогою rtapi_print_msg. Це не призводить до невдачі запиту порту, оскільки, на жаль, багато систем, що мають робочі EPP-порти, не виявляються Linux як такі.
ОПИС
hal_parport_get allocates a parallel port for exclusive use of the named HAL component. The port must be released with hal_parport_release before the component exits with hal_exit.
ЗОНДУВАННЯ ВИСОКОЇ АДРЕСИ
Якщо порт є паралельним портом, відомим Linux, і Linux виявив високу адресу вводу-виводу, використовується це значення. В іншому випадку, якщо base+0x400 не зареєстровано для жодного пристрою, використовується воно. В іншому випадку адреса не використовується. Якщо висока адреса не виявлена, port→base_hi дорівнює 0.
СТРУКТУРА ПАРПОРТ
typedef struct
{
unsigned short base;
unsigned short base_hi;
.... // та подальші невизначені поля
} hal_parport_t;
ПОВЕРНЕНЕ ЗНАЧЕННЯ
hal_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 hal_parport_release.
hal_parport_release does not return a value. It always succeeds.
НОТАТКИ
У новому коді перевагу надавати використанню rtapi_parport замість hal_parport.