123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231 |
- #ifndef _UAPI_CAN_H
- #define _UAPI_CAN_H
- #include <linux/types.h>
- #include <linux/socket.h>
- #define CAN_EFF_FLAG 0x80000000U
- #define CAN_RTR_FLAG 0x40000000U
- #define CAN_ERR_FLAG 0x20000000U
- #define CAN_SFF_MASK 0x000007FFU
- #define CAN_EFF_MASK 0x1FFFFFFFU
- #define CAN_ERR_MASK 0x1FFFFFFFU
- typedef __u32 canid_t;
- #define CAN_SFF_ID_BITS 11
- #define CAN_EFF_ID_BITS 29
- typedef __u32 can_err_mask_t;
- #define CAN_MAX_DLC 8
- #define CAN_MAX_DLEN 8
- #define CANFD_MAX_DLC 15
- #define CANFD_MAX_DLEN 64
- struct can_frame {
- canid_t can_id;
- __u8 can_dlc;
- __u8 __pad;
- __u8 __res0;
- __u8 __res1;
- __u8 data[CAN_MAX_DLEN] __attribute__((aligned(8)));
- };
- #define CANFD_BRS 0x01
- #define CANFD_ESI 0x02
- struct canfd_frame {
- canid_t can_id;
- __u8 len;
- __u8 flags;
- __u8 __res0;
- __u8 __res1;
- __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8)));
- };
- #define CAN_MTU (sizeof(struct can_frame))
- #define CANFD_MTU (sizeof(struct canfd_frame))
- #define CAN_RAW 1
- #define CAN_BCM 2
- #define CAN_TP16 3
- #define CAN_TP20 4
- #define CAN_MCNET 5
- #define CAN_ISOTP 6
- #define CAN_J1939 7
- #define CAN_NPROTO 8
- #define SOL_CAN_BASE 100
- typedef unsigned short __kernel_sa_family_t;
- struct sockaddr_can {
- __kernel_sa_family_t can_family;
- int can_ifindex;
- union {
-
- struct {
- canid_t rx_id;
- canid_t tx_id;
- } tp;
-
- struct {
-
- __u64 name;
-
- __u32 pgn;
-
- __u8 addr;
- } j1939;
-
- } can_addr;
- };
- struct can_filter {
- canid_t can_id;
- canid_t can_mask;
- };
- #define CAN_INV_FILTER 0x20000000U
- #define CAN_RAW_FILTER_MAX 512
- #endif
|