/*
* example.c: очень простой пример для порта ввода/вывода
*
* Этот код не делает ничего полезного, только запись в порт, пауза,
* и чтение из порта. Откомпилируйте `gcc -O2 -o example example.c',
* и запустите под root `./example'.
*/
#include <stdio.h>
#include <unistd.h>
#include <asm/io.h>
#define BASEPORT 0x378 /* lp1 */
int main()
{
/* Получить доступ к порту */
if (ioperm(BASEPORT, 3, 1)) {perror("ioperm"); exit(1);}
/* Вывод в порт (0) */
outb(0, BASEPORT);
/* Задержка (100 мс) */
usleep(100000);
/* Чтение из порта (BASEPORT+1) и вывод результатов на экран */
printf("статус: %d\n", inb(BASEPORT + 1));
/* Мы больше не нуждаемся больше в порту */
if (ioperm(BASEPORT, 3, 0)) {perror("ioperm"); exit(1);}
exit(0);
}
/* конец example.c */
|