RADIO(9)               NetBSD Kernel Developer's Manual               RADIO(9)

NAME
     radio -- interface between low and high level radio drivers

DESCRIPTION
     The radio device driver is divided into a high level, hardware indepen-
     dent 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 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);
     };

     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(rhwp, hdlp, dev)
             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 lwp *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 lwp *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.

SEE ALSO
     radio(4)

NetBSD 5.0_STABLE              December 20, 2005             NetBSD 5.0_STABLE
