xref: /aosp_15_r20/prebuilts/build-tools/sysroots/aarch64-unknown-linux-musl/include/linux/can.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1*cda5da8dSAndroid Build Coastguard Worker /*
2*cda5da8dSAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*cda5da8dSAndroid Build Coastguard Worker  *
4*cda5da8dSAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*cda5da8dSAndroid Build Coastguard Worker  * for more information.
6*cda5da8dSAndroid Build Coastguard Worker  */
7*cda5da8dSAndroid Build Coastguard Worker #ifndef _UAPI_CAN_H
8*cda5da8dSAndroid Build Coastguard Worker #define _UAPI_CAN_H
9*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h>
10*cda5da8dSAndroid Build Coastguard Worker #include <linux/socket.h>
11*cda5da8dSAndroid Build Coastguard Worker #include <linux/stddef.h>
12*cda5da8dSAndroid Build Coastguard Worker #define CAN_EFF_FLAG 0x80000000U
13*cda5da8dSAndroid Build Coastguard Worker #define CAN_RTR_FLAG 0x40000000U
14*cda5da8dSAndroid Build Coastguard Worker #define CAN_ERR_FLAG 0x20000000U
15*cda5da8dSAndroid Build Coastguard Worker #define CAN_SFF_MASK 0x000007FFU
16*cda5da8dSAndroid Build Coastguard Worker #define CAN_EFF_MASK 0x1FFFFFFFU
17*cda5da8dSAndroid Build Coastguard Worker #define CAN_ERR_MASK 0x1FFFFFFFU
18*cda5da8dSAndroid Build Coastguard Worker #define CANXL_PRIO_MASK CAN_SFF_MASK
19*cda5da8dSAndroid Build Coastguard Worker typedef __u32 canid_t;
20*cda5da8dSAndroid Build Coastguard Worker #define CAN_SFF_ID_BITS 11
21*cda5da8dSAndroid Build Coastguard Worker #define CAN_EFF_ID_BITS 29
22*cda5da8dSAndroid Build Coastguard Worker #define CANXL_PRIO_BITS CAN_SFF_ID_BITS
23*cda5da8dSAndroid Build Coastguard Worker typedef __u32 can_err_mask_t;
24*cda5da8dSAndroid Build Coastguard Worker #define CAN_MAX_DLC 8
25*cda5da8dSAndroid Build Coastguard Worker #define CAN_MAX_RAW_DLC 15
26*cda5da8dSAndroid Build Coastguard Worker #define CAN_MAX_DLEN 8
27*cda5da8dSAndroid Build Coastguard Worker #define CANFD_MAX_DLC 15
28*cda5da8dSAndroid Build Coastguard Worker #define CANFD_MAX_DLEN 64
29*cda5da8dSAndroid Build Coastguard Worker #define CANXL_MIN_DLC 0
30*cda5da8dSAndroid Build Coastguard Worker #define CANXL_MAX_DLC 2047
31*cda5da8dSAndroid Build Coastguard Worker #define CANXL_MAX_DLC_MASK 0x07FF
32*cda5da8dSAndroid Build Coastguard Worker #define CANXL_MIN_DLEN 1
33*cda5da8dSAndroid Build Coastguard Worker #define CANXL_MAX_DLEN 2048
34*cda5da8dSAndroid Build Coastguard Worker struct can_frame {
35*cda5da8dSAndroid Build Coastguard Worker   canid_t can_id;
36*cda5da8dSAndroid Build Coastguard Worker   union {
37*cda5da8dSAndroid Build Coastguard Worker     __u8 len;
38*cda5da8dSAndroid Build Coastguard Worker     __u8 can_dlc;
39*cda5da8dSAndroid Build Coastguard Worker   } __attribute__((packed));
40*cda5da8dSAndroid Build Coastguard Worker   __u8 __pad;
41*cda5da8dSAndroid Build Coastguard Worker   __u8 __res0;
42*cda5da8dSAndroid Build Coastguard Worker   __u8 len8_dlc;
43*cda5da8dSAndroid Build Coastguard Worker   __u8 data[CAN_MAX_DLEN] __attribute__((aligned(8)));
44*cda5da8dSAndroid Build Coastguard Worker };
45*cda5da8dSAndroid Build Coastguard Worker #define CANFD_BRS 0x01
46*cda5da8dSAndroid Build Coastguard Worker #define CANFD_ESI 0x02
47*cda5da8dSAndroid Build Coastguard Worker #define CANFD_FDF 0x04
48*cda5da8dSAndroid Build Coastguard Worker struct canfd_frame {
49*cda5da8dSAndroid Build Coastguard Worker   canid_t can_id;
50*cda5da8dSAndroid Build Coastguard Worker   __u8 len;
51*cda5da8dSAndroid Build Coastguard Worker   __u8 flags;
52*cda5da8dSAndroid Build Coastguard Worker   __u8 __res0;
53*cda5da8dSAndroid Build Coastguard Worker   __u8 __res1;
54*cda5da8dSAndroid Build Coastguard Worker   __u8 data[CANFD_MAX_DLEN] __attribute__((aligned(8)));
55*cda5da8dSAndroid Build Coastguard Worker };
56*cda5da8dSAndroid Build Coastguard Worker #define CANXL_XLF 0x80
57*cda5da8dSAndroid Build Coastguard Worker #define CANXL_SEC 0x01
58*cda5da8dSAndroid Build Coastguard Worker #define CANXL_VCID_OFFSET 16
59*cda5da8dSAndroid Build Coastguard Worker #define CANXL_VCID_VAL_MASK 0xFFUL
60*cda5da8dSAndroid Build Coastguard Worker #define CANXL_VCID_MASK (CANXL_VCID_VAL_MASK << CANXL_VCID_OFFSET)
61*cda5da8dSAndroid Build Coastguard Worker struct canxl_frame {
62*cda5da8dSAndroid Build Coastguard Worker   canid_t prio;
63*cda5da8dSAndroid Build Coastguard Worker   __u8 flags;
64*cda5da8dSAndroid Build Coastguard Worker   __u8 sdt;
65*cda5da8dSAndroid Build Coastguard Worker   __u16 len;
66*cda5da8dSAndroid Build Coastguard Worker   __u32 af;
67*cda5da8dSAndroid Build Coastguard Worker   __u8 data[CANXL_MAX_DLEN];
68*cda5da8dSAndroid Build Coastguard Worker };
69*cda5da8dSAndroid Build Coastguard Worker #define CAN_MTU (sizeof(struct can_frame))
70*cda5da8dSAndroid Build Coastguard Worker #define CANFD_MTU (sizeof(struct canfd_frame))
71*cda5da8dSAndroid Build Coastguard Worker #define CANXL_MTU (sizeof(struct canxl_frame))
72*cda5da8dSAndroid Build Coastguard Worker #define CANXL_HDR_SIZE (offsetof(struct canxl_frame, data))
73*cda5da8dSAndroid Build Coastguard Worker #define CANXL_MIN_MTU (CANXL_HDR_SIZE + 64)
74*cda5da8dSAndroid Build Coastguard Worker #define CANXL_MAX_MTU CANXL_MTU
75*cda5da8dSAndroid Build Coastguard Worker #define CAN_RAW 1
76*cda5da8dSAndroid Build Coastguard Worker #define CAN_BCM 2
77*cda5da8dSAndroid Build Coastguard Worker #define CAN_TP16 3
78*cda5da8dSAndroid Build Coastguard Worker #define CAN_TP20 4
79*cda5da8dSAndroid Build Coastguard Worker #define CAN_MCNET 5
80*cda5da8dSAndroid Build Coastguard Worker #define CAN_ISOTP 6
81*cda5da8dSAndroid Build Coastguard Worker #define CAN_J1939 7
82*cda5da8dSAndroid Build Coastguard Worker #define CAN_NPROTO 8
83*cda5da8dSAndroid Build Coastguard Worker #define SOL_CAN_BASE 100
84*cda5da8dSAndroid Build Coastguard Worker struct sockaddr_can {
85*cda5da8dSAndroid Build Coastguard Worker   __kernel_sa_family_t can_family;
86*cda5da8dSAndroid Build Coastguard Worker   int can_ifindex;
87*cda5da8dSAndroid Build Coastguard Worker   union {
88*cda5da8dSAndroid Build Coastguard Worker     struct {
89*cda5da8dSAndroid Build Coastguard Worker       canid_t rx_id, tx_id;
90*cda5da8dSAndroid Build Coastguard Worker     } tp;
91*cda5da8dSAndroid Build Coastguard Worker     struct {
92*cda5da8dSAndroid Build Coastguard Worker       __u64 name;
93*cda5da8dSAndroid Build Coastguard Worker       __u32 pgn;
94*cda5da8dSAndroid Build Coastguard Worker       __u8 addr;
95*cda5da8dSAndroid Build Coastguard Worker     } j1939;
96*cda5da8dSAndroid Build Coastguard Worker   } can_addr;
97*cda5da8dSAndroid Build Coastguard Worker };
98*cda5da8dSAndroid Build Coastguard Worker struct can_filter {
99*cda5da8dSAndroid Build Coastguard Worker   canid_t can_id;
100*cda5da8dSAndroid Build Coastguard Worker   canid_t can_mask;
101*cda5da8dSAndroid Build Coastguard Worker };
102*cda5da8dSAndroid Build Coastguard Worker #define CAN_INV_FILTER 0x20000000U
103*cda5da8dSAndroid Build Coastguard Worker #endif
104