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 8.0                       July 9, 2018                       NetBSD 8.0

You can also request any man page by name and (optionally) by section:

Command: 
Section: 
Architecture: 
Collection: 
 

Use the DEFAULT collection to view manual pages for third-party software.


©1994 Man-cgi 1.15, Panagiotis Christias
©1996-2018 Modified for NetBSD by Kimmo Suominen