Lely core libraries  2.3.4
can.h
Go to the documentation of this file.
1 
34 #ifndef LELY_IO2_LINUX_CAN_H_
35 #define LELY_IO2_LINUX_CAN_H_
36 
37 #include <lely/io2/can.h>
38 #include <lely/io2/sys/io.h>
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 void *io_can_ctrl_alloc(void);
45 void io_can_ctrl_free(void *ptr);
46 io_can_ctrl_t *io_can_ctrl_init(
47  io_can_ctrl_t *ctrl, unsigned int index, size_t txlen);
48 void io_can_ctrl_fini(io_can_ctrl_t *ctrl);
49 
66 io_can_ctrl_t *io_can_ctrl_create_from_name(const char *name, size_t txlen);
67 
84 io_can_ctrl_t *io_can_ctrl_create_from_index(unsigned int index, size_t txlen);
85 
92 
94 const char *io_can_ctrl_get_name(const io_can_ctrl_t *ctrl);
95 
97 unsigned int io_can_ctrl_get_index(const io_can_ctrl_t *ctrl);
98 
105 int io_can_ctrl_get_flags(const io_can_ctrl_t *ctrl);
106 
107 void *io_can_chan_alloc(void);
108 void io_can_chan_free(void *ptr);
109 io_can_chan_t *io_can_chan_init(io_can_chan_t *chan, io_poll_t *poll,
110  ev_exec_t *exec, size_t rxlen);
111 void io_can_chan_fini(io_can_chan_t *chan);
112 
128  io_poll_t *poll, ev_exec_t *exec, size_t rxlen);
129 
132 
137 int io_can_chan_get_handle(const io_can_chan_t *chan);
138 
155 int io_can_chan_open(io_can_chan_t *chan, const io_can_ctrl_t *ctrl, int flags);
156 
172 int io_can_chan_assign(io_can_chan_t *chan, int fd);
173 
184 
189 int io_can_chan_is_open(const io_can_chan_t *chan);
190 
203 
204 #ifdef __cplusplus
205 }
206 #endif
207 
208 #endif // !LELY_IO2_LINUX_CAN_H_
io_can_chan_is_open
int io_can_chan_is_open(const io_can_chan_t *chan)
Returns 1 if the CAN channel is open and 0 if not.
Definition: can_chan.c:569
io_can_chan_open
int io_can_chan_open(io_can_chan_t *chan, const io_can_ctrl_t *ctrl, int flags)
Opens a CAN channel.
Definition: can_chan.c:433
io_can_chan_get_handle
int io_can_chan_get_handle(const io_can_chan_t *chan)
Returns the SocketCAN file descriptor associated with a CAN channel, or -1 if the channel is closed.
Definition: can_chan.c:418
ev_exec_t
const struct ev_exec_vtbl *const ev_exec_t
An abstract task executor.
Definition: ev.h:29
io_can_ctrl_get_index
unsigned int io_can_ctrl_get_index(const io_can_ctrl_t *ctrl)
Returns the interface index of a CAN controller.
Definition: can_ctrl.c:191
io_can_ctrl_get_name
const char * io_can_ctrl_get_name(const io_can_ctrl_t *ctrl)
Returns the interface name of a CAN controller.
Definition: can_ctrl.c:183
io_can_ctrl_create_from_index
io_can_ctrl_t * io_can_ctrl_create_from_index(unsigned int index, size_t txlen)
Creates a new CAN controller from an interface index.
Definition: can_ctrl.c:147
io.h
io_can_chan_assign
int io_can_chan_assign(io_can_chan_t *chan, int fd)
Assigns an existing SocketCAN file descriptor to a CAN channel.
Definition: can_chan.c:503
io_can_ctrl_create_from_name
io_can_ctrl_t * io_can_ctrl_create_from_name(const char *name, size_t txlen)
Creates a new CAN controller from an interface name.
Definition: can_ctrl.c:138
io_can_chan_t
const struct io_can_chan_vtbl *const io_can_chan_t
An abstract CAN channel.
Definition: can.h:59
io_can_ctrl_destroy
void io_can_ctrl_destroy(io_can_ctrl_t *ctrl)
Destroys a CAN controller.
Definition: can_ctrl.c:174
io_can_chan_create
io_can_chan_t * io_can_chan_create(io_poll_t *poll, ev_exec_t *exec, size_t rxlen)
Creates a new CAN channel.
Definition: can_chan.c:382
__io_poll
An I/O polling interface.
Definition: poll.c:51
io_can_chan_release
int io_can_chan_release(io_can_chan_t *chan)
Dissociates and returns the SocketCAN file descriptor from a CAN channel.
Definition: can_chan.c:561
can.h
io_can_ctrl_get_flags
int io_can_ctrl_get_flags(const io_can_ctrl_t *ctrl)
Returns the flags specifying which CAN bus features are enabled.
Definition: can_ctrl.c:199
io_can_chan_destroy
void io_can_chan_destroy(io_can_chan_t *chan)
Destroys a CAN channel.
Definition: can_chan.c:409
io_can_ctrl_t
const struct io_can_ctrl_vtbl *const io_can_ctrl_t
An abstract CAN controller.
Definition: can.h:56
io_can_chan_close
int io_can_chan_close(io_can_chan_t *chan)
Closes the SocketCAN file descriptor associated with a CAN channel.
Definition: can_chan.c:575