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 9.4 July 9, 2018 NetBSD 9.4
Powered by man-cgi (2024-08-26). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.