OpenBSD manual page server

Manual Page Search Parameters

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

radiointerface between low and high level radio drivers

The radio device driver is divided into a high level, hardware independent 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 proc *);
	int	(*close)(void *, int, int, struct proc *);
	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
(const 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
(void *, int flags, int fmt, struct proc *p)
  Optional.
  Is called when the radio device is opened.
  Returns 0 on success, otherwise an error code.

int
(void *, int flags, int fmt, struct proc *p)
  Optional.
  Is called when the radio device is closed.
  Returns 0 on success, otherwise an error code.

int
(void *, struct radio_info *)
  Fill the radio_info struct.
  Returns 0 on success, otherwise an error code.

int
(void *, struct radio_info *)
  Set values from the radio_info struct.
  Returns 0 on success, otherwise an error code.

int
(void *, int)
  Returns 0 on success, otherwise an error code.

radio(4)

The radio device driver appeared in OpenBSD 3.0.

The radio driver was written by Vladimir Popov <jumbo@narod.ru> and Maxim Tsyplakov <tm@oganer.net>. The man page was written by Maxim Tsyplakov <tm@oganer.net>.

March 30, 2022 OpenBSD-7.2