In message: <[EMAIL PROTECTED]> Matt Kory <[EMAIL PROTECTED]> writes: : Is it possible to use poll or select to detect a change in the status : bits of the parallel port? I tried something like this, and took bits : 5 and 6 of the status register low and nothing seemed to happen. Is : what I am trying to do even possible, or I am supposed to take a : certain bit low to cause a read event? Any help is appreciated. : : int ppi_fd; : char port[] = "/dev/ppi0"; : ppi_fd = open(port, O_RDWR); : : fd_set rfds; : struct timeval tv; : tv.tv_sec = 0; : tv.tv_usec = 100000; : : while(1) { : FD_ZERO( &rfds ); : FD_SET( ppi_fd, &rfds ); : if ( select(1, &rfds, NULL, NULL, &tv) ) { : printf("hi\n"); : } : }
With the driver, as written: No. You can't poll(2). You can ask the device often if something has changed yet. However, it would be relatively simple to add a read channel and poll support. I've written several custom drivers that do things based on parallel port interrupts... Such drivers aren't that hard. Warner _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"