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
41extern "C" {
42#endif
43
44void *io_can_ctrl_alloc(void);
45void io_can_ctrl_free(void *ptr);
46io_can_ctrl_t *io_can_ctrl_init(
47 io_can_ctrl_t *ctrl, unsigned int index, size_t txlen);
48void io_can_ctrl_fini(io_can_ctrl_t *ctrl);
49
66io_can_ctrl_t *io_can_ctrl_create_from_name(const char *name, size_t txlen);
67
84io_can_ctrl_t *io_can_ctrl_create_from_index(unsigned int index, size_t txlen);
85
92
94const char *io_can_ctrl_get_name(const io_can_ctrl_t *ctrl);
95
97unsigned int io_can_ctrl_get_index(const io_can_ctrl_t *ctrl);
98
105int io_can_ctrl_get_flags(const io_can_ctrl_t *ctrl);
106
107void *io_can_chan_alloc(void);
108void io_can_chan_free(void *ptr);
109io_can_chan_t *io_can_chan_init(io_can_chan_t *chan, io_poll_t *poll,
110 ev_exec_t *exec, size_t rxlen);
111void io_can_chan_fini(io_can_chan_t *chan);
112
128 io_poll_t *poll, ev_exec_t *exec, size_t rxlen);
129
132
138
155int io_can_chan_open(io_can_chan_t *chan, const io_can_ctrl_t *ctrl, int flags);
156
172int io_can_chan_assign(io_can_chan_t *chan, int fd);
173
184
189int 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_
const struct ev_exec_vtbl *const ev_exec_t
An abstract task executor.
Definition ev.h:29
This header file is part of the I/O library; it contains the abstract CAN bus interface.
const struct io_can_chan_vtbl *const io_can_chan_t
An abstract CAN channel.
Definition can.h:59
const struct io_can_ctrl_vtbl *const io_can_ctrl_t
An abstract CAN controller.
Definition can.h:56
void io_can_chan_destroy(io_can_chan_t *chan)
Destroys a CAN channel.
Definition can_chan.c:409
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
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
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
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
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
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
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_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
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
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
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
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
void io_can_ctrl_destroy(io_can_ctrl_t *ctrl)
Destroys a CAN controller.
Definition can_ctrl.c:174
This header file is part of the I/O library; it contains system-dependent I/O initialization/finaliza...
An I/O polling interface.
Definition poll.c:51