After you successfully mapped your devices memory, you can access it like an ordinary array. Usually, you will perform some initialization. After that, your hardware starts working and will generate an interrupt as soon as it's finished, has some data available, or needs your attention because an error occurred.
	/dev/uioX is a read-only file. A
	read() will always block until an
	interrupt occurs. There is only one legal value for the
	count parameter of
	read(), and that is the size of a
	signed 32 bit integer (4). Any other value for
	count causes read()
	to fail. The signed 32 bit integer read is the interrupt
	count of your device. If the value is one more than the value
	you read the last time, everything is OK. If the difference
	is greater than one, you missed interrupts.
	
	You can also use select() on
	/dev/uioX.