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.0_STABLE July 9, 2018 NetBSD 10.0_STABLE
Powered by man-cgi (2024-03-20).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.