radio - interface between low and high level radio drivers
The radio device driver is divided into a high level, hardware independent
layer, and a low level hardware dependent layer. The
interface between
these is the radio_hw_if structure.
struct radio_hw_if {
int (*open)(void *, int, int, struct proc *);
int (*close)(void *, int, int, struct proc *);
int (*get_info)(void *, struct radio_info *);
int (*set_info)(void *, struct radio_info *);
int (*search)(void *, int);
};
The high level radio driver attaches to the low level driver
when the
latter calls radio_attach_mi. This call should be
void
radio_attach_mi(struct radio_hw_if *rhwp, void *hdlp, struct
device * dev)
The radio_hw_if struct is as shown above. The hdlp argument
is a handle
to some low level data structure. It is sent as the first
argument to
all the functions in radio_hw_if when the high level driver
calls them.
dev is the device struct for the hardware device.
The fields of radio_hw_if are described in some more detail
below.
int
open(void *, int flags, int fmt, struct proc *p)
Optional.
Is called when the radio device is opened.
Returns 0 on success, otherwise an error code.
int
close(void *, int flags, int fmt, struct proc *p)
Optional.
Is called when the radio device is closed.
Returns 0 on success, otherwise an error code.
int
get_info(void *, struct radio_info *)
Fill the radio_info struct.
Returns 0 on success, otherwise an error code.
int
set_info(void *, struct radio_info *)
Set values from the radio_info struct.
Returns 0 on success, otherwise an error code.
int
search(void *, int)
Returns 0 on success, otherwise an error code.
az(4), gtp(4), radio(4), rt(4), rtii(4), sf2r(4), sfr(4)
The radio device driver appeared in OpenBSD 3.0.
The radio driver was written by Vladimir Popov <[email protected]> and
Maxim Tsyplakov <[email protected]>. The man page was written
by
Maxim Tsyplakov <[email protected]>.
OpenBSD 3.6 September 29, 2001
[ Back ] |