xref: /aosp_15_r20/prebuilts/build-tools/sysroots/i686-unknown-linux-musl/include/linux/can/gw.h (revision cda5da8d549138a6648c5ee6d7a49cf8f4a657be)
1 /*
2  * This file is auto-generated. Modifications will be lost.
3  *
4  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5  * for more information.
6  */
7 #ifndef _UAPI_CAN_GW_H
8 #define _UAPI_CAN_GW_H
9 #include <linux/types.h>
10 #include <linux/can.h>
11 struct rtcanmsg {
12   __u8 can_family;
13   __u8 gwtype;
14   __u16 flags;
15 };
16 enum {
17   CGW_TYPE_UNSPEC,
18   CGW_TYPE_CAN_CAN,
19   __CGW_TYPE_MAX
20 };
21 #define CGW_TYPE_MAX (__CGW_TYPE_MAX - 1)
22 enum {
23   CGW_UNSPEC,
24   CGW_MOD_AND,
25   CGW_MOD_OR,
26   CGW_MOD_XOR,
27   CGW_MOD_SET,
28   CGW_CS_XOR,
29   CGW_CS_CRC8,
30   CGW_HANDLED,
31   CGW_DROPPED,
32   CGW_SRC_IF,
33   CGW_DST_IF,
34   CGW_FILTER,
35   CGW_DELETED,
36   CGW_LIM_HOPS,
37   CGW_MOD_UID,
38   CGW_FDMOD_AND,
39   CGW_FDMOD_OR,
40   CGW_FDMOD_XOR,
41   CGW_FDMOD_SET,
42   __CGW_MAX
43 };
44 #define CGW_MAX (__CGW_MAX - 1)
45 #define CGW_FLAGS_CAN_ECHO 0x01
46 #define CGW_FLAGS_CAN_SRC_TSTAMP 0x02
47 #define CGW_FLAGS_CAN_IIF_TX_OK 0x04
48 #define CGW_FLAGS_CAN_FD 0x08
49 #define CGW_MOD_FUNCS 4
50 #define CGW_MOD_ID 0x01
51 #define CGW_MOD_DLC 0x02
52 #define CGW_MOD_LEN CGW_MOD_DLC
53 #define CGW_MOD_DATA 0x04
54 #define CGW_MOD_FLAGS 0x08
55 #define CGW_FRAME_MODS 4
56 #define MAX_MODFUNCTIONS (CGW_MOD_FUNCS * CGW_FRAME_MODS)
57 struct cgw_frame_mod {
58   struct can_frame cf;
59   __u8 modtype;
60 } __attribute__((packed));
61 struct cgw_fdframe_mod {
62   struct canfd_frame cf;
63   __u8 modtype;
64 } __attribute__((packed));
65 #define CGW_MODATTR_LEN sizeof(struct cgw_frame_mod)
66 #define CGW_FDMODATTR_LEN sizeof(struct cgw_fdframe_mod)
67 struct cgw_csum_xor {
68   __s8 from_idx;
69   __s8 to_idx;
70   __s8 result_idx;
71   __u8 init_xor_val;
72 } __attribute__((packed));
73 struct cgw_csum_crc8 {
74   __s8 from_idx;
75   __s8 to_idx;
76   __s8 result_idx;
77   __u8 init_crc_val;
78   __u8 final_xor_val;
79   __u8 crctab[256];
80   __u8 profile;
81   __u8 profile_data[20];
82 } __attribute__((packed));
83 #define CGW_CS_XOR_LEN sizeof(struct cgw_csum_xor)
84 #define CGW_CS_CRC8_LEN sizeof(struct cgw_csum_crc8)
85 enum {
86   CGW_CRC8PRF_UNSPEC,
87   CGW_CRC8PRF_1U8,
88   CGW_CRC8PRF_16U8,
89   CGW_CRC8PRF_SFFID_XOR,
90   __CGW_CRC8PRF_MAX
91 };
92 #define CGW_CRC8PRF_MAX (__CGW_CRC8PRF_MAX - 1)
93 #endif
94