common.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016 OTA keys S.A.
3  *
4  * This file is subject to the terms and conditions of the GNU Lesser General
5  * Public License v2.1. See the file LICENSE in the top level directory for more
6  * details.
7  */
8 
26 #ifndef CAN_COMMON_H
27 #define CAN_COMMON_H
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 #include <stdint.h>
34 #include <sys/uio.h>
35 
36 #include "timex.h"
37 #include "thread.h"
38 #ifdef MODULE_CAN_MBOX
39 #include "mbox.h"
40 #endif
41 
45 typedef enum {
54 } canopt_t;
55 
61 typedef enum {
67 
68 
72 typedef struct {
73  canopt_t opt;
74  uint16_t context;
75  void *data;
76  uint16_t data_len;
77 } can_opt_t;
78 
82 enum can_msg {
83  /* High level messages */
84  CAN_MSG_ACK = 0x100,
93 #if defined(MODULE_CAN_TRX) || defined(DOXYGEN)
95 #endif
96  /* candev internal messages */
97  CAN_MSG_EVENT = 0x200,
106 #if defined(MODULE_CAN_PM) || defined(DOXYGEN)
108 #endif
109  /* isotp messages */
110 #if defined(MODULE_CAN_ISOTP) || defined(DOXYGEN)
113 #endif
114 };
115 
122 typedef struct can_rx_data {
123  struct iovec data;
124  void *arg;
125 } can_rx_data_t;
126 
130 typedef enum {
132 #if defined(MODULE_CAN_MBOX) || defined(DOXYGEN)
134 #endif
136 
143 typedef struct can_reg_entry {
144  struct can_reg_entry *next;
145  int ifnum;
146  union {
148 #if defined(MODULE_CAN_MBOX) || defined(DOXYGEN)
150 #endif
151  } target;
152 #if defined(MODULE_CAN_MBOX) || defined(DOXYGEN)
153  can_reg_type_t type;
154 #endif
156 
157 #ifdef __cplusplus
158 }
159 #endif
160 
161 #endif /* CAN_COMMON_H */
162 
controller bittiming parameters
Definition: common.h:52
powered off
Definition: common.h:62
uint16_t context
(optional) context for that option
Definition: common.h:74
kernel_pid_t pid
pid of the thread when using msg
Definition: common.h:147
Last Error Code.
Definition: common.h:50
mbox entry
Definition: common.h:133
driver reached error warning
Definition: common.h:105
Mailbox struct definition.
Definition: mbox.h:41
Mailbox API.
void * arg
upper layer private param
Definition: common.h:124
int ifnum
interface number for the entry
Definition: common.h:145
canopt_t
CAN options.
Definition: common.h:45
set a filter
Definition: common.h:89
driver has been woken up by bus
Definition: common.h:98
can_reg_type_t type
entry type
Definition: common.h:153
Received data structure.
Definition: common.h:122
driver event
Definition: common.h:97
set controller state canopt_state_t
Definition: common.h:53
a frame has been received
Definition: common.h:100
struct can_reg_entry can_reg_entry_t
registry entry
power management event
Definition: common.h:107
canopt_state_t
CAN state options.
Definition: common.h:61
struct can_reg_entry * next
next for linked list
Definition: common.h:144
Structure to pass a CAN option.
Definition: common.h:72
rx filters
Definition: common.h:47
uint16_t data_len
size of the data / the buffer
Definition: common.h:76
there was an error when transmitting
Definition: common.h:101
can_reg_type_t
registry entry types
Definition: common.h:130
can_msg
Messages which can be sent through the CAN stack.
Definition: common.h:82
power on, rx / tx mode
Definition: common.h:65
canopt_t opt
the option to get/set
Definition: common.h:73
int16_t kernel_pid_t
Unique process identifier.
Definition: kernel_types.h:83
Utility library for comparing and computing timestamps.
struct iovec data
iovec containing received data
Definition: common.h:123
void * data
data to set or buffer to read into
Definition: common.h:75
listen only mode
Definition: common.h:64
registry entry
Definition: common.h:143
mbox_t * mbox
mbox pointer
Definition: common.h:149
a frame has been sent
Definition: common.h:99
isotp rx timeout
Definition: common.h:111
set an option
Definition: common.h:87
power up
Definition: common.h:91
bus-off detected
Definition: common.h:103
isotp tx timeout
Definition: common.h:112
acknowledgment
Definition: common.h:84
set a transceiver
Definition: common.h:94
Structure for scatter/gather I/O.
Definition: uio.h:33
remove a filter
Definition: common.h:90
there was an error when receiving
Definition: common.h:102
Transmit Error Counter.
Definition: common.h:48
send a frame
Definition: common.h:85
controller main clock
Definition: common.h:51
libc header for scatter/gather I/O
Receive Error Counter.
Definition: common.h:49
driver switched in error passive
Definition: common.h:104
default entry (use msg)
Definition: common.h:131
struct can_rx_data can_rx_data_t
Received data structure.
sleep mode
Definition: common.h:63
get an option
Definition: common.h:88
abort a frame
Definition: common.h:86
bit timing parameter
Definition: common.h:46
power down
Definition: common.h:92