Provided by: erlang-manpages_18.3-dfsg-1ubuntu3.1_all 

NAME
ose_erl_driver - Linked-in drivers in Enea OSE
DESCRIPTION
Writing Linked-in drivers that also work on Enea OSE is very similar for how you would do it for Unix.
The difference from Unix is that driver_select, ready_input and ready_output all work with signals
instead of file descriptors. This means that the driver_select is used to specify which type of signal
should trigger calls to ready_input/ready_output. The functions described below are available to driver
programmers on Enea OSE to facilitate this.
DATA TYPES
union SIGNAL:
See the Enea OSE SPI documentation for a description.
SIGSELECT:
See the Enea OSE SPI documentation for a description.
ErlDrvEvent:
The ErlDrvEvent is a handle to a signal number and id combination. It is passed to
driver_select(3erl).
ErlDrvOseEventId:
This is the id used to associate a specific signal to a certain driver instance.
EXPORTS
union SIGNAL *erl_drv_ose_get_signal(ErlDrvEvent drv_event)
Fetch the next signal associated with drv_event. Signals will be returned in the order which they
were received and when no more signals are available NULL will be returned. Use this function in
the ready_input/ready_output callbacks to get signals.
ErlDrvEvent erl_drv_ose_event_alloc(SIGSELECT signo, ErlDrvOseEventId id, ErlDrvOseEventId
(*resolve_signal)(union SIGNAL* sig), void *extra)
Create a new ErlDrvEvent associated with signo, id and uses the resolve_signal function to extract
the id from a signal with signo. The extra parameter can be used for additional data. See Signals
in a Linked-in driver in the OSE User's Guide.
void erl_drv_ose_event_free(ErlDrvEvent drv_event)
Free a ErlDrvEvent. This should always be done in the stop_select callback when the event is no
longer being used.
void erl_drv_ose_event_fetch(ErlDrvEvent drv_event, SIGSELECT *signo, ErlDrvOseEventId *id, void **extra)
Write the signal number, id and any extra data associated with drv_event into *signo and *id
respectively. NULL can be also passed as signo or id in order to ignore that field.
SEE ALSO
driver_entry(3erl), erl_driver(3erl)
Ericsson AB ose 1.1 ose_erl_driver(3erl)