Please read the documentation about the hardware before you start fiddling with this. This document is not usable as a guide for the hardware and will only confuse you if you don't know how the underlying hardware works.
All material described here is declared and/or implemented in the opto.h header file. You need this file and you need to include it in any program that wishes to talk to the opto driver directly. There are no required libraries, the opto.h header is all you need.
In addition to the interface functions described here, the driver has a ioctl interface wich can be accessed directly by using the ioctl(2) call. This is however unnecessary, since the functions below wrap these calls for you. If you would like to use ioctl interface instead of this one, do so, but see the opto.h header for details.
Functions which can be used for communicating with the opto driver are not exports, but wrappers for ioctl(2) calls. Here they are:
Structures are used for exchanging data with the driver. Here is the overview: