radio(9)
- NetBSD Manual Pages
RADIO(9) NetBSD Kernel Developer's Manual RADIO(9)
NAME
radio -- interface between low- and high-level FM radio drivers
SYNOPSIS
#include <dev/radio_if.h>
device_t
radio_attach_mi(const struct radio_hw_if *rhwp, void *hdlp,
device_t dev);
DESCRIPTION
The radio layer provides support for digitally programmable FM radio
tuners.
It is divided into a machine independent, high-level part responsible for
managing device files, and low-level hardware drivers.
The high-level radio driver attaches to the low-level driver when the
latter calls radio_attach_mi().
The radio_hw_if struct contains pointers to functions provided by the
low-level driver. The hdlp argument is a handle to a low-level driver's
softc 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.
struct radio_hw_if {
int (*open)(void *, int, int, struct lwp *);
int (*close)(void *, int, int, struct lwp *);
int (*get_info)(void *, struct radio_info *);
int (*set_info)(void *, struct radio_info *);
int (*search)(void *, int);
};
(*open)(sc, flags, fmt, lwp)
Called when the radio device is opened. Optionally, if there is no
need to call a driver's function when the device file is opened,
NULL should be passed in this field. Returns 0 on success, other-
wise an error code.
(*close)(sc, flags, fmt, lwp)
Called when the radio device is closed. Optionally, if there is no
need to call a driver's function when the device file is closed,
NULL should be passed in thie field. Returns 0 on success, other-
wise an error code.
(*get_info)(sc, ri)
Fills the radio_info struct. This function is used to obtain the
current state of a hardware device. It is executed as a result of
calling RIOCGINFO on a device file managed by the high-level
driver. Returns 0 on success, otherwise an error code.
(*set_info)(sc, ri)
Set values from the radio_info struct. This function is used to
modify the current state of a hardware device (enable/disable vari-
ous modes and parameters). It is executed as a result of calling
RIOCSINFO on a device file managed by the high-level driver.
Returns 0 on success, otherwise an error code.
(*search)(sc, ri)
Initiates automatic search for the radio station. It is executed
as a result of calling RIOCSSRCH on a device file managed by the
high-level driver. Returns 0 on success, otherwise an error code.
SEE ALSO
radio(4)
AUTHORS
The radio API was written by Vladimir Popov and Maxim Tsyplakov for
OpenBSD and ported to NetBSD by Lennart Augustsson.
NetBSD 10.99 July 9, 2018 NetBSD 10.99
Powered by man-cgi (2021-06-01).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.