Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
pulse_io_driver_api Struct Reference

Driver vtable. More...

#include <zephyr/drivers/pulse_io.h>

Data Fields

int(* get_capabilities )(const struct device *dev, struct pulse_io_caps *caps)
  OPT NULL returns -ENOSYS from the wrapper.
int(* channel_get )(const struct device *dev, uint8_t channel_idx, struct pulse_io_channel **chan)
  REQ
int(* channel_release )(const struct device *dev, struct pulse_io_channel *chan)
  REQ
int(* channel_configure )(const struct device *dev, struct pulse_io_channel *chan, const struct pulse_io_config *cfg)
  REQ
int(* transmit_sync )(const struct device *dev, struct pulse_io_channel *chan, const struct pulse_io_tx_req *req, k_timeout_t timeout)
  REQ
int(* receive_sync )(const struct device *dev, struct pulse_io_channel *chan, const struct pulse_io_rx_req *req, size_t *count, k_timeout_t timeout)
  REQ
int(* stop )(const struct device *dev, struct pulse_io_channel *chan)
  REQ
void(* submit )(const struct device *dev, struct rtio_iodev_sqe *iodev_sqe)
  OPT RTIO submit; NULL if the backend has no RTIO support.
int(* get_encoder )(const struct device *dev, const struct pulse_io_encoder_api **api)
  OPT
int(* get_decoder )(const struct device *dev, const struct pulse_io_decoder_api **api)
  OPT

Detailed Description

Driver vtable.

Implemented by each backend; not intended for direct application use. The core ops are mandatory and must not be NULL; the RTIO ops are optional and the wrappers return -ENOSYS when they are NULL.

Field Documentation

◆ channel_configure

int(* pulse_io_driver_api::channel_configure) (const struct device *dev, struct pulse_io_channel *chan, const struct pulse_io_config *cfg)

REQ

◆ channel_get

int(* pulse_io_driver_api::channel_get) (const struct device *dev, uint8_t channel_idx, struct pulse_io_channel **chan)

REQ

◆ channel_release

int(* pulse_io_driver_api::channel_release) (const struct device *dev, struct pulse_io_channel *chan)

REQ

◆ get_capabilities

int(* pulse_io_driver_api::get_capabilities) (const struct device *dev, struct pulse_io_caps *caps)

OPT NULL returns -ENOSYS from the wrapper.

◆ get_decoder

int(* pulse_io_driver_api::get_decoder) (const struct device *dev, const struct pulse_io_decoder_api **api)

OPT

◆ get_encoder

int(* pulse_io_driver_api::get_encoder) (const struct device *dev, const struct pulse_io_encoder_api **api)

OPT

◆ receive_sync

int(* pulse_io_driver_api::receive_sync) (const struct device *dev, struct pulse_io_channel *chan, const struct pulse_io_rx_req *req, size_t *count, k_timeout_t timeout)

REQ

◆ stop

int(* pulse_io_driver_api::stop) (const struct device *dev, struct pulse_io_channel *chan)

REQ

◆ submit

void(* pulse_io_driver_api::submit) (const struct device *dev, struct rtio_iodev_sqe *iodev_sqe)

OPT RTIO submit; NULL if the backend has no RTIO support.

◆ transmit_sync

int(* pulse_io_driver_api::transmit_sync) (const struct device *dev, struct pulse_io_channel *chan, const struct pulse_io_tx_req *req, k_timeout_t timeout)

REQ


The documentation for this struct was generated from the following file: