CAN device driver interface¶
Definitions for low-level CAN driver interface.
This is the CAN controller generic driver interface
-
enum
candev_event_t
¶ - CANDEV_EVENT_NOEVENT
- no event, used internally
- CANDEV_EVENT_ISR
- driver needs its ISR handled
- CANDEV_EVENT_WAKE_UP
- driver has been woken up by bus
- CANDEV_EVENT_TX_CONFIRMATION
- a packet has been sent
- CANDEV_EVENT_TIMEOUT_TX_CONF
- tx conf timeout received
- CANDEV_EVENT_RX_INDICATION
- a packet has been received
- CANDEV_EVENT_TX_ERROR
- there was an error when transmitting
- CANDEV_EVENT_RX_ERROR
- there was an error when receiving
- CANDEV_EVENT_BUS_OFF
- bus-off detected
- CANDEV_EVENT_ERROR_PASSIVE
- driver switched in error passive
- CANDEV_EVENT_ERROR_WARNING
- driver reached error warning
-
void(*
candev_event_cb_t
()¶ Event callback for signaling event to upper layers.
Parameters
dev: CAN device descriptor type: type of the event arg: event argument
-
struct candev_driver
candev_driver_t
¶ Structure to hold driver interface -> function mapping.
-
struct
candev
¶ Structure to hold driver state.
Supposed to be extended by driver implementations. The extended structure should contain all variable driver state.
-
const struct candev_driver *
driver
¶ ptr to that driver’s interface.
-
candev.h::candev_event_cb_t
event_callback
¶ callback for device events
-
void *
isr_arg
¶ argument to pass on isr event
-
struct can_bittiming
bittiming
¶ device bittimings
-
enum
can.h::can_state
state
¶ device state
-
const struct candev_driver *
-
struct
candev_driver
¶ Structure to hold driver interface -> function mapping.
-
int(*
send
()¶ Send packet.
Parameters
dev: CAN device descriptor frame: CAN frame to send Return values
- < 0 on error
- mailbox id >= 0 if OK
-
int(*
abort
()¶ Abort a packet sending.
Parameters
dev: CAN device descriptor frame: CAN frame to abort Return values
- < 0 on error
- 0 on OK
-
int(*
init
()¶ the driver’s initialization function
Parameters
dev: CAN device descriptor Return values
- < 0 on error, 0 on success
-
void(*
isr
()¶ a driver’s user-space ISR handler
Parameters
dev: CAN device descriptor
-
int(*
get
()¶ Get an option value from a given CAN device.
Parameters
dev: CAN device descriptor opt: option type value: pointer to store the option’s value in max_len: maximal amount of byte that fit into value
Return values
- number of bytes written to
value
- <0 on error
- number of bytes written to
-
int(*
set
()¶ Set an option value for a given CAN device.
Parameters
dev: CAN device descriptor opt: option type value: value to set value_len: the length of value
Return values
- number of bytes used from
value
- <0 on error
- number of bytes used from
-
int(*
set_filter
()¶ Set a receive
filter
.Parameters
dev: CAN device descriptor filter: filter to set Return values
- a positive filter number
- <0 on error
-
int(*
remove_filter
()¶ Remove a
filter
.Parameters
dev: CAN device descriptor filter: filter to remove Return values
- 0 on success
- <0 on error
-
int(*