FreeBSD programming question

Rui Lopes rui at
Wed Aug 6 04:11:54 PDT 2003

On Ter, 2003-08-05 at 22:30, J. Seth Henry wrote: 
> Not sure if this is the right list or not, but I could really use some
> pointers.
> How can I code trap serial port interrupts in my C program?

You can't attach to interrupts in a userland program, but you can access
serial ports by opening any of /dev/cuaaX device files.

> For example, I want to read values from a serial device every
> user-specified number of seconds, calculate some stuff and then sit for
> a while. Should the serial device decide it wants to send some data
> unsolicited, I would like to enter an interrupt service routine, handle
> the communication, and then return to the previous loop.
> I can get the loop going by using sleep(n), but I don't know how to
> write the ISR in C, and (additionally) make it such that it will run on
> any *nix like platform. 
> Any pointers, HOWTO's, or examples would be greatly appreciated!

Take a look at these (in no particular order):

  "Serial Programming Guide for POSIX Operating Systems"

  "Serial Programming HOWTO"

  "Serial Communications"

- sio(4)

Good luck!
Rui Lopes

More information about the freebsd-questions mailing list